From 06c18f406317918536bd389738af68dbc4bb11ac Mon Sep 17 00:00:00 2001 From: Jonathan Leroy Date: Wed, 21 Oct 2020 19:11:02 +0200 Subject: [PATCH] Add zones aliases support to octodns-report command --- octodns/cmds/report.py | 2 +- octodns/manager.py | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/octodns/cmds/report.py b/octodns/cmds/report.py index 3a26052..1ccad33 100755 --- a/octodns/cmds/report.py +++ b/octodns/cmds/report.py @@ -56,7 +56,7 @@ def main(): except KeyError as e: raise Exception('Unknown source: {}'.format(e.args[0])) - zone = Zone(args.zone, manager.configured_sub_zones(args.zone)) + zone = manager.get_zone(args.zone) for source in sources: source.populate(zone) diff --git a/octodns/manager.py b/octodns/manager.py index 613be29..d131e78 100644 --- a/octodns/manager.py +++ b/octodns/manager.py @@ -467,3 +467,18 @@ class Manager(object): for source in sources: if isinstance(source, YamlProvider): source.populate(zone) + + def get_zone(self, zone_name): + if not zone_name[-1] == '.': + raise Exception('Invalid zone name {}, missing ending dot' + .format(zone_name)) + + for name, config in self.config['zones'].items(): + if name == zone_name: + file = config.get('file', False) + is_alias = config.get('is_alias', False) + + return Zone(name, self.configured_sub_zones(name), + file, is_alias) + + raise ManagerException('Unkown zone name {}'.format(zone_name))