diff --git a/README.md b/README.md index f69f17c..85bf0c6 100644 --- a/README.md +++ b/README.md @@ -446,6 +446,7 @@ If you have a problem or suggestion, please [open an issue](https://github.com/o ## Related Projects and Resources - **GitHub Action:** [octoDNS-Sync](https://github.com/marketplace/actions/octodns-sync) +- **NixOS Integration:** [NixOS-DNS](https://github.com/Janik-Haag/nixos-dns/) - **Sample Implementations.** See how others are using it - [`hackclub/dns`](https://github.com/hackclub/dns) - [`kubernetes/k8s.io:/dns`](https://github.com/kubernetes/k8s.io/tree/main/dns) diff --git a/octodns/manager.py b/octodns/manager.py index 54e8c28..7529a45 100644 --- a/octodns/manager.py +++ b/octodns/manager.py @@ -620,7 +620,12 @@ class Manager(object): aliased_zones = {} delayed_arpa = [] futures = [] + for zone_name, config in zones.items(): + if config is None: + raise ManagerException( + f'Requested zone "{zone_name}" not found in config' + ) decoded_zone_name = idna_decode(zone_name) self.log.info('sync: zone=%s', decoded_zone_name) if 'alias' in config: diff --git a/tests/test_octodns_manager.py b/tests/test_octodns_manager.py index 0e4a15e..a369b1b 100644 --- a/tests/test_octodns_manager.py +++ b/tests/test_octodns_manager.py @@ -79,6 +79,13 @@ class TestManager(TestCase): ) self.assertTrue('missing sources' in str(ctx.exception)) + def test_missing_zone(self): + with self.assertRaises(ManagerException) as ctx: + Manager(get_config_filename('dynamic-config.yaml')).sync( + ['missing.zones.'] + ) + self.assertTrue('Requested zone ' in str(ctx.exception)) + def test_missing_targets(self): with self.assertRaises(ManagerException) as ctx: Manager(get_config_filename('provider-problems.yaml')).sync(