mirror of
https://github.com/github/octodns.git
synced 2024-05-11 05:55:00 +00:00
Implement populate exists for Route53Provider
This commit is contained in:
@@ -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: ')
|
||||
|
@@ -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):
|
||||
'''
|
||||
|
@@ -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()
|
||||
|
Reference in New Issue
Block a user