octodns.processor.filter¶
- class octodns.processor.filter._FilterProcessor(name, include_target=True, **kwargs)[source]¶
Bases:
BaseProcessor- process_source_zone(*args, **kwargs)[source]¶
Called after all sources have completed populate. Provides an opportunity for the processor to modify the desired Zone that targets will receive.
Will see desired after any modifications done by Provider._process_desired_zone and processors configured to run before this one.
May modify desired directly.
Must return desired which will normally be the desired param.
Must not modify records directly, record.copy should be called, the results of which can be modified, and then Zone.add_record may be used with replace=True.
May call Zone.remove_record to remove records from desired.
Sources may be empty, as will be the case for aliased zones.
- process_target_zone(existing, *args, **kwargs)[source]¶
Called after a target has completed populate, before changes are computed between existing and desired. This provides an opportunity to modify the existing Zone.
Will see existing after any modifications done by processors configured to run before this one.
May modify existing directly.
Must return existing which will normally be the existing param.
Must not modify records directly, record.copy should be called, the results of which can be modified, and then Zone.add_record may be used with replace=True.
May call Zone.remove_record to remove records from existing.
- class octodns.processor.filter._TypeBaseFilter(name, _list, **kwargs)[source]¶
Bases:
_FilterProcessor
- class octodns.processor.filter.TypeAllowlistFilter(name, allowlist, **kwargs)[source]¶
Bases:
_TypeBaseFilter,AllowsMixinOnly manage records of the specified type(s).
Example usage:
- processors:
- only-a-and-aaaa:
class: octodns.processor.filter.TypeAllowlistFilter allowlist:
A
AAAA
# Optional param that can be set to False to leave the target zone # alone, thus allowing deletion of existing records # (default: true) # include_target: True
- zones:
- exxampled.com.:
- sources:
config
- processors:
only-a-and-aaaa
- targets:
ns1
- class octodns.processor.filter.TypeRejectlistFilter(name, rejectlist, **kwargs)[source]¶
Bases:
_TypeBaseFilter,RejectsMixinIgnore records of the specified type(s).
Example usage:
- processors:
- ignore-cnames:
class: octodns.processor.filter.TypeRejectlistFilter rejectlist:
CNAME
# Optional param that can be set to False to leave the target zone # alone, thus allowing deletion of existing records # (default: true) # include_target: True
- zones:
- exxampled.com.:
- sources:
config
- processors:
ignore-cnames
- targets:
route53
- class octodns.processor.filter._NameBaseFilter(name, _list, **kwargs)[source]¶
Bases:
_FilterProcessor
- class octodns.processor.filter.NameAllowlistFilter(name, allowlist, **kwargs)[source]¶
Bases:
_NameBaseFilter,AllowsMixinOnly manage records with names that match the provider patterns
Example usage:
- processors:
- only-these:
class: octodns.processor.filter.NameAllowlistFilter allowlist:
# exact string match - www # contains/substring match - /substring/ # regex pattern match - /some-pattern-d+/ # regex - anchored so has to match start to end - /^start-.+-end$/
# Optional param that can be set to False to leave the target zone # alone, thus allowing deletion of existing records # (default: true) # include_target: True
- zones:
- exxampled.com.:
- sources:
config
- processors:
only-these
- targets:
route53
- class octodns.processor.filter.NameRejectlistFilter(name, rejectlist, **kwargs)[source]¶
Bases:
_NameBaseFilter,RejectsMixinReject managing records with names that match the provider patterns
Example usage:
- processors:
- not-these:
class: octodns.processor.filter.NameRejectlistFilter rejectlist:
# exact string match - www # contains/substring match - /substring/ # regex pattern match - /some-pattern-d+/ # regex - anchored so has to match start to end - /^start-.+-end$/
# Optional param that can be set to False to leave the target zone # alone, thus allowing deletion of existing records # (default: true) # include_target: True
- zones:
- exxampled.com.:
- sources:
config
- processors:
not-these
- targets:
route53
- class octodns.processor.filter._ValueBaseFilter(name, _list, **kwargs)[source]¶
Bases:
_FilterProcessor
- class octodns.processor.filter.ValueAllowlistFilter(name, allowlist, **kwargs)[source]¶
Bases:
_ValueBaseFilter,AllowsMixinOnly manage records with values that match the provider patterns
Example usage:
- processors:
- only-these:
class: octodns.processor.filter.ValueAllowlistFilter allowlist:
# exact string match - www # contains/substring match - /substring/ # regex pattern match - /some-pattern-d+/ # regex - anchored so has to match start to end - /^start-.+-end$/
# Optional param that can be set to False to leave the target zone # alone, thus allowing deletion of existing records # (default: true) # include_target: True
- zones:
- exxampled.com.:
- sources:
config
- processors:
only-these
- targets:
route53
- class octodns.processor.filter.ValueRejectlistFilter(name, rejectlist, **kwargs)[source]¶
Bases:
_ValueBaseFilter,RejectsMixinReject managing records with names that match the provider patterns
Example usage:
- processors:
- not-these:
class: octodns.processor.filter.ValueRejectlistFilter rejectlist:
# exact string match - www # contains/substring match - /substring/ # regex pattern match - /some-pattern-d+/ # regex - anchored so has to match start to end - /^start-.+-end$/
# Optional param that can be set to False to leave the target zone # alone, thus allowing deletion of existing records # (default: true) # include_target: True
- zones:
- exxampled.com.:
- sources:
config
- processors:
not-these
- targets:
route53
- class octodns.processor.filter._NetworkValueBaseFilter(name, _list)[source]¶
Bases:
BaseProcessor- process_source_zone(zone, *args, **kwargs)¶
Called after all sources have completed populate. Provides an opportunity for the processor to modify the desired Zone that targets will receive.
Will see desired after any modifications done by Provider._process_desired_zone and processors configured to run before this one.
May modify desired directly.
Must return desired which will normally be the desired param.
Must not modify records directly, record.copy should be called, the results of which can be modified, and then Zone.add_record may be used with replace=True.
May call Zone.remove_record to remove records from desired.
Sources may be empty, as will be the case for aliased zones.
- process_target_zone(zone, *args, **kwargs)¶
Called after a target has completed populate, before changes are computed between existing and desired. This provides an opportunity to modify the existing Zone.
Will see existing after any modifications done by processors configured to run before this one.
May modify existing directly.
Must return existing which will normally be the existing param.
Must not modify records directly, record.copy should be called, the results of which can be modified, and then Zone.add_record may be used with replace=True.
May call Zone.remove_record to remove records from existing.
- class octodns.processor.filter.NetworkValueAllowlistFilter(name, allowlist)[source]¶
Bases:
_NetworkValueBaseFilter,AllowsMixinOnly manage A and AAAA records with values that match the provider patterns All other types will be left as-is.
Example usage:
- processors:
- only-these:
class: octodns.processor.filter.NetworkValueAllowlistFilter allowlist:
127.0.0.1/32
192.168.0.0/16
fd00::/8
- zones:
- exxampled.com.:
- sources:
config
- processors:
only-these
- targets:
route53
- class octodns.processor.filter.NetworkValueRejectlistFilter(name, rejectlist)[source]¶
Bases:
_NetworkValueBaseFilter,RejectsMixinReject managing A and AAAA records with value matching a that match the provider patterns All other types will be left as-is.
Example usage:
- processors:
- not-these:
class: octodns.processor.filter.NetworkValueRejectlistFilter rejectlist:
127.0.0.1/32
192.168.0.0/16
fd00::/8
- zones:
- exxampled.com.:
- sources:
config
- processors:
not-these
- targets:
route53
- class octodns.processor.filter.IgnoreRootNsFilter(name)[source]¶
Bases:
BaseProcessorDo not manage Root NS Records.
Example usage:
- processors:
- no-root-ns:
class: octodns.processor.filter.IgnoreRootNsFilter
- zones:
- exxampled.com.:
- sources:
config
- processors:
no-root-ns
- targets:
ns1
- process_source_zone(zone, *args, **kwargs)¶
Called after all sources have completed populate. Provides an opportunity for the processor to modify the desired Zone that targets will receive.
Will see desired after any modifications done by Provider._process_desired_zone and processors configured to run before this one.
May modify desired directly.
Must return desired which will normally be the desired param.
Must not modify records directly, record.copy should be called, the results of which can be modified, and then Zone.add_record may be used with replace=True.
May call Zone.remove_record to remove records from desired.
Sources may be empty, as will be the case for aliased zones.
- process_target_zone(zone, *args, **kwargs)¶
Called after a target has completed populate, before changes are computed between existing and desired. This provides an opportunity to modify the existing Zone.
Will see existing after any modifications done by processors configured to run before this one.
May modify existing directly.
Must return existing which will normally be the existing param.
Must not modify records directly, record.copy should be called, the results of which can be modified, and then Zone.add_record may be used with replace=True.
May call Zone.remove_record to remove records from existing.
- class octodns.processor.filter.ExcludeRootNsChanges(name, error=True)[source]¶
Bases:
BaseProcessorDo not allow root NS record changes
Example usage:
- processors:
- exclude-root-ns-changes:
class: octodns.processor.filter.ExcludeRootNsChanges # If true an a change for a root NS is seen an error will be thrown. If # false a warning will be printed and the change will be removed from # the plan. # (default: true) error: true
- zones:
- exxampled.com.:
- sources:
config
- processors:
exclude-root-ns-changes
- targets:
ns1
- process_plan(plan, sources, target)[source]¶
Called after the planning phase has completed. Provides an opportunity for the processors to modify the plan thus changing the actions that will be displayed and potentially applied.
plan may be None if no changes were detected, if so a Plan may still be created and returned.
May modify plan.changes directly or create a new Plan.
Does not have to modify plan.desired and/or plan.existing to line up with any modifications made to plan.changes.
Should copy over plan.exists, plan.update_pcent_threshold, and plan.delete_pcent_threshold when creating a new Plan.
Must return a Plan which may be plan or can be a newly created one plan.desired and plan.existing copied over as-is or modified.
- class octodns.processor.filter.ZoneNameFilter(name, error=True, **kwargs)[source]¶
Bases:
_FilterProcessorFilter or error on record names that contain the zone name
Example usage:
- processors:
- zone-name:
class: octodns.processor.filter.ZoneNameFilter # If true a ValidationError will be throw when such records are # encouterd, if false the records will just be ignored/omitted. # (default: true) # error: True # Optional param that can be set to False to leave the target zone # alone, thus allowing deletion of existing records # (default: true) # include_target: True
- zones:
- exxampled.com.:
- sources:
config
- processors:
zone-name
- targets:
azure