netbox-plugin-dns 1.2.11__tar.gz → 1.2.12__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.

Files changed (185) hide show
  1. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/PKG-INFO +1 -1
  2. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/__init__.py +1 -1
  3. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/models/record.py +47 -9
  4. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/models/zone.py +23 -0
  5. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/views/record.py +1 -0
  6. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_plugin_dns.egg-info/PKG-INFO +1 -1
  7. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/pyproject.toml +1 -1
  8. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/LICENSE +0 -0
  9. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/README.md +0 -0
  10. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/api/field_serializers.py +0 -0
  11. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/api/nested_serializers.py +0 -0
  12. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/api/serializers.py +0 -0
  13. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/api/serializers_/__init__.py +0 -0
  14. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/api/serializers_/dnssec_key_template.py +0 -0
  15. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/api/serializers_/dnssec_policy.py +0 -0
  16. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/api/serializers_/nameserver.py +0 -0
  17. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/api/serializers_/prefix.py +0 -0
  18. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/api/serializers_/record.py +0 -0
  19. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/api/serializers_/record_template.py +0 -0
  20. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/api/serializers_/registrar.py +0 -0
  21. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/api/serializers_/registration_contact.py +0 -0
  22. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/api/serializers_/view.py +0 -0
  23. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/api/serializers_/zone.py +0 -0
  24. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/api/serializers_/zone_template.py +0 -0
  25. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/api/urls.py +0 -0
  26. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/api/views.py +0 -0
  27. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/apps.py +0 -0
  28. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/choices/__init__.py +0 -0
  29. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/choices/dnssec_key_template.py +0 -0
  30. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/choices/dnssec_policy.py +0 -0
  31. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/choices/record.py +0 -0
  32. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/choices/utilities.py +0 -0
  33. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/choices/zone.py +0 -0
  34. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/fields/__init__.py +0 -0
  35. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/fields/address.py +0 -0
  36. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/fields/choice_array.py +0 -0
  37. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/fields/ipam.py +0 -0
  38. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/fields/network.py +0 -0
  39. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/fields/rfc2317.py +0 -0
  40. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/fields/timeperiod.py +0 -0
  41. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/filtersets/__init__.py +0 -0
  42. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/filtersets/dnssec_key_template.py +0 -0
  43. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/filtersets/dnssec_policy.py +0 -0
  44. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/filtersets/nameserver.py +0 -0
  45. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/filtersets/record.py +0 -0
  46. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/filtersets/record_template.py +0 -0
  47. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/filtersets/registrar.py +0 -0
  48. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/filtersets/registration_contact.py +0 -0
  49. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/filtersets/view.py +0 -0
  50. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/filtersets/zone.py +0 -0
  51. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/filtersets/zone_template.py +0 -0
  52. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/forms/__init__.py +0 -0
  53. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/forms/dnssec_key_template.py +0 -0
  54. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/forms/dnssec_policy.py +0 -0
  55. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/forms/nameserver.py +0 -0
  56. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/forms/record.py +0 -0
  57. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/forms/record_template.py +0 -0
  58. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/forms/registrar.py +0 -0
  59. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/forms/registration_contact.py +0 -0
  60. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/forms/view.py +0 -0
  61. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/forms/zone.py +0 -0
  62. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/forms/zone_template.py +0 -0
  63. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/graphql/__init__.py +0 -0
  64. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/graphql/filters.py +0 -0
  65. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/graphql/schema.py +0 -0
  66. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/graphql/types.py +0 -0
  67. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/locale/de/LC_MESSAGES/django.mo +0 -0
  68. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/locale/en/LC_MESSAGES/django.mo +0 -0
  69. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/locale/fr/LC_MESSAGES/django.mo +0 -0
  70. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/management/commands/cleanup_database.py +0 -0
  71. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/management/commands/cleanup_rrset_ttl.py +0 -0
  72. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/management/commands/rebuild_dnssync.py +0 -0
  73. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/management/commands/setup_dnssync.py +0 -0
  74. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/management/commands/update_soa.py +0 -0
  75. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/migrations/0001_squashed_netbox_dns_0_15.py +0 -0
  76. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/migrations/0001_squashed_netbox_dns_0_22.py +0 -0
  77. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/migrations/0002_contact_description_registrar_description.py +0 -0
  78. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/migrations/0003_default_view.py +0 -0
  79. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/migrations/0004_create_and_assign_default_view.py +0 -0
  80. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/migrations/0005_alter_zone_view_not_null.py +0 -0
  81. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/migrations/0006_templating.py +0 -0
  82. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/migrations/0007_alter_ordering_options.py +0 -0
  83. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/migrations/0008_view_prefixes.py +0 -0
  84. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/migrations/0009_rename_contact_registrationcontact.py +0 -0
  85. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/migrations/0010_view_ip_address_filter.py +0 -0
  86. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/migrations/0011_rename_related_fields.py +0 -0
  87. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/migrations/0012_natural_ordering.py +0 -0
  88. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/migrations/0013_zonetemplate_soa_mname_zonetemplate_soa_rname.py +0 -0
  89. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/migrations/0014_alter_unique_constraints_lowercase.py +0 -0
  90. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/migrations/0015_dnssec.py +0 -0
  91. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/migrations/0016_dnssec_policy_status.py +0 -0
  92. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/migrations/0017_dnssec_policy_zone_zone_template.py +0 -0
  93. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/migrations/0018_zone_domain_status_zone_expiration_date.py +0 -0
  94. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/migrations/0019_dnssecpolicy_parental_agents.py +0 -0
  95. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/migrations/0020_netbox_3_4.py +0 -0
  96. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/migrations/0020_remove_dnssecpolicy_parental_agents_and_more.py +0 -0
  97. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/migrations/0021_record_ip_address.py +0 -0
  98. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/migrations/0022_search.py +0 -0
  99. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/migrations/0023_alter_record_value.py +0 -0
  100. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/migrations/0024_tenancy.py +0 -0
  101. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/migrations/0025_ipam_coupling_cf.py +0 -0
  102. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/migrations/0026_domain_registration.py +0 -0
  103. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/migrations/0027_alter_registrar_iana_id.py +0 -0
  104. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/migrations/0028_rfc2317_fields.py +0 -0
  105. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/migrations/0029_record_fqdn.py +0 -0
  106. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/migrations/__init__.py +0 -0
  107. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/mixins/__init__.py +0 -0
  108. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/mixins/object_modification.py +0 -0
  109. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/models/__init__.py +0 -0
  110. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/models/dnssec_key_template.py +0 -0
  111. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/models/dnssec_policy.py +0 -0
  112. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/models/nameserver.py +0 -0
  113. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/models/record_template.py +0 -0
  114. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/models/registrar.py +0 -0
  115. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/models/registration_contact.py +0 -0
  116. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/models/view.py +0 -0
  117. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/models/zone_template.py +0 -0
  118. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/navigation.py +0 -0
  119. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/signals/__init__.py +0 -0
  120. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/signals/dnssec.py +0 -0
  121. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/signals/ipam_dnssync.py +0 -0
  122. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/tables/__init__.py +0 -0
  123. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/tables/dnssec_key_template.py +0 -0
  124. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/tables/dnssec_policy.py +0 -0
  125. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/tables/ipam_dnssync.py +0 -0
  126. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/tables/nameserver.py +0 -0
  127. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/tables/record.py +0 -0
  128. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/tables/record_template.py +0 -0
  129. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/tables/registrar.py +0 -0
  130. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/tables/registration_contact.py +0 -0
  131. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/tables/view.py +0 -0
  132. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/tables/zone.py +0 -0
  133. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/tables/zone_template.py +0 -0
  134. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/template_content.py +0 -0
  135. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/templates/netbox_dns/dnsseckeytemplate.html +0 -0
  136. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/templates/netbox_dns/dnssecpolicy.html +0 -0
  137. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/templates/netbox_dns/nameserver.html +0 -0
  138. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/templates/netbox_dns/record/managed.html +0 -0
  139. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/templates/netbox_dns/record/related.html +0 -0
  140. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/templates/netbox_dns/record.html +0 -0
  141. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/templates/netbox_dns/recordtemplate.html +0 -0
  142. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/templates/netbox_dns/registrar.html +0 -0
  143. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/templates/netbox_dns/registrationcontact.html +0 -0
  144. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/templates/netbox_dns/view/button.html +0 -0
  145. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/templates/netbox_dns/view/prefix.html +0 -0
  146. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/templates/netbox_dns/view/related.html +0 -0
  147. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/templates/netbox_dns/view.html +0 -0
  148. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/templates/netbox_dns/zone/base.html +0 -0
  149. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/templates/netbox_dns/zone/child.html +0 -0
  150. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/templates/netbox_dns/zone/child_zone.html +0 -0
  151. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/templates/netbox_dns/zone/delegation_record.html +0 -0
  152. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/templates/netbox_dns/zone/managed_record.html +0 -0
  153. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/templates/netbox_dns/zone/record.html +0 -0
  154. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/templates/netbox_dns/zone/registration.html +0 -0
  155. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/templates/netbox_dns/zone/rfc2317_child_zone.html +0 -0
  156. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/templates/netbox_dns/zone.html +0 -0
  157. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/templates/netbox_dns/zonetemplate/child.html +0 -0
  158. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/templates/netbox_dns/zonetemplate.html +0 -0
  159. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/templatetags/__init__.py +0 -0
  160. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/templatetags/netbox_dns.py +0 -0
  161. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/urls.py +0 -0
  162. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/utilities/__init__.py +0 -0
  163. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/utilities/conversions.py +0 -0
  164. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/utilities/dns.py +0 -0
  165. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/utilities/ipam_dnssync.py +0 -0
  166. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/validators/__init__.py +0 -0
  167. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/validators/dns_name.py +0 -0
  168. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/validators/dns_value.py +0 -0
  169. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/validators/dnssec.py +0 -0
  170. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/validators/rfc2317.py +0 -0
  171. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/views/__init__.py +0 -0
  172. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/views/dnssec_key_template.py +0 -0
  173. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/views/dnssec_policy.py +0 -0
  174. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/views/nameserver.py +0 -0
  175. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/views/record_template.py +0 -0
  176. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/views/registrar.py +0 -0
  177. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/views/registration_contact.py +0 -0
  178. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/views/view.py +0 -0
  179. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/views/zone.py +0 -0
  180. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_dns/views/zone_template.py +0 -0
  181. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_plugin_dns.egg-info/SOURCES.txt +0 -0
  182. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_plugin_dns.egg-info/dependency_links.txt +0 -0
  183. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_plugin_dns.egg-info/requires.txt +0 -0
  184. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/netbox_plugin_dns.egg-info/top_level.txt +0 -0
  185. {netbox_plugin_dns-1.2.11 → netbox_plugin_dns-1.2.12}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: netbox-plugin-dns
