Skip to content

Instantly share code, notes, and snippets.

@samloh84
Last active April 13, 2020 01:18
Show Gist options
  • Save samloh84/9c014534ea82c6c81458526f82fa0d11 to your computer and use it in GitHub Desktop.
Save samloh84/9c014534ea82c6c81458526f82fa0d11 to your computer and use it in GitHub Desktop.
import boto3
client = boto3.client('route53')
def delete_zone(zone_id):
""" List all records and deletes non SOA/NS records, before deleting the zone
"""
record_sets = client.list_resource_record_sets(HostedZoneId=zone_id)
# print(record_sets)
changes = []
for record_set in record_sets["ResourceRecordSets"]:
if not record_set['Type'] in ['SOA', 'NS']:
print(record_set)
change_request = {
'Action': 'DELETE',
'ResourceRecordSet': {
'Name': record_set['Name'],
'Type': record_set['Type']
}
}
if 'TTL' in record_set:
change_request['ResourceRecordSet']['TTL'] = record_set['TTL']
if 'ResourceRecords' in record_set:
change_request['ResourceRecordSet']['ResourceRecords'] = record_set['ResourceRecords']
if 'AliasTarget' in record_set:
change_request['ResourceRecordSet']['AliasTarget'] = record_set['AliasTarget']
changes.append(change_request)
if len(changes) > 0:
client.change_resource_record_sets(HostedZoneId=zone_id,
ChangeBatch={'Changes': changes})
client.delete_hosted_zone(Id=zone_id)
ids = []
for id in ids:
zone = client.get_hosted_zone(Id=id)
print(zone)
delete_zone(id)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment