mirror of
https://github.com/github/octodns.git
synced 2024-05-11 05:55:00 +00:00
modify desired, not existing
This commit is contained in:
@@ -120,13 +120,13 @@ class MetaProcessor(BaseProcessor):
|
||||
def process_source_and_target_zones(self, desired, existing, target):
|
||||
if self.include_provider:
|
||||
# look for the meta record
|
||||
for record in sorted(existing.records):
|
||||
for record in sorted(desired.records):
|
||||
if record.name == self.record_name and record._type == 'TXT':
|
||||
# we've found it, make a copy we can modify
|
||||
record = record.copy()
|
||||
record.values = record.values + [f'provider={target.id}']
|
||||
record.values.sort()
|
||||
existing.add_record(record, replace=True)
|
||||
desired.add_record(record, replace=True)
|
||||
break
|
||||
|
||||
return desired, existing
|
||||
|
||||
@@ -128,8 +128,11 @@ class TestMetaProcessor(TestCase):
|
||||
proc = MetaProcessor('test')
|
||||
|
||||
# with defaults, not enabled
|
||||
zone = self.zone.copy()
|
||||
processed, _ = proc.process_source_and_target_zones(zone, zone, None)
|
||||
existing = self.zone.copy()
|
||||
desired = self.zone.copy()
|
||||
processed, _ = proc.process_source_and_target_zones(
|
||||
existing, desired, None
|
||||
)
|
||||
self.assertFalse(processed.records)
|
||||
|
||||
# enable provider
|
||||
@@ -141,7 +144,7 @@ class TestMetaProcessor(TestCase):
|
||||
# enabled provider, no meta record, shouldn't happen, but also shouldn't
|
||||
# blow up
|
||||
processed, _ = proc.process_source_and_target_zones(
|
||||
zone, zone, DummyTarget()
|
||||
existing, desired, DummyTarget()
|
||||
)
|
||||
self.assertFalse(processed.records)
|
||||
|
||||
@@ -149,23 +152,25 @@ class TestMetaProcessor(TestCase):
|
||||
# - only record so nothing to skip over
|
||||
# - time value in there to be skipped over
|
||||
proc = MetaProcessor('test', include_provider=True)
|
||||
zone = self.zone.copy()
|
||||
existing = self.zone.copy()
|
||||
desired = self.zone.copy()
|
||||
meta = self.meta_up_to_date.copy()
|
||||
zone.add_record(meta)
|
||||
existing.add_record(meta)
|
||||
processed, _ = proc.process_source_and_target_zones(
|
||||
zone, zone, DummyTarget()
|
||||
existing, desired, DummyTarget()
|
||||
)
|
||||
record = next(iter(processed.records))
|
||||
self.assertEqual(['provider=dummy', 'time=xxx'], record.values)
|
||||
|
||||
# add another unrelated record that needs to be skipped
|
||||
proc = MetaProcessor('test', include_provider=True)
|
||||
zone = self.zone.copy()
|
||||
existing = self.zone.copy()
|
||||
desired = self.zone.copy()
|
||||
meta = self.meta_up_to_date.copy()
|
||||
zone.add_record(meta)
|
||||
zone.add_record(self.not_meta)
|
||||
existing.add_record(meta)
|
||||
existing.add_record(self.not_meta)
|
||||
processed, _ = proc.process_source_and_target_zones(
|
||||
zone, zone, DummyTarget()
|
||||
existing, desired, DummyTarget()
|
||||
)
|
||||
self.assertEqual(2, len(processed.records))
|
||||
record = [r for r in processed.records if r.name == proc.record_name][0]
|
||||
|
||||
Reference in New Issue
Block a user