3
- Version: 1.2.11
3
+ Version: 1.2.12
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
@@ -4,7 +4,7 @@ from django.core.exceptions import ImproperlyConfigured
4
4
  from netbox.plugins import PluginConfig
5
5
  from netbox.plugins.utils import get_plugin_config
6
6
 
7
- __version__ = "1.2.11"
7
+ __version__ = "1.2.12"
8
8
 
9
9
 
10
10
  def _check_list(setting):
@@ -353,6 +353,21 @@ class Record(ObjectModificationMixin, ContactsMixin, NetBoxModel):
353
353
  def is_delegation_record(self):
354
354
  return self in self.zone.delegation_records
355
355
 
356
+ def get_ptr_name(self, ptr_zone=None):
357
+ if ptr_zone is None:
358
+ ptr_zone = self.ptr_zone
359
+
360
+ if ptr_zone.is_rfc2317_zone:
361
+ ptr_name = self.rfc2317_ptr_name
362
+ else:
363
+ ptr_name = (
364
+ dns_name.from_text(ipaddress.ip_address(self.value).reverse_pointer)
365
+ .relativize(dns_name.from_text(ptr_zone.name))
366
+ .to_text()
367
+ )
368
+
369
+ return ptr_name
370
+
356
371
  def update_ptr_record(self, update_rfc2317_cname=True, save_zone_serial=True):
357
372
  ptr_zone = self.ptr_zone
358
373
 
@@ -368,15 +383,7 @@ class Record(ObjectModificationMixin, ContactsMixin, NetBoxModel):
368
383
  self.ptr_record = None
369
384
  return
370
385
 
371
- if ptr_zone.is_rfc2317_zone:
372
- ptr_name = self.rfc2317_ptr_name
373
- else:
374
- ptr_name = (
375
- dns_name.from_text(ipaddress.ip_address(self.value).reverse_pointer)
376
- .relativize(dns_name.from_text(ptr_zone.name))
377
- .to_text()
378
- )
379
-
386
+ ptr_name = self.get_ptr_name(ptr_zone)
380
387
  ptr_value = self.fqdn
381
388
  ptr_record = self.ptr_record
382
389
 
@@ -647,6 +654,36 @@ class Record(ObjectModificationMixin, ContactsMixin, NetBoxModel):
647
654
  }
648
655
  )
649
656
 
657
+ def check_unique_ptr_record(self):
658
+ if (
659
+ self.disable_ptr
660
+ or not self.is_active
661
+ or not self.is_address_record
662
+ or not (ptr_zone := self.ptr_zone)
663
+ or not get_plugin_config("netbox_dns", "enforce_unique_records", False)
664
+ ):
665
+ return
666
+
667
+ ptr_record = Record.objects.filter(
668
+ zone__view=self.zone.view,
669
+ zone=self.ptr_zone,
670
+ name=self.get_ptr_name(ptr_zone),
671
+ value=self.fqdn,
672
+ status__in=RECORD_ACTIVE_STATUS_LIST,
673
+ )
674
+
675
+ if not self._state.adding and self.ptr_record is not None:
676
+ ptr_record = ptr_record.exclude(pk=self.ptr_record.pk)
677
+
678
+ if ptr_record.exists():
679
+ raise ValidationError(
680
+ {
681
+ "value": _(
682
+ "There is already an active PTR record for {value} with value {fqdn}."
683
+ ).format(fqdn=self.fqdn, value=self.value)
684
+ }
685
+ )
686
+
650
687
  @property
651
688
  def absolute_value(self):
652
689
  if self.type in RecordTypeChoices.CUSTOM_TYPES:
@@ -790,6 +827,7 @@ class Record(ObjectModificationMixin, ContactsMixin, NetBoxModel):
790
827
  self.validate_name(new_zone=new_zone)
791
828
  self.validate_value()
792
829
  self.check_unique_record(new_zone=new_zone)
830
+ self.check_unique_ptr_record()
793
831
  if self._state.adding:
794
832
  self.check_unique_rrset_ttl()
795
833
 
@@ -664,6 +664,27 @@ class Zone(ObjectModificationMixin, ContactsMixin, NetBoxModel):
664
664
  }
665
665
  )
666
666
 
667
+ def check_ptr_records(self):
668
+ if self._state.adding:
669
+ return
670
+
671
+ validation_errors = []
672
+
673
+ address_records = self.records.filter(
674
+ type__in=(RecordTypeChoices.A, RecordTypeChoices.AAAA),
675
+ disable_ptr=False,
676
+ status__in=RECORD_ACTIVE_STATUS_LIST,
677
+ )
678
+
679
+ for record in address_records:
680
+ try:
681
+ record.check_unique_ptr_record()
682
+ except ValidationError as exc:
683
+ validation_errors.append(exc)
684
+
685
+ if validation_errors:
686
+ raise ValidationError(validation_errors)
687
+
667
688
  def get_auto_serial(self):
668
689
  records = Record.objects.filter(zone_id=self.pk).exclude(
669
690
  type=RecordTypeChoices.SOA
@@ -888,6 +909,8 @@ class Zone(ObjectModificationMixin, ContactsMixin, NetBoxModel):
888
909
  if self.is_reverse_zone:
889
910
  self.arpa_network = self.network_from_name
890
911
 
912
+ self.check_ptr_records()
913
+
891
914
  if self.is_rfc2317_zone:
892
915
  if self.arpa_network is not None:
893
916
  raise ValidationError(
@@ -156,6 +156,7 @@ class RecordView(generic.ObjectView):
156
156
 
157
157
  if Zone.objects.filter(
158
158
  active=True,
159
+ view=instance.zone.view,
159
160
  name__iregex=regex_from_list(
160
161
  get_parent_zone_names(
161
162
  instance.fqdn,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: netbox-plugin-dns
3
- Version: 1.2.11
3
+ Version: 1.2.12
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
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "netbox-plugin-dns"
3
- version = "1.2.11"
3
+ version = "1.2.12"
4
4
  description = "NetBox DNS is a NetBox plugin for managing DNS data."
5
5
  authors = [
6
6
  {name="Peter Eckel", email="pete@netbox-dns.org"},