Browse Source

Implement populate exists for Route53Provider

pull/177/head
Ross McFarland 8 years ago
parent
commit
73c002f94c
No known key found for this signature in database GPG Key ID: 61C10C4FC8FE4A89
3 changed files with 27 additions and 4 deletions
  1. +20
    -2
      octodns/provider/plan.py
  2. +5
    -2
      octodns/provider/route53.py
  3. +2
    -0
      tests/test_octodns_provider_route53.py

+ 20
- 2
octodns/provider/plan.py View File

@ -124,6 +124,12 @@ class PlanLogger(_PlanOutput):
buf.write(' (')
buf.write(target)
buf.write(')\n* ')
if plan.exists is False:
buf.write('Create ')
buf.write(str(plan.desired))
buf.write('\n* ')
for change in plan.changes:
buf.write(change.__repr__(leader='* '))
buf.write('\n* ')
@ -169,6 +175,11 @@ class PlanMarkdown(_PlanOutput):
fh.write('| Operation | Name | Type | TTL | Value | Source |\n'
'|--|--|--|--|--|--|\n')
if plan.exists is False:
fh.write('| Create | ')
fh.write(str(plan.desired))
fh.write(' | | | | |\n')
for change in plan.changes:
existing = change.existing
new = change.new
@ -194,7 +205,8 @@ class PlanMarkdown(_PlanOutput):
fh.write(' | ')
fh.write(_value_stringifier(new, '; '))
fh.write(' | ')
fh.write(new.source.id)
if new.source:
fh.write(new.source.id)
fh.write(' |\n')
fh.write('\nSummary: ')
@ -230,6 +242,11 @@ class PlanHtml(_PlanOutput):
</tr>
''')
if plan.exists is False:
fh.write(' <tr>\n <td>Create</td>\n <td colspan=5>')
fh.write(str(plan.desired))
fh.write('</td>\n </tr>\n')
for change in plan.changes:
existing = change.existing
new = change.new
@ -257,7 +274,8 @@ class PlanHtml(_PlanOutput):
fh.write('</td>\n <td>')
fh.write(_value_stringifier(new, '<br/>'))
fh.write('</td>\n <td>')
fh.write(new.source.id)
if new.source:
fh.write(new.source.id)
fh.write('</td>\n </tr>\n')
fh.write(' <tr>\n <td colspan=6>Summary: ')


+ 5
- 2
octodns/provider/route53.py View File

@ -451,9 +451,11 @@ class Route53Provider(BaseProvider):
target, lenient)
before = len(zone.records)
exists = False
zone_id = self._get_zone_id(zone.name)
if zone_id:
exists = True
records = defaultdict(lambda: defaultdict(list))
for rrset in self._load_records(zone_id):
record_name = zone.hostname_from_fqdn(rrset['Name'])
@ -483,8 +485,9 @@ class Route53Provider(BaseProvider):
lenient=lenient)
zone.add_record(record)
self.log.info('populate: found %s records',
len(zone.records) - before)
self.log.info('populate: found %s records, exists=%s',
len(zone.records) - before, exists)
return exists
def _gen_mods(self, action, records):
'''


+ 2
- 0
tests/test_octodns_provider_route53.py View File

@ -361,6 +361,7 @@ class TestRoute53Provider(TestCase):
plan = provider.plan(self.expected)
self.assertEquals(9, len(plan.changes))
self.assertTrue(plan.exists)
for change in plan.changes:
self.assertIsInstance(change, Create)
stubber.assert_no_pending_responses()
@ -593,6 +594,7 @@ class TestRoute53Provider(TestCase):
plan = provider.plan(self.expected)
self.assertEquals(9, len(plan.changes))
self.assertFalse(plan.exists)
for change in plan.changes:
self.assertIsInstance(change, Create)
stubber.assert_no_pending_responses()


Loading…
Cancel
Save