octodns.manager

class octodns.manager._AggregateTarget(targets)[source]

Bases: object

id = 'aggregate'
__init__(targets)[source]
supports(record)[source]
class octodns.manager.MakeThreadFuture(func, args, kwargs)[source]

Bases: object

__init__(func, args, kwargs)[source]
result()[source]
class octodns.manager.MainThreadExecutor[source]

Bases: object

Dummy executor that runs things on the main thread during the invocation of submit, but still returns a future object with the result. This allows code to be written to handle async, even in the case where we don’t want to use multiple threads/workers and would prefer that things flow as if traditionally written.

submit(func, *args, **kwargs)[source]
exception octodns.manager.ManagerException[source]

Bases: Exception

class octodns.manager.Manager(config_file, max_workers=None, include_meta=False, auto_arpa=False, enable_checksum=False)[source]

Bases: object

log = <Logger Manager (WARNING)>
plan_log = <Logger Plan (WARNING)>
classmethod _plan_keyer(p)[source]
__init__(config_file, max_workers=None, include_meta=False, auto_arpa=False, enable_checksum=False)[source]
_config_zones(zones)[source]
_config_executor(manager_config, max_workers=None)[source]
_config_include_meta(manager_config, include_meta=False)[source]
_config_enable_checksum(manager_config, enable_checksum=False)[source]
_config_auto_arpa(manager_config, auto_arpa=False)[source]
_config_secret_handlers(secret_handlers_config)[source]
_config_providers(providers_config)[source]
_config_processors(processors_config)[source]
_config_plan_outputs(plan_outputs_config)[source]
_try_version(module_name, module=None, version=None)[source]
_import_module(module_name)[source]
_get_named_class(_type, _class, context)[source]
_build_kwargs(source)[source]
configured_sub_zones(zone_name)[source]

Accepts either UTF-8 or IDNA encoded zone name and returns the list of any configured sub-zones in IDNA form. E.g. for the following configured zones:

some.com. other.some.com. deep.thing.some.com.

It would return

other deep.thing

_populate_and_plan(zone_name, processors, sources, targets, desired=None, lenient=False)[source]
_get_sources(decoded_zone_name, config, eligible_sources)[source]
_preprocess_zones(zones, eligible_sources=None, sources=None)[source]

This may modify the passed in zone object, it should be ignored after the call and the zones returned from this function should be used instead.

sync(eligible_zones=[], eligible_sources=[], eligible_targets=[], dry_run=True, force=False, plan_output_fh=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>, checksum=None)[source]
compare(a, b, zone)[source]

Compare zone data between 2 sources.

Note: only things supported by both sources will be considered

dump(zone, output_dir, sources, lenient=False, split=False, output_provider=None)[source]

Dump zone data from the specified source

validate_configs(lenient=False)[source]
get_zone(zone_name)[source]