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 ...@@ -7,7 +7,6 @@ import os
import re import re
import requests import requests
import socket import socket
import sys
from tabulate import tabulate from tabulate import tabulate
from time import sleep from time import sleep
...@@ -118,6 +117,26 @@ def create_droplet(name: str, ssh_key_id: int, region: str = 'ams1', ...@@ -118,6 +117,26 @@ def create_droplet(name: str, ssh_key_id: int, region: str = 'ams1',
return response 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): def delete_droplet(id: int):
"""Delete a droplet. Droplet needs to be stopped first.""" """Delete a droplet. Droplet needs to be stopped first."""
log.info('Deleting %s', id) log.info('Deleting %s', id)
...@@ -131,6 +150,12 @@ def get_domain_record(domain: str, id: int): ...@@ -131,6 +150,12 @@ def get_domain_record(domain: str, id: int):
return response['domain_record'] 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, def get_domain_record_by_name(domain: str, name: str,
record_type: str = 'A'): record_type: str = 'A'):
""" """
...@@ -151,10 +176,17 @@ def get_domain_record_by_name(domain: str, name: str, ...@@ -151,10 +176,17 @@ def get_domain_record_by_name(domain: str, name: str,
return matching return matching
def get_domain_records(domain: str): def get_domain_records_by_name(domain: str, name_regex: str):
"""Get domain records for given domain.""" r"""
response = request_api('domains/{0}/records'.format(domain)) Get all information about domain records matching a regex in their names.
return response['domain_records']
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(): def get_droplets():
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment