diff --git a/octodns/provider/base.py b/octodns/provider/base.py index c900793..75fe18d 100644 --- a/octodns/provider/base.py +++ b/octodns/provider/base.py @@ -84,11 +84,12 @@ class BaseProvider(BaseSource): if not self.SUPPORTS_DYNAMIC_SUBNETS: subnet_rules = [] for i, rule in enumerate(record.dynamic.rules): - if 'subnets' not in rule.data: + rule = rule.data + if not rule.get('subnets'): continue msg = f'rule {i + 1} contains unsupported subnet matching in {record.fqdn}' - if 'geos' in rule.data: + if rule.get('geos'): fallback = 'using geos only' self.supports_warn_or_except(msg, fallback) else: @@ -100,12 +101,13 @@ class BaseProvider(BaseSource): record = record.copy() # drop subnet rules in reverse order so indices don't shift during rule deletion + rules = record.dynamic.rules for i in subnet_rules[::-1]: - rule = record.dynamic.rules[i] - if 'geo' in rule: + rule = rules[i].data + if rule.get('geos'): del rule['subnets'] else: - del record.dynamic.rules[i] + del rules[i] # drop any pools rendered unused pools = record.dynamic.pools