Browse Source

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

pull/356/head
Ross McFarland 7 years ago
parent
commit
1c60ed018b
No known key found for this signature in database GPG Key ID: 61C10C4FC8FE4A89
2 changed files with 16 additions and 2 deletions
  1. +5
    -2
      octodns/provider/route53.py
  2. +11
    -0
      tests/test_octodns_provider_route53.py

+ 5
- 2
octodns/provider/route53.py 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,


+ 11
- 0
tests/test_octodns_provider_route53.py 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,
]


Loading…
Cancel
Save