1
0
mirror of https://github.com/github/octodns.git synced 2024-05-11 05:55:00 +00:00

Make sure both set-id and name match when finding rrset

This commit is contained in:
Ross McFarland
2019-04-29 09:49:40 -07:00
parent 43a9a9cbd4
commit 1c60ed018b
2 changed files with 16 additions and 2 deletions

View File

@@ -387,7 +387,8 @@ class _Route53DynamicValue(_Route53Record):
# ensures we have the right health check id when there's multiple
# potential matches)
for existing in existing_rrsets:
if self.identifer == existing.get('SetIdentifier', None):
if self.fqdn == existing.get('Name') and \
self.identifer == existing.get('SetIdentifier', None):
return {
'Action': action,
'ResourceRecordSet': existing,
@@ -453,6 +454,7 @@ class _Route53GeoRecord(_Route53Record):
def mod(self, action, existing_rrsets):
geo = self.geo
set_identifier = geo.code
fqdn = self.fqdn
if action == 'DELETE':
# When deleting records try and find the original rrset so that
@@ -460,7 +462,8 @@ class _Route53GeoRecord(_Route53Record):
# ensures we have the right health check id when there's multiple
# potential matches)
for existing in existing_rrsets:
if set_identifier == existing.get('SetIdentifier', None):
if fqdn == existing.get('Name') and \
set_identifier == existing.get('SetIdentifier', None):
return {
'Action': action,
'ResourceRecordSet': existing,

View File

@@ -2075,9 +2075,15 @@ class TestRoute53Records(TestCase):
candidates = [
# Empty, will test no SetIdentifier
{},
# Non-matching
{
'SetIdentifier': 'not-a-match',
},
# Same set-id, different name
{
'Name': 'not-a-match',
'SetIdentifier': 'x12346z',
},
rrset,
]
@@ -2122,6 +2128,11 @@ class TestRoute53Records(TestCase):
{
'SetIdentifier': 'not-a-match',
},
# Same set-id, different name
{
'Name': 'not-a-match',
'SetIdentifier': 'x12346z',
},
rrset,
]