Browse Source

Rework YamlProvider.apply to use Zone.apply w/changes

pull/1223/head
Ross McFarland 1 year ago
parent
commit
8540d525c0
No known key found for this signature in database GPG Key ID: 943B179E15D3B22A
1 changed files with 12 additions and 10 deletions
  1. +12
    -10
      octodns/provider/yaml.py

+ 12
- 10
octodns/provider/yaml.py View File

@ -379,17 +379,19 @@ class YamlProvider(BaseProvider):
return False
def _apply(self, plan):
desired = plan.desired
# make a copy of existing we can muck with
copy = plan.existing.copy()
changes = plan.changes
self.log.debug(
'_apply: zone=%s, len(changes)=%d',
desired.decoded_name,
len(changes),
'_apply: zone=%s, len(changes)=%d', copy.decoded_name, len(changes)
)
# Since we don't have existing we'll only see creates
records = [c.new for c in changes]
# Order things alphabetically (records sort that way
records.sort()
# apply our pending changes to that copy
copy.apply(changes)
# we now have the records we need to write out, order things
# alphabetically (records sort that way
records = sorted(copy.records)
data = defaultdict(list)
for record in records:
d = record.data
@ -411,7 +413,7 @@ class YamlProvider(BaseProvider):
if self.split_extension:
# we're going to do split files
decoded_name = desired.decoded_name[:-1]
decoded_name = copy.decoded_name[:-1]
directory = join(
self.directory, f'{decoded_name}{self.split_extension}'
)
@ -443,7 +445,7 @@ class YamlProvider(BaseProvider):
else:
# single large file
filename = join(self.directory, f'{desired.decoded_name}yaml')
filename = join(self.directory, f'{copy.decoded_name}yaml')
self.log.debug('_apply: writing filename=%s', filename)
with open(filename, 'w') as fh:
safe_dump(


Loading…
Cancel
Save