|
|
|
@ -57,6 +57,11 @@ class YamlProvider(BaseProvider): |
|
|
|
# (optional, default False) |
|
|
|
split_catchall: false |
|
|
|
|
|
|
|
# Optional filename with record data to be included in all zones |
|
|
|
# populated by this provider. Has no effect when used as a target. |
|
|
|
# (optional, default null) |
|
|
|
shared_filename: null |
|
|
|
|
|
|
|
# Disable loading of the zone .yaml files. |
|
|
|
# (optional, default False) |
|
|
|
disable_zonefile: false |
|
|
|
@ -171,6 +176,7 @@ class YamlProvider(BaseProvider): |
|
|
|
supports_root_ns=True, |
|
|
|
split_extension=False, |
|
|
|
split_catchall=False, |
|
|
|
shared_filename=False, |
|
|
|
disable_zonefile=False, |
|
|
|
*args, |
|
|
|
**kwargs, |
|
|
|
@ -178,7 +184,7 @@ class YamlProvider(BaseProvider): |
|
|
|
klass = self.__class__.__name__ |
|
|
|
self.log = logging.getLogger(f'{klass}[{id}]') |
|
|
|
self.log.debug( |
|
|
|
'__init__: id=%s, directory=%s, default_ttl=%d, enforce_order=%d, populate_should_replace=%s, supports_root_ns=%s, split_extension=%s, split_catchall=%s, disable_zonefile=%s', |
|
|
|
'__init__: id=%s, directory=%s, default_ttl=%d, enforce_order=%d, populate_should_replace=%s, supports_root_ns=%s, split_extension=%s, split_catchall=%s, shared_filename=%s, disable_zonefile=%s', |
|
|
|
id, |
|
|
|
directory, |
|
|
|
default_ttl, |
|
|
|
@ -187,6 +193,7 @@ class YamlProvider(BaseProvider): |
|
|
|
supports_root_ns, |
|
|
|
split_extension, |
|
|
|
split_catchall, |
|
|
|
shared_filename, |
|
|
|
disable_zonefile, |
|
|
|
) |
|
|
|
super().__init__(id, *args, **kwargs) |
|
|
|
@ -197,6 +204,7 @@ class YamlProvider(BaseProvider): |
|
|
|
self.supports_root_ns = supports_root_ns |
|
|
|
self.split_extension = split_extension |
|
|
|
self.split_catchall = split_catchall |
|
|
|
self.shared_filename = shared_filename |
|
|
|
self.disable_zonefile = disable_zonefile |
|
|
|
|
|
|
|
def copy(self): |
|
|
|
@ -334,6 +342,9 @@ class YamlProvider(BaseProvider): |
|
|
|
if not self.disable_zonefile: |
|
|
|
sources.append(self._zone_sources(zone)) |
|
|
|
|
|
|
|
if self.shared_filename: |
|
|
|
sources.append(join(self.directory, self.shared_filename)) |
|
|
|
|
|
|
|
# determinstically order our sources |
|
|
|
sources.sort() |
|
|
|
|
|
|
|
|