Browse Source

Add --split flag to dump

Signed-off-by: Christian Funkhouser <cfunkhouser@heroku.com>
pull/336/head
Christian Funkhouser 7 years ago
parent
commit
81d9c083fc
No known key found for this signature in database GPG Key ID: 6894A9878C7FB782
2 changed files with 11 additions and 4 deletions
  1. +5
    -1
      octodns/cmds/dump.py
  2. +6
    -3
      octodns/manager.py

+ 5
- 1
octodns/cmds/dump.py View File

@ -21,6 +21,9 @@ def main():
parser.add_argument('--lenient', action='store_true', default=False,
help='Ignore record validations and do a best effort '
'dump')
parser.add_argument('--split', action='store_true', default=False,
help='Split the dumped zone into a YAML file per '
'record')
parser.add_argument('zone', help='Zone to dump')
parser.add_argument('source', nargs='+',
help='Source(s) to pull data from')
@ -28,7 +31,8 @@ def main():
args = parser.parse_args()
manager = Manager(args.config_file)
manager.dump(args.zone, args.output_dir, args.lenient, *args.source)
manager.dump(args.zone, args.output_dir, args.lenient, args.split,
*args.source)
if __name__ == '__main__':


+ 6
- 3
octodns/manager.py View File

@ -12,7 +12,7 @@ import logging
from .provider.base import BaseProvider
from .provider.plan import Plan
from .provider.yaml import YamlProvider
from .provider.yaml import SplitYamlProvider, YamlProvider
from .record import Record
from .yaml import safe_load
from .zone import Zone
@ -357,7 +357,7 @@ class Manager(object):
return zb.changes(za, _AggregateTarget(a + b))
def dump(self, zone, output_dir, lenient, source, *sources):
def dump(self, zone, output_dir, lenient, split, source, *sources):
'''
Dump zone data from the specified source
'''
@ -372,7 +372,10 @@ class Manager(object):
except KeyError as e:
raise Exception('Unknown source: {}'.format(e.args[0]))
target = YamlProvider('dump', output_dir)
clz = YamlProvider
if split:
clz = SplitYamlProvider
target = clz('dump', output_dir)
zone = Zone(zone, self.configured_sub_zones(zone))
for source in sources:


Loading…
Cancel
Save