mirror of
https://github.com/github/octodns.git
synced 2024-05-11 05:55:00 +00:00
Implement octodns-sync --source
It can be useful to only synchronize zones that use a certain source. For example, in a situation where some zones use a dynamic source and others don't, you probably want to synchronize those with a dynamic source regularly, and only synchronize the others when a change is made. Although we only synchronize the zones that use a given source, we still want to synchronize all sources to avoid deleting records that would live in another source of the zone.
This commit is contained in:
@@ -255,8 +255,8 @@ class Manager(object):
|
||||
|
||||
return plans
|
||||
|
||||
def sync(self, eligible_zones=[], eligible_targets=[], dry_run=True,
|
||||
force=False):
|
||||
def sync(self, eligible_zones=[], eligible_sources=[], eligible_targets=[],
|
||||
dry_run=True, force=False):
|
||||
self.log.info('sync: eligible_zones=%s, eligible_targets=%s, '
|
||||
'dry_run=%s, force=%s', eligible_zones, eligible_targets,
|
||||
dry_run, force)
|
||||
@@ -280,6 +280,12 @@ class Manager(object):
|
||||
except KeyError:
|
||||
raise ManagerException('Zone {} is missing targets'
|
||||
.format(zone_name))
|
||||
|
||||
if (eligible_sources and not
|
||||
[s for s in sources if s in eligible_sources]):
|
||||
self.log.info('sync: no eligible sources, skipping')
|
||||
continue
|
||||
|
||||
if eligible_targets:
|
||||
targets = [t for t in targets if t in eligible_targets]
|
||||
|
||||
|
Reference in New Issue
Block a user