netbox-plugin-dns 1.2.7b2__tar.gz → 1.2.7b3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of netbox-plugin-dns might be problematic. Click here for more details.
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/PKG-INFO +1 -1
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/__init__.py +1 -1
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/api/nested_serializers.py +19 -1
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/api/serializers_/dnssec_key_template.py +11 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/api/serializers_/dnssec_policy.py +17 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/choices/dnssec_key_template.py +2 -2
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/fields/choice_array.py +13 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/fields/timeperiod.py +9 -1
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/filtersets/dnssec_key_template.py +2 -2
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/filtersets/dnssec_policy.py +27 -3
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/forms/dnssec_key_template.py +2 -2
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/forms/dnssec_policy.py +31 -4
- netbox_plugin_dns-1.2.7b3/netbox_dns/locale/de/LC_MESSAGES/django.mo +0 -0
- netbox_plugin_dns-1.2.7b3/netbox_dns/locale/fr/LC_MESSAGES/django.mo +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/models/dnssec_policy.py +5 -3
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/validators/dnssec.py +10 -8
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/views/dnssec_policy.py +3 -1
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_plugin_dns.egg-info/PKG-INFO +1 -1
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/pyproject.toml +1 -1
- netbox_plugin_dns-1.2.7b2/netbox_dns/locale/de/LC_MESSAGES/django.mo +0 -0
- netbox_plugin_dns-1.2.7b2/netbox_dns/locale/fr/LC_MESSAGES/django.mo +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/LICENSE +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/README.md +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/api/serializers.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/api/serializers_/__init__.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/api/serializers_/nameserver.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/api/serializers_/prefix.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/api/serializers_/record.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/api/serializers_/record_template.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/api/serializers_/registrar.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/api/serializers_/registration_contact.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/api/serializers_/view.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/api/serializers_/zone.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/api/serializers_/zone_template.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/api/urls.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/api/views.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/apps.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/choices/__init__.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/choices/dnssec_policy.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/choices/record.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/choices/utilities.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/choices/zone.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/fields/__init__.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/fields/address.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/fields/ipam.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/fields/network.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/fields/rfc2317.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/filtersets/__init__.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/filtersets/nameserver.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/filtersets/record.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/filtersets/record_template.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/filtersets/registrar.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/filtersets/registration_contact.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/filtersets/view.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/filtersets/zone.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/filtersets/zone_template.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/forms/__init__.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/forms/nameserver.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/forms/record.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/forms/record_template.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/forms/registrar.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/forms/registration_contact.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/forms/view.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/forms/zone.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/forms/zone_template.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/graphql/__init__.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/graphql/filters.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/graphql/schema.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/graphql/types.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/locale/en/LC_MESSAGES/django.mo +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/management/commands/cleanup_database.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/management/commands/cleanup_rrset_ttl.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/management/commands/rebuild_dnssync.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/management/commands/setup_dnssync.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/management/commands/update_soa.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/migrations/0001_squashed_netbox_dns_0_15.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/migrations/0001_squashed_netbox_dns_0_22.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/migrations/0002_contact_description_registrar_description.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/migrations/0003_default_view.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/migrations/0004_create_and_assign_default_view.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/migrations/0005_alter_zone_view_not_null.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/migrations/0006_templating.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/migrations/0007_alter_ordering_options.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/migrations/0008_view_prefixes.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/migrations/0009_rename_contact_registrationcontact.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/migrations/0010_view_ip_address_filter.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/migrations/0011_rename_related_fields.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/migrations/0012_natural_ordering.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/migrations/0013_zonetemplate_soa_mname_zonetemplate_soa_rname.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/migrations/0014_alter_unique_constraints_lowercase.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/migrations/0015_dnssec.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/migrations/0016_dnssec_policy_status.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/migrations/0017_dnssec_policy_zone_zone_template.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/migrations/0020_netbox_3_4.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/migrations/0021_record_ip_address.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/migrations/0022_search.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/migrations/0023_alter_record_value.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/migrations/0024_tenancy.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/migrations/0025_ipam_coupling_cf.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/migrations/0026_domain_registration.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/migrations/0027_alter_registrar_iana_id.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/migrations/0028_rfc2317_fields.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/migrations/0029_record_fqdn.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/migrations/__init__.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/mixins/__init__.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/mixins/object_modification.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/models/__init__.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/models/dnssec_key_template.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/models/nameserver.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/models/record.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/models/record_template.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/models/registrar.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/models/registration_contact.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/models/view.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/models/zone.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/models/zone_template.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/navigation.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/signals/__init__.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/signals/dnssec.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/signals/ipam_dnssync.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/tables/__init__.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/tables/dnssec_key_template.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/tables/dnssec_policy.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/tables/ipam_dnssync.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/tables/nameserver.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/tables/record.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/tables/record_template.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/tables/registrar.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/tables/registration_contact.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/tables/view.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/tables/zone.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/tables/zone_template.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/template_content.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/templates/netbox_dns/dnsseckeytemplate.html +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/templates/netbox_dns/dnssecpolicy.html +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/templates/netbox_dns/nameserver.html +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/templates/netbox_dns/record/managed.html +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/templates/netbox_dns/record/related.html +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/templates/netbox_dns/record.html +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/templates/netbox_dns/recordtemplate.html +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/templates/netbox_dns/registrar.html +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/templates/netbox_dns/registrationcontact.html +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/templates/netbox_dns/view/button.html +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/templates/netbox_dns/view/prefix.html +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/templates/netbox_dns/view/related.html +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/templates/netbox_dns/view.html +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/templates/netbox_dns/zone/base.html +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/templates/netbox_dns/zone/child.html +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/templates/netbox_dns/zone/child_zone.html +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/templates/netbox_dns/zone/delegation_record.html +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/templates/netbox_dns/zone/managed_record.html +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/templates/netbox_dns/zone/record.html +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/templates/netbox_dns/zone/registration.html +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/templates/netbox_dns/zone/rfc2317_child_zone.html +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/templates/netbox_dns/zone.html +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/templates/netbox_dns/zonetemplate/child.html +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/templates/netbox_dns/zonetemplate.html +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/templatetags/__init__.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/templatetags/netbox_dns.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/urls.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/utilities/__init__.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/utilities/conversions.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/utilities/dns.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/utilities/ipam_dnssync.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/validators/__init__.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/validators/dns_name.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/validators/dns_value.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/validators/rfc2317.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/views/__init__.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/views/dnssec_key_template.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/views/nameserver.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/views/record.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/views/record_template.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/views/registrar.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/views/registration_contact.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/views/view.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/views/zone.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/views/zone_template.py +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_plugin_dns.egg-info/SOURCES.txt +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_plugin_dns.egg-info/dependency_links.txt +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_plugin_dns.egg-info/requires.txt +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_plugin_dns.egg-info/top_level.txt +0 -0
- {netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: netbox-plugin-dns
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.7b3
|
|
4
4
|
Summary: NetBox DNS is a NetBox plugin for managing DNS data.
|
|
5
5
|
Author-email: Peter Eckel <pete@netbox-dns.org>
|
|
6
6
|
Project-URL: Homepage, https://github.com/peteeckel/netbox-plugin-dns
|
{netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/api/nested_serializers.py
RENAMED
|
@@ -3,7 +3,7 @@ from rest_framework import serializers
|
|
|
3
3
|
|
|
4
4
|
from netbox.api.serializers import WritableNestedSerializer
|
|
5
5
|
|
|
6
|
-
from netbox_dns.models import Zone, Record, ZoneTemplate, RecordTemplate
|
|
6
|
+
from netbox_dns.models import Zone, Record, ZoneTemplate, RecordTemplate, DNSSECPolicy
|
|
7
7
|
from netbox_dns.api.serializers_.view import ViewSerializer
|
|
8
8
|
|
|
9
9
|
|
|
@@ -12,6 +12,7 @@ __all__ = (
|
|
|
12
12
|
"NestedRecordSerializer",
|
|
13
13
|
"NestedZoneTemplateSerializer",
|
|
14
14
|
"NestedRecordTemplateSerializer",
|
|
15
|
+
"NestedDNSSECPolicySerializer",
|
|
15
16
|
)
|
|
16
17
|
|
|
17
18
|
|
|
@@ -127,3 +128,20 @@ class NestedRecordTemplateSerializer(WritableNestedSerializer):
|
|
|
127
128
|
"ttl",
|
|
128
129
|
"description",
|
|
129
130
|
)
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
class NestedDNSSECPolicySerializer(WritableNestedSerializer):
|
|
134
|
+
url = serializers.HyperlinkedIdentityField(
|
|
135
|
+
view_name="plugins-api:netbox_dns-api:dnssecpolicy-detail"
|
|
136
|
+
)
|
|
137
|
+
|
|
138
|
+
class Meta:
|
|
139
|
+
model = DNSSECPolicy
|
|
140
|
+
fields = (
|
|
141
|
+
"id",
|
|
142
|
+
"url",
|
|
143
|
+
"display",
|
|
144
|
+
"name",
|
|
145
|
+
"description",
|
|
146
|
+
"status",
|
|
147
|
+
)
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
from django.utils.translation import gettext as _
|
|
1
2
|
from rest_framework import serializers
|
|
2
3
|
|
|
3
4
|
from netbox.api.serializers import NetBoxModelSerializer
|
|
@@ -5,6 +6,8 @@ from tenancy.api.serializers_.tenants import TenantSerializer
|
|
|
5
6
|
|
|
6
7
|
from netbox_dns.models import DNSSECKeyTemplate
|
|
7
8
|
|
|
9
|
+
from ..nested_serializers import NestedDNSSECPolicySerializer
|
|
10
|
+
|
|
8
11
|
|
|
9
12
|
__all__ = ("DNSSECKeyTemplateSerializer",)
|
|
10
13
|
|
|
@@ -13,6 +16,13 @@ class DNSSECKeyTemplateSerializer(NetBoxModelSerializer):
|
|
|
13
16
|
url = serializers.HyperlinkedIdentityField(
|
|
14
17
|
view_name="plugins-api:netbox_dns-api:dnsseckeytemplate-detail"
|
|
15
18
|
)
|
|
19
|
+
policies = NestedDNSSECPolicySerializer(
|
|
20
|
+
many=True,
|
|
21
|
+
read_only=True,
|
|
22
|
+
required=False,
|
|
23
|
+
default=None,
|
|
24
|
+
help_text=_("Policies using this Key Template"),
|
|
25
|
+
)
|
|
16
26
|
tenant = TenantSerializer(required=False, allow_null=True)
|
|
17
27
|
|
|
18
28
|
class Meta:
|
|
@@ -23,6 +33,7 @@ class DNSSECKeyTemplateSerializer(NetBoxModelSerializer):
|
|
|
23
33
|
"display",
|
|
24
34
|
"name",
|
|
25
35
|
"description",
|
|
36
|
+
"policies",
|
|
26
37
|
"tags",
|
|
27
38
|
"type",
|
|
28
39
|
"lifetime",
|
{netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/api/serializers_/dnssec_policy.py
RENAMED
|
@@ -7,6 +7,7 @@ from tenancy.api.serializers_.tenants import TenantSerializer
|
|
|
7
7
|
from netbox_dns.models import DNSSECPolicy
|
|
8
8
|
|
|
9
9
|
from .dnssec_key_template import DNSSECKeyTemplateSerializer
|
|
10
|
+
from ..nested_serializers import NestedZoneSerializer, NestedZoneTemplateSerializer
|
|
10
11
|
|
|
11
12
|
|
|
12
13
|
__all__ = ("DNSSECPolicySerializer",)
|
|
@@ -24,6 +25,20 @@ class DNSSECPolicySerializer(NetBoxModelSerializer):
|
|
|
24
25
|
default=None,
|
|
25
26
|
help_text=_("Key templates assigned to the policy"),
|
|
26
27
|
)
|
|
28
|
+
zones = NestedZoneSerializer(
|
|
29
|
+
many=True,
|
|
30
|
+
read_only=True,
|
|
31
|
+
required=False,
|
|
32
|
+
default=None,
|
|
33
|
+
help_text=_("Zones this policy is assigned to"),
|
|
34
|
+
)
|
|
35
|
+
zone_templates = NestedZoneTemplateSerializer(
|
|
36
|
+
many=True,
|
|
37
|
+
read_only=True,
|
|
38
|
+
required=False,
|
|
39
|
+
default=None,
|
|
40
|
+
help_text=_("Zone templates this policy is assigned to"),
|
|
41
|
+
)
|
|
27
42
|
tenant = TenantSerializer(required=False, allow_null=True)
|
|
28
43
|
|
|
29
44
|
class Meta:
|
|
@@ -37,6 +52,8 @@ class DNSSECPolicySerializer(NetBoxModelSerializer):
|
|
|
37
52
|
"status",
|
|
38
53
|
"tags",
|
|
39
54
|
"key_templates",
|
|
55
|
+
"zones",
|
|
56
|
+
"zone_templates",
|
|
40
57
|
"dnskey_ttl",
|
|
41
58
|
"purge_keys",
|
|
42
59
|
"publish_safety",
|
{netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/choices/dnssec_key_template.py
RENAMED
|
@@ -57,7 +57,7 @@ class DNSSECKeyTemplateKeySizeChoices(ChoiceSet):
|
|
|
57
57
|
@define_choice_attributes()
|
|
58
58
|
class DNSSECKeyTemplateAlgorithmChoices(ChoiceSet):
|
|
59
59
|
CHOICES = [
|
|
60
|
-
(algorithm.name, algorithm.name)
|
|
61
|
-
for algorithm in sorted(Algorithm, key=lambda a: a.
|
|
60
|
+
(algorithm.name, f"{algorithm.name} ({algorithm.value})")
|
|
61
|
+
for algorithm in sorted(Algorithm, key=lambda a: a.value)
|
|
62
62
|
if algorithm.value < 252 and algorithm not in DEPRECATED_ALGORITHMS
|
|
63
63
|
]
|
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
from django import forms
|
|
2
2
|
from django.contrib.postgres.fields import ArrayField
|
|
3
|
+
from django.db.models import Transform, IntegerField
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class ArrayLength(Transform):
|
|
7
|
+
lookup_name = "length"
|
|
8
|
+
function = "cardinality"
|
|
9
|
+
|
|
10
|
+
@property
|
|
11
|
+
def output_field(self):
|
|
12
|
+
return IntegerField()
|
|
3
13
|
|
|
4
14
|
|
|
5
15
|
class _TypedMultipleChoiceField(forms.TypedMultipleChoiceField):
|
|
@@ -18,3 +28,6 @@ class ChoiceArrayField(ArrayField):
|
|
|
18
28
|
coerce=self.base_field.to_python,
|
|
19
29
|
**kwargs,
|
|
20
30
|
)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
ChoiceArrayField.register_lookup(ArrayLength)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from django.forms import Field
|
|
1
|
+
from django.forms import Field, TextInput
|
|
2
2
|
from django.utils.dateparse import parse_duration
|
|
3
3
|
from django.core.exceptions import ValidationError
|
|
4
4
|
|
|
@@ -7,6 +7,14 @@ __all__ = ("TimePeriodField",)
|
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
class TimePeriodField(Field):
|
|
10
|
+
def __init__(self, *args, **kwargs):
|
|
11
|
+
placeholder = kwargs.pop("placeholder", None)
|
|
12
|
+
|
|
13
|
+
if placeholder is not None:
|
|
14
|
+
self.widget = TextInput(attrs={"placeholder": placeholder})
|
|
15
|
+
|
|
16
|
+
return super().__init__(*args, **kwargs)
|
|
17
|
+
|
|
10
18
|
def to_python(self, value):
|
|
11
19
|
if not value:
|
|
12
20
|
return None
|
{netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/filtersets/dnssec_key_template.py
RENAMED
|
@@ -27,13 +27,13 @@ class DNSSECKeyTemplateFilterSet(TenancyFilterSet, NetBoxModelFilterSet):
|
|
|
27
27
|
choices=DNSSECKeyTemplateKeySizeChoices,
|
|
28
28
|
)
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
policies_id = django_filters.ModelMultipleChoiceFilter(
|
|
31
31
|
field_name="policies",
|
|
32
32
|
queryset=DNSSECPolicy.objects.all(),
|
|
33
33
|
to_field_name="id",
|
|
34
34
|
label=_("DNSSEC Policy IDs"),
|
|
35
35
|
)
|
|
36
|
-
|
|
36
|
+
policies = django_filters.ModelMultipleChoiceFilter(
|
|
37
37
|
field_name="policies__name",
|
|
38
38
|
queryset=DNSSECPolicy.objects.all(),
|
|
39
39
|
to_field_name="name",
|
{netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/filtersets/dnssec_policy.py
RENAMED
|
@@ -7,7 +7,7 @@ from netbox.filtersets import NetBoxModelFilterSet
|
|
|
7
7
|
from tenancy.filtersets import TenancyFilterSet
|
|
8
8
|
from utilities.filters import MultiValueCharFilter
|
|
9
9
|
|
|
10
|
-
from netbox_dns.models import DNSSECPolicy, DNSSECKeyTemplate
|
|
10
|
+
from netbox_dns.models import DNSSECPolicy, DNSSECKeyTemplate, Zone, ZoneTemplate
|
|
11
11
|
from netbox_dns.choices import DNSSECPolicyStatusChoices
|
|
12
12
|
|
|
13
13
|
__all__ = ("DNSSECPolicyFilterSet",)
|
|
@@ -47,18 +47,42 @@ class DNSSECPolicyFilterSet(TenancyFilterSet, NetBoxModelFilterSet):
|
|
|
47
47
|
method="filter_cds_digest_types",
|
|
48
48
|
label=_("CDS Digest Types"),
|
|
49
49
|
)
|
|
50
|
-
|
|
50
|
+
key_templates = django_filters.ModelMultipleChoiceFilter(
|
|
51
51
|
field_name="key_templates__name",
|
|
52
52
|
queryset=DNSSECKeyTemplate.objects.all(),
|
|
53
53
|
to_field_name="name",
|
|
54
54
|
label=_("DNSSEC Key Templates"),
|
|
55
55
|
)
|
|
56
|
-
|
|
56
|
+
key_templates_id = django_filters.ModelMultipleChoiceFilter(
|
|
57
57
|
field_name="key_templates",
|
|
58
58
|
queryset=DNSSECKeyTemplate.objects.all(),
|
|
59
59
|
to_field_name="id",
|
|
60
60
|
label=_("DNSSEC Key Template IDs"),
|
|
61
61
|
)
|
|
62
|
+
zones = django_filters.ModelMultipleChoiceFilter(
|
|
63
|
+
field_name="zones__name",
|
|
64
|
+
queryset=Zone.objects.all(),
|
|
65
|
+
to_field_name="name",
|
|
66
|
+
label=_("Zones"),
|
|
67
|
+
)
|
|
68
|
+
zones_id = django_filters.ModelMultipleChoiceFilter(
|
|
69
|
+
field_name="zones",
|
|
70
|
+
queryset=Zone.objects.all(),
|
|
71
|
+
to_field_name="id",
|
|
72
|
+
label=_("Zone IDs"),
|
|
73
|
+
)
|
|
74
|
+
zone_templates = django_filters.ModelMultipleChoiceFilter(
|
|
75
|
+
field_name="zone_templates__name",
|
|
76
|
+
queryset=ZoneTemplate.objects.all(),
|
|
77
|
+
to_field_name="name",
|
|
78
|
+
label=_("Zone Templates"),
|
|
79
|
+
)
|
|
80
|
+
zone_templates_id = django_filters.ModelMultipleChoiceFilter(
|
|
81
|
+
field_name="zone_templates",
|
|
82
|
+
queryset=ZoneTemplate.objects.all(),
|
|
83
|
+
to_field_name="id",
|
|
84
|
+
label=_("Zone Template IDs"),
|
|
85
|
+
)
|
|
62
86
|
|
|
63
87
|
def filter_cds_digest_types(self, queryset, name, value):
|
|
64
88
|
if not value:
|
{netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/forms/dnssec_key_template.py
RENAMED
|
@@ -68,7 +68,7 @@ class DNSSECKeyTemplateFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
|
|
|
68
68
|
fieldsets = (
|
|
69
69
|
FieldSet("q", "filter_id", "tag"),
|
|
70
70
|
FieldSet("name", "description", name=_("Attributes")),
|
|
71
|
-
FieldSet("
|
|
71
|
+
FieldSet("policies_id", name=_("Policies")),
|
|
72
72
|
FieldSet("type", "lifetime", "algorithm", "key_size", name=_("Key Properties")),
|
|
73
73
|
FieldSet("tenant_group_id", "tenant_id", name=_("Tenancy")),
|
|
74
74
|
)
|
|
@@ -79,7 +79,7 @@ class DNSSECKeyTemplateFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
|
|
|
79
79
|
description = forms.CharField(
|
|
80
80
|
required=False,
|
|
81
81
|
)
|
|
82
|
-
|
|
82
|
+
policies_id = DynamicModelMultipleChoiceField(
|
|
83
83
|
queryset=DNSSECPolicy.objects.all(),
|
|
84
84
|
required=False,
|
|
85
85
|
label=_("Policies"),
|
|
@@ -23,7 +23,7 @@ from utilities.forms import BOOLEAN_WITH_BLANK_CHOICES, add_blank_choice
|
|
|
23
23
|
from tenancy.models import Tenant, TenantGroup
|
|
24
24
|
from tenancy.forms import TenancyForm, TenancyFilterForm
|
|
25
25
|
|
|
26
|
-
from netbox_dns.models import DNSSECPolicy, DNSSECKeyTemplate
|
|
26
|
+
from netbox_dns.models import DNSSECPolicy, DNSSECKeyTemplate, Zone, ZoneTemplate
|
|
27
27
|
from netbox_dns.choices import DNSSECPolicyDigestChoices, DNSSECPolicyStatusChoices
|
|
28
28
|
from netbox_dns.fields import TimePeriodField
|
|
29
29
|
|
|
@@ -74,7 +74,7 @@ class DNSSECPolicyForm(TenancyForm, NetBoxModelForm):
|
|
|
74
74
|
"nsec3_salt_size",
|
|
75
75
|
name=_("Proof of Non-Existence"),
|
|
76
76
|
),
|
|
77
|
-
FieldSet("
|
|
77
|
+
FieldSet("tenant_group", "tenant", name=_("Tenancy")),
|
|
78
78
|
FieldSet("tags", name=_("Tags")),
|
|
79
79
|
)
|
|
80
80
|
|
|
@@ -119,50 +119,62 @@ class DNSSECPolicyForm(TenancyForm, NetBoxModelForm):
|
|
|
119
119
|
dnskey_ttl = TimePeriodField(
|
|
120
120
|
required=False,
|
|
121
121
|
label=_("DNSKEY TTL"),
|
|
122
|
+
placeholder=DNSSECPolicy.get_fallback_setting("dnskey_ttl"),
|
|
122
123
|
)
|
|
123
124
|
purge_keys = TimePeriodField(
|
|
124
125
|
required=False,
|
|
125
126
|
label=_("Purge Keys"),
|
|
127
|
+
placeholder=DNSSECPolicy.get_fallback_setting("purge_keys"),
|
|
126
128
|
)
|
|
127
129
|
publish_safety = TimePeriodField(
|
|
128
130
|
required=False,
|
|
129
131
|
label=_("Publish Safety"),
|
|
132
|
+
placeholder=DNSSECPolicy.get_fallback_setting("publish_safety"),
|
|
130
133
|
)
|
|
131
134
|
retire_safety = TimePeriodField(
|
|
132
135
|
required=False,
|
|
133
136
|
label=_("Retire Safety"),
|
|
137
|
+
placeholder=DNSSECPolicy.get_fallback_setting("retire_safety"),
|
|
134
138
|
)
|
|
135
139
|
signatures_jitter = TimePeriodField(
|
|
136
140
|
required=False,
|
|
137
141
|
label=_("Signatures Jitter"),
|
|
142
|
+
placeholder=DNSSECPolicy.get_fallback_setting("signatures_jitter"),
|
|
138
143
|
)
|
|
139
144
|
signatures_refresh = TimePeriodField(
|
|
140
145
|
required=False,
|
|
141
146
|
label=_("Signatures Refresh"),
|
|
147
|
+
placeholder=DNSSECPolicy.get_fallback_setting("signatures_refresh"),
|
|
142
148
|
)
|
|
143
149
|
signatures_validity = TimePeriodField(
|
|
144
150
|
required=False,
|
|
145
151
|
label=_("Signatures Validity"),
|
|
152
|
+
placeholder=DNSSECPolicy.get_fallback_setting("signatures_validity"),
|
|
146
153
|
)
|
|
147
154
|
signatures_validity_dnskey = TimePeriodField(
|
|
148
155
|
required=False,
|
|
149
156
|
label=_("Signatures Validity (DNSKEY)"),
|
|
157
|
+
placeholder=DNSSECPolicy.get_fallback_setting("signatures_validity_dnskey"),
|
|
150
158
|
)
|
|
151
159
|
max_zone_ttl = TimePeriodField(
|
|
152
160
|
required=False,
|
|
153
161
|
label=_("Max Zone TTL"),
|
|
162
|
+
placeholder=DNSSECPolicy.get_fallback_setting("max_zone_ttl"),
|
|
154
163
|
)
|
|
155
164
|
zone_propagation_delay = TimePeriodField(
|
|
156
165
|
required=False,
|
|
157
166
|
label=_("Zone Propagation Delay"),
|
|
167
|
+
placeholder=DNSSECPolicy.get_fallback_setting("zone_propagation_delay"),
|
|
158
168
|
)
|
|
159
169
|
parent_ds_ttl = TimePeriodField(
|
|
160
170
|
required=False,
|
|
161
171
|
label=_("Parent DS TTL"),
|
|
172
|
+
placeholder=DNSSECPolicy.get_fallback_setting("parent_ds_ttl"),
|
|
162
173
|
)
|
|
163
174
|
parent_propagation_delay = TimePeriodField(
|
|
164
175
|
required=False,
|
|
165
176
|
label=_("Parent Propagation Delay"),
|
|
177
|
+
placeholder=DNSSECPolicy.get_fallback_setting("parent_propagation_delay"),
|
|
166
178
|
)
|
|
167
179
|
|
|
168
180
|
|
|
@@ -174,9 +186,14 @@ class DNSSECPolicyFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
|
|
|
174
186
|
"name",
|
|
175
187
|
"description",
|
|
176
188
|
"status",
|
|
177
|
-
"
|
|
189
|
+
"key_templates_id",
|
|
178
190
|
name=_("Attributes"),
|
|
179
191
|
),
|
|
192
|
+
FieldSet(
|
|
193
|
+
"zones_id",
|
|
194
|
+
"zone_templates_id",
|
|
195
|
+
name=_("Assignments"),
|
|
196
|
+
),
|
|
180
197
|
FieldSet(
|
|
181
198
|
"dnskey_ttl",
|
|
182
199
|
"purge_keys",
|
|
@@ -219,11 +236,21 @@ class DNSSECPolicyFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
|
|
|
219
236
|
required=False,
|
|
220
237
|
label=_("Status"),
|
|
221
238
|
)
|
|
222
|
-
|
|
239
|
+
key_templates_id = DynamicModelMultipleChoiceField(
|
|
223
240
|
queryset=DNSSECKeyTemplate.objects.all(),
|
|
224
241
|
required=False,
|
|
225
242
|
label=_("Key Templates"),
|
|
226
243
|
)
|
|
244
|
+
zones_id = DynamicModelMultipleChoiceField(
|
|
245
|
+
queryset=Zone.objects.all(),
|
|
246
|
+
required=False,
|
|
247
|
+
label=_("Zones"),
|
|
248
|
+
)
|
|
249
|
+
zone_templates_id = DynamicModelMultipleChoiceField(
|
|
250
|
+
queryset=ZoneTemplate.objects.all(),
|
|
251
|
+
required=False,
|
|
252
|
+
label=_("Zone Templates"),
|
|
253
|
+
)
|
|
227
254
|
dnskey_ttl = TimePeriodField(
|
|
228
255
|
required=False,
|
|
229
256
|
label=_("DNSKEY TTL"),
|
|
Binary file
|
|
Binary file
|
|
@@ -181,16 +181,18 @@ class DNSSECPolicy(ContactsMixin, NetBoxModel):
|
|
|
181
181
|
return self.publish_safety if self.publish_safety is not None else 3600
|
|
182
182
|
|
|
183
183
|
def get_effective_value(self, attribute):
|
|
184
|
-
default_value = get_plugin_config("netbox_dns", f"dnssec_{attribute}", None)
|
|
185
|
-
|
|
186
184
|
if not hasattr(self, attribute):
|
|
187
185
|
raise AttributeError(f"DNSSECPolicy does not have attribute {attribute}")
|
|
188
186
|
|
|
189
187
|
if (value := getattr(self, attribute)) is None:
|
|
190
|
-
return
|
|
188
|
+
return self.get_fallback_setting(attribute)
|
|
191
189
|
|
|
192
190
|
return value
|
|
193
191
|
|
|
192
|
+
@classmethod
|
|
193
|
+
def get_fallback_setting(cls, attribute):
|
|
194
|
+
return get_plugin_config("netbox_dns", f"dnssec_{attribute}")
|
|
195
|
+
|
|
194
196
|
|
|
195
197
|
@register_search
|
|
196
198
|
class DNSSECPolicyIndex(SearchIndex):
|
|
@@ -97,8 +97,8 @@ def validate_key_template_lifetime(key_template, policy, raise_exception=True):
|
|
|
97
97
|
):
|
|
98
98
|
validation_errors.append(
|
|
99
99
|
_(
|
|
100
|
-
"Key Lifetime is less than DNSKEY TTL + Publish Safety + Zone Propagation Delay."
|
|
101
|
-
)
|
|
100
|
+
"Key Lifetime {lifetime} is less than DNSKEY TTL + Publish Safety + Zone Propagation Delay."
|
|
101
|
+
).format(lifetime=key_lifetime)
|
|
102
102
|
)
|
|
103
103
|
|
|
104
104
|
if (
|
|
@@ -109,8 +109,8 @@ def validate_key_template_lifetime(key_template, policy, raise_exception=True):
|
|
|
109
109
|
):
|
|
110
110
|
validation_errors.append(
|
|
111
111
|
_(
|
|
112
|
-
"Key Lifetime is less than Max Zone TTL + Retire Safety + Zone Propagation Delay."
|
|
113
|
-
)
|
|
112
|
+
"Key Lifetime {lifetime} is less than Max Zone TTL + Retire Safety + Zone Propagation Delay."
|
|
113
|
+
).format(lifetime=key_lifetime)
|
|
114
114
|
)
|
|
115
115
|
|
|
116
116
|
if key_template.type == DNSSECKeyTemplateTypeChoices.TYPE_ZSK:
|
|
@@ -123,8 +123,10 @@ def validate_key_template_lifetime(key_template, policy, raise_exception=True):
|
|
|
123
123
|
and key_lifetime < signatures_validity - signatures_refresh
|
|
124
124
|
):
|
|
125
125
|
validation_errors.append(
|
|
126
|
-
_(
|
|
127
|
-
|
|
126
|
+
_(
|
|
127
|
+
"Key Lifetime {lifetime} is less than Signatures Validity - Signatures Refresh."
|
|
128
|
+
)
|
|
129
|
+
).format(lifetime=key_lifetime)
|
|
128
130
|
else:
|
|
129
131
|
parent_ds_ttl = policy.get_effective_value("parent_ds_ttl")
|
|
130
132
|
parent_propagation_delay = policy.get_effective_value(
|
|
@@ -139,8 +141,8 @@ def validate_key_template_lifetime(key_template, policy, raise_exception=True):
|
|
|
139
141
|
):
|
|
140
142
|
validation_errors.append(
|
|
141
143
|
_(
|
|
142
|
-
"Key Lifetime is less than Parent DS TTL + Retire Safety + Parent Propagation Delay."
|
|
143
|
-
)
|
|
144
|
+
"Key Lifetime {lifetime} is less than Parent DS TTL + Retire Safety + Parent Propagation Delay."
|
|
145
|
+
).format(lifetime=key_lifetime)
|
|
144
146
|
)
|
|
145
147
|
|
|
146
148
|
return validation_errors
|
|
@@ -46,7 +46,9 @@ class DNSSECPolicyListView(generic.ObjectListView):
|
|
|
46
46
|
|
|
47
47
|
@register_model_view(DNSSECPolicy)
|
|
48
48
|
class DNSSECPolicyView(generic.ObjectView):
|
|
49
|
-
queryset = DNSSECPolicy.objects.prefetch_related(
|
|
49
|
+
queryset = DNSSECPolicy.objects.prefetch_related(
|
|
50
|
+
"key_templates", "zones", "zone_templates"
|
|
51
|
+
)
|
|
50
52
|
|
|
51
53
|
def get_extra_context(self, request, instance):
|
|
52
54
|
context = {}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: netbox-plugin-dns
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.7b3
|
|
4
4
|
Summary: NetBox DNS is a NetBox plugin for managing DNS data.
|
|
5
5
|
Author-email: Peter Eckel <pete@netbox-dns.org>
|
|
6
6
|
Project-URL: Homepage, https://github.com/peteeckel/netbox-plugin-dns
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/api/serializers_/__init__.py
RENAMED
|
File without changes
|
{netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/api/serializers_/nameserver.py
RENAMED
|
File without changes
|
{netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/api/serializers_/prefix.py
RENAMED
|
File without changes
|
{netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/api/serializers_/record.py
RENAMED
|
File without changes
|
|
File without changes
|
{netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/api/serializers_/registrar.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/api/serializers_/zone_template.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/filtersets/record_template.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/filtersets/zone_template.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/forms/registration_contact.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/locale/en/LC_MESSAGES/django.mo
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/management/commands/update_soa.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/migrations/0003_default_view.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/migrations/0006_templating.py
RENAMED
|
File without changes
|
|
File without changes
|
{netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/migrations/0008_view_prefixes.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/migrations/0015_dnssec.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/migrations/0020_netbox_3_4.py
RENAMED
|
File without changes
|
|
File without changes
|
{netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/migrations/0022_search.py
RENAMED
|
File without changes
|
|
File without changes
|
{netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/migrations/0024_tenancy.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/migrations/0028_rfc2317_fields.py
RENAMED
|
File without changes
|
{netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/migrations/0029_record_fqdn.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/mixins/object_modification.py
RENAMED
|
File without changes
|
|
File without changes
|
{netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/models/dnssec_key_template.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/models/record_template.py
RENAMED
|
File without changes
|
|
File without changes
|
{netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/models/registration_contact.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/tables/dnssec_key_template.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/tables/record_template.py
RENAMED
|
File without changes
|
|
File without changes
|
{netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/tables/registration_contact.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/templates/netbox_dns/record.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/templates/netbox_dns/view.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/templates/netbox_dns/zone.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/templatetags/netbox_dns.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/utilities/ipam_dnssync.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/views/dnssec_key_template.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_dns/views/registration_contact.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_plugin_dns.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_plugin_dns.egg-info/requires.txt
RENAMED
|
File without changes
|
{netbox_plugin_dns-1.2.7b2 → netbox_plugin_dns-1.2.7b3}/netbox_plugin_dns.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|