Fix for deleting Route53 record sets with set identifiers. Closes #342.

This commit is contained in:
Steve Pulec 2015-04-30 18:51:01 -04:00
commit d1c823e0d8
3 changed files with 29 additions and 2 deletions

View file

@ -117,9 +117,12 @@ class FakeZone(object):
self.rrsets.append(record_set)
return record_set
def delete_rrset(self, name):
def delete_rrset_by_name(self, name):
self.rrsets = [record_set for record_set in self.rrsets if record_set.name != name]
def delete_rrset_by_id(self, set_identifier):
self.rrsets = [record_set for record_set in self.rrsets if record_set.set_identifier != set_identifier]
def get_record_sets(self, type_filter, name_filter):
record_sets = list(self.rrsets) # Copy the list
if type_filter:

View file

@ -58,7 +58,10 @@ def rrset_response(request, full_url, headers):
record_set['ResourceRecords'] = [x['Value'] for x in record_set['ResourceRecords'].values()]
the_zone.add_rrset(record_set)
elif action == "DELETE":
the_zone.delete_rrset(record_set["Name"])
if 'SetIdentifier' in record_set:
the_zone.delete_rrset_by_id(record_set["SetIdentifier"])
else:
the_zone.delete_rrset_by_name(record_set["Name"])
return 200, headers, CHANGE_RRSET_RESPONSE