Skip to content
Snippets Groups Projects
Commit 28a7f15e authored by Maarten de Waard's avatar Maarten de Waard :angel:
Browse files

Merge branch 'delete_ci_records_by_name' into 'master'

Add cosmos functions

See merge request openappstack/bootstrap!56
parents 93adf4e7 3c851b13
No related branches found
No related tags found
No related merge requests found
......@@ -7,7 +7,6 @@ import os
import re
import requests
import socket
import sys
from tabulate import tabulate
from time import sleep
......@@ -118,6 +117,26 @@ def create_droplet(name: str, ssh_key_id: int, region: str = 'ams1',
return response
def delete_domain_record(domain: str, id: int):
"""Delete a domain record."""
log.info('Deleting domain record %s', id)
response = request_api('domains/{0}/records/{1}'.format(domain, id),
'DELETE')
return response
def delete_domain_records_by_name(domain: str, name_regex: str):
"""Delete all domain records in a given domain matching a regex.
Examples:
delete_domain_records_by_name('openappstack.net', '^\*.ci-')
delete_domain_records_by_name('openappstack.net', '^ci-')
"""
all = get_domain_records_by_name(domain, name_regex)
for record in all:
delete_domain_record(domain, record['id'])
def delete_droplet(id: int):
"""Delete a droplet. Droplet needs to be stopped first."""
log.info('Deleting %s', id)
......@@ -131,6 +150,12 @@ def get_domain_record(domain: str, id: int):
return response['domain_record']
def get_domain_records(domain: str):
"""Get domain records for given domain."""
response = request_api('domains/{0}/records'.format(domain))
return response['domain_records']
def get_domain_record_by_name(domain: str, name: str,
record_type: str = 'A'):
"""
......@@ -151,10 +176,17 @@ def get_domain_record_by_name(domain: str, name: str,
return matching
def get_domain_records(domain: str):
"""Get domain records for given domain."""
response = request_api('domains/{0}/records'.format(domain))
return response['domain_records']
def get_domain_records_by_name(domain: str, name_regex: str):
r"""
Get all information about domain records matching a regex in their names.
Example:
get_domain_records_by_name(name_regex='^ci\d+')
"""
all_records = get_domain_records(domain)
matching = [record for record in all_records
if re.match(name_regex, record['name'])]
return matching
def get_droplets():
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment