mirror of
https://github.com/github/octodns.git
synced 2024-05-11 05:55:00 +00:00
Implement Record.copy() function
Flip if in _populate_and_plan()
This commit is contained in:
@@ -230,7 +230,12 @@ class Manager(object):
|
||||
zone = Zone(zone_name,
|
||||
sub_zones=self.configured_sub_zones(zone_name))
|
||||
|
||||
if not desired:
|
||||
if desired:
|
||||
for _, records in desired._records.items():
|
||||
for record in records:
|
||||
zone.add_record(record.copy(zone=zone), lenient=lenient)
|
||||
|
||||
else:
|
||||
for source in sources:
|
||||
try:
|
||||
source.populate(zone, lenient=lenient)
|
||||
@@ -241,14 +246,6 @@ class Manager(object):
|
||||
'param', source.__class__.__name__)
|
||||
source.populate(zone)
|
||||
|
||||
else:
|
||||
for _, records in desired._records.items():
|
||||
for record in records:
|
||||
d = record.data
|
||||
d['type'] = record._type
|
||||
r = Record.new(zone, record.name, d, source=record.source)
|
||||
zone.add_record(r, lenient=lenient)
|
||||
|
||||
self.log.debug('sync: planning, zone=%s', zone_name)
|
||||
plans = []
|
||||
|
||||
|
@@ -151,6 +151,7 @@ class Record(EqualityTupleMixin):
|
||||
# force everything lower-case just to be safe
|
||||
self.name = text_type(name).lower() if name else name
|
||||
self.source = source
|
||||
self._raw_data = data
|
||||
self.ttl = int(data['ttl'])
|
||||
|
||||
self._octodns = data.get('octodns', {})
|
||||
@@ -219,6 +220,14 @@ class Record(EqualityTupleMixin):
|
||||
if self.ttl != other.ttl:
|
||||
return Update(self, other)
|
||||
|
||||
def copy(self, zone=None):
|
||||
return Record(
|
||||
zone if zone else self.zone,
|
||||
self.name,
|
||||
self._raw_data,
|
||||
self.source
|
||||
)
|
||||
|
||||
# NOTE: we're using __hash__ and ordering methods that consider Records
|
||||
# equivalent if they have the same name & _type. Values are ignored. This
|
||||
# is useful when computing diffs/changes.
|
||||
|
Reference in New Issue
Block a user