netbox-plugin-dns 1.1.3__py3-none-any.whl → 1.1.5__py3-none-any.whl

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 (39) hide show
  1. netbox_dns/__init__.py +26 -5
  2. netbox_dns/api/views.py +1 -1
  3. netbox_dns/choices/zone.py +2 -0
  4. netbox_dns/fields/address.py +3 -21
  5. netbox_dns/filtersets/record.py +3 -0
  6. netbox_dns/filtersets/zone.py +1 -2
  7. netbox_dns/forms/record.py +29 -13
  8. netbox_dns/forms/view.py +2 -3
  9. netbox_dns/forms/zone.py +15 -10
  10. netbox_dns/forms/zone_template.py +5 -5
  11. netbox_dns/locale/de/LC_MESSAGES/django.mo +0 -0
  12. netbox_dns/models/nameserver.py +4 -8
  13. netbox_dns/models/record.py +26 -41
  14. netbox_dns/models/record_template.py +5 -5
  15. netbox_dns/models/view.py +2 -3
  16. netbox_dns/models/zone.py +96 -39
  17. netbox_dns/signals/ipam_dnssync.py +1 -1
  18. netbox_dns/tables/record.py +14 -2
  19. netbox_dns/tables/zone.py +1 -2
  20. netbox_dns/template_content.py +16 -0
  21. netbox_dns/templates/netbox_dns/record.html +12 -0
  22. netbox_dns/templates/netbox_dns/view.html +1 -1
  23. netbox_dns/templates/netbox_dns/zone/delegation_record.html +18 -0
  24. netbox_dns/templates/netbox_dns/zone.html +1 -1
  25. netbox_dns/utilities/__init__.py +1 -0
  26. netbox_dns/utilities/dns.py +12 -0
  27. netbox_dns/utilities/ipam_dnssync.py +10 -13
  28. netbox_dns/validators/dns_value.py +47 -6
  29. netbox_dns/views/nameserver.py +3 -3
  30. netbox_dns/views/record.py +44 -11
  31. netbox_dns/views/registrar.py +1 -1
  32. netbox_dns/views/registration_contact.py +1 -1
  33. netbox_dns/views/view.py +2 -2
  34. netbox_dns/views/zone.py +49 -20
  35. {netbox_plugin_dns-1.1.3.dist-info → netbox_plugin_dns-1.1.5.dist-info}/METADATA +3 -2
  36. {netbox_plugin_dns-1.1.3.dist-info → netbox_plugin_dns-1.1.5.dist-info}/RECORD +39 -37
  37. {netbox_plugin_dns-1.1.3.dist-info → netbox_plugin_dns-1.1.5.dist-info}/WHEEL +1 -1
  38. {netbox_plugin_dns-1.1.3.dist-info → netbox_plugin_dns-1.1.5.dist-info}/LICENSE +0 -0
  39. {netbox_plugin_dns-1.1.3.dist-info → netbox_plugin_dns-1.1.5.dist-info}/top_level.txt +0 -0
@@ -1,5 +1,7 @@
1
1
  from dns import name as dns_name
2
2
 
3
+ from django.utils.translation import gettext_lazy as _
4
+
3
5
  from netbox.views import generic
4
6
  from utilities.views import register_model_view
5
7
  from tenancy.views import ObjectContactsView
@@ -14,7 +16,7 @@ from netbox_dns.forms import (
14
16
  from netbox_dns.models import Record, Zone
15
17
  from netbox_dns.choices import RecordTypeChoices
16
18
  from netbox_dns.tables import RecordTable, ManagedRecordTable, RelatedRecordTable
17
- from netbox_dns.utilities import value_to_unicode
19
+ from netbox_dns.utilities import value_to_unicode, get_parent_zone_names
18
20
 
19
21
 
20
22
  __all__ = (
@@ -29,6 +31,10 @@ __all__ = (
29
31
  )
30
32
 
31
33
 
34
+ class CNAMEWarning(Exception):
35
+ pass
36
+
37
+
32
38
  class RecordListView(generic.ObjectListView):
33
39
  queryset = Record.objects.filter(managed=False).prefetch_related(
34
40
  "zone", "ptr_record"
@@ -50,7 +56,7 @@ class ManagedRecordListView(generic.ObjectListView):
50
56
 
51
57
 
52
58
  class RecordView(generic.ObjectView):
53
- queryset = Record.objects.all().prefetch_related("zone", "ptr_record")
59
+ queryset = Record.objects.prefetch_related("zone", "ptr_record")
54
60
 
55
61
  def get_value_records(self, instance):
56
62
  value_fqdn = dns_name.from_text(instance.value_fqdn)
@@ -64,6 +70,18 @@ class RecordView(generic.ObjectView):
64
70
  data=cname_targets,
65
71
  )
66
72
 
73
+ if instance.zone.view.zone_set.filter(
74
+ name__in=get_parent_zone_names(instance.value_fqdn, min_labels=1),
75
+ active=True,
76
+ ).exists():
77
+ raise (
78
+ CNAMEWarning(
79
+ _(
80
+ "There is no matching target record for CNAME value {value}"
81
+ ).format(value=instance.value_fqdn)
82
+ )
83
+ )
84
+
67
85
  return None
68
86
 
69
87
  def get_cname_records(self, instance):
@@ -75,14 +93,8 @@ class RecordView(generic.ObjectView):
75
93
  )
76
94
  )
77
95
 
78
- fqdn = dns_name.from_text(instance.fqdn)
79
- parent_zone_names = [
80
- fqdn.split(length)[1].to_text().rstrip(".")
81
- for length in range(1, len(fqdn) + 1)
82
- ]
83
-
84
- parent_zones = Zone.objects.filter(
85
- view=instance.zone.view, name__in=parent_zone_names
96
+ parent_zones = instance.zone.view.zone_set.filter(
97
+ name__in=get_parent_zone_names(instance.fqdn, include_self=True),
86
98
  )
87
99
 
88
100
  for parent_zone in parent_zones:
@@ -118,10 +130,31 @@ class RecordView(generic.ObjectView):
118
130
  context["unicode_value"] = unicode_value
119
131
 
120
132
  if instance.type == RecordTypeChoices.CNAME:
121
- context["cname_target_table"] = self.get_value_records(instance)
133
+ try:
134
+ context["cname_target_table"] = self.get_value_records(instance)
135
+ except CNAMEWarning as exc:
136
+ context["cname_warning"] = str(exc)
122
137
  else:
123
138
  context["cname_table"] = self.get_cname_records(instance)
124
139
 
140
+ if not instance.managed:
141
+ name = dns_name.from_text(instance.name, origin=None)
142
+
143
+ if not instance.is_delegation_record:
144
+ fqdn = dns_name.from_text(instance.fqdn)
145
+
146
+ if Zone.objects.filter(
147
+ active=True,
148
+ name__in=get_parent_zone_names(
149
+ instance.fqdn,
150
+ min_labels=len(fqdn) - len(name),
151
+ include_self=True,
152
+ ),
153
+ ).exists():
154
+ context["mask_warning"] = _(
155
+ "Record is masked by a child zone and may not be visible in DNS"
156
+ )
157
+
125
158
  return context
126
159
 
127
160
 
@@ -69,7 +69,7 @@ class RegistrarBulkDeleteView(generic.BulkDeleteView):
69
69
 
70
70
  @register_model_view(Registrar, "zones")
71
71
  class RegistrarZoneListView(generic.ObjectChildrenView):
72
- queryset = Registrar.objects.all().prefetch_related("zone_set")
72
+ queryset = Registrar.objects.prefetch_related("zone_set")
73
73
  child_model = Zone
74
74
  table = ZoneTable
75
75
  filterset = ZoneFilterSet
@@ -70,7 +70,7 @@ class RegistrationContactBulkDeleteView(generic.BulkDeleteView):
70
70
 
71
71
  @register_model_view(RegistrationContact, "zones")
72
72
  class RegistrationContactZoneListView(generic.ObjectChildrenView):
73
- queryset = RegistrationContact.objects.all().prefetch_related(
73
+ queryset = RegistrationContact.objects.prefetch_related(
74
74
  "zone_set", "admin_c_zones", "tech_c_zones", "billing_c_zones"
75
75
  )
76
76
  child_model = Zone
netbox_dns/views/view.py CHANGED
@@ -31,7 +31,7 @@ __all__ = (
31
31
 
32
32
 
33
33
  class ViewView(generic.ObjectView):
34
- queryset = View.objects.all().prefetch_related("zone_set")
34
+ queryset = View.objects.prefetch_related("zone_set")
35
35
 
36
36
 
37
37
  class ViewListView(generic.ObjectListView):
@@ -89,7 +89,7 @@ class ViewPrefixEditView(generic.ObjectEditView):
89
89
 
90
90
  @register_model_view(View, "zones")
91
91
  class ViewZoneListView(generic.ObjectChildrenView):
92
- queryset = View.objects.all().prefetch_related("zone_set")
92
+ queryset = View.objects.prefetch_related("zone_set")
93
93
  child_model = Zone
94
94
  table = ZoneTable
95
95
  filterset = ZoneFilterSet
netbox_dns/views/zone.py CHANGED
@@ -18,6 +18,7 @@ from netbox_dns.tables import (
18
18
  ZoneTable,
19
19
  RecordTable,
20
20
  ManagedRecordTable,
21
+ DelegationRecordTable,
21
22
  )
22
23
 
23
24
 
@@ -33,14 +34,14 @@ __all__ = (
33
34
 
34
35
 
35
36
  class ZoneListView(generic.ObjectListView):
36
- queryset = Zone.objects.all().prefetch_related("view", "tags")
37
+ queryset = Zone.objects.prefetch_related("view", "tags")
37
38
  filterset = ZoneFilterSet
38
39
  filterset_form = ZoneFilterForm
39
40
  table = ZoneTable
40
41
 
41
42
 
42
43
  class ZoneView(generic.ObjectView):
43
- queryset = Zone.objects.all().prefetch_related(
44
+ queryset = Zone.objects.prefetch_related(
44
45
  "view",
45
46
  "tags",
46
47
  "nameservers",
@@ -65,9 +66,7 @@ class ZoneView(generic.ObjectView):
65
66
 
66
67
 
67
68
  class ZoneEditView(generic.ObjectEditView):
68
- queryset = Zone.objects.all().prefetch_related(
69
- "view", "tags", "nameservers", "soa_mname"
70
- )
69
+ queryset = Zone.objects.prefetch_related("view", "tags", "nameservers", "soa_mname")
71
70
  form = ZoneForm
72
71
  default_return_url = "plugins:netbox_dns:zone_list"
73
72
 
@@ -78,18 +77,14 @@ class ZoneDeleteView(generic.ObjectDeleteView):
78
77
 
79
78
 
80
79
  class ZoneBulkImportView(generic.BulkImportView):
81
- queryset = Zone.objects.all().prefetch_related(
82
- "view", "tags", "nameservers", "soa_mname"
83
- )
80
+ queryset = Zone.objects.prefetch_related("view", "tags", "nameservers", "soa_mname")
84
81
  model_form = ZoneImportForm
85
82
  table = ZoneTable
86
83
  default_return_url = "plugins:netbox_dns:zone_list"
87
84
 
88
85
 
89
86
  class ZoneBulkEditView(generic.BulkEditView):
90
- queryset = Zone.objects.all().prefetch_related(
91
- "view", "tags", "nameservers", "soa_mname"
92
- )
87
+ queryset = Zone.objects.prefetch_related("view", "tags", "nameservers", "soa_mname")
93
88
  filterset = ZoneFilterSet
94
89
  table = ZoneTable
95
90
  form = ZoneBulkEditForm
@@ -131,14 +126,12 @@ class ZoneRecordListView(generic.ObjectChildrenView):
131
126
  tab = ViewTab(
132
127
  label=_("Records"),
133
128
  permission="netbox_dns.view_record",
134
- badge=lambda obj: obj.record_count(managed=False),
129
+ badge=lambda obj: obj.record_set.filter(managed=False).count(),
135
130
  hide_if_empty=True,
136
131
  )
137
132
 
138
133
  def get_children(self, request, parent):
139
- return Record.objects.restrict(request.user, "view").filter(
140
- zone=parent, managed=False
141
- )
134
+ return parent.record_set.restrict(request.user, "view").filter(managed=False)
142
135
 
143
136
 
144
137
  @register_model_view(Zone, "managed_records")
@@ -153,14 +146,50 @@ class ZoneManagedRecordListView(generic.ObjectChildrenView):
153
146
  tab = ViewTab(
154
147
  label=_("Managed Records"),
155
148
  permission="netbox_dns.view_record",
156
- badge=lambda obj: obj.record_count(managed=True),
149
+ badge=lambda obj: obj.record_set.filter(managed=True).count(),
150
+ hide_if_empty=True,
151
+ )
152
+
153
+ def get_children(self, request, parent):
154
+ return parent.record_set.restrict(request.user, "view").filter(managed=True)
155
+
156
+
157
+ @register_model_view(Zone, "delegation_records")
158
+ class ZoneDelegationRecordListView(generic.ObjectChildrenView):
159
+ queryset = Zone.objects.all()
160
+ child_model = Record
161
+ table = DelegationRecordTable
162
+ filterset = RecordFilterSet
163
+ template_name = "netbox_dns/zone/delegation_record.html"
164
+
165
+ tab = ViewTab(
166
+ label=_("Delegation Records"),
167
+ permission="netbox_dns.view_record",
168
+ badge=lambda obj: obj.delegation_records.count(),
169
+ hide_if_empty=True,
170
+ )
171
+
172
+ def get_children(self, request, parent):
173
+ return parent.delegation_records.restrict(request.user, "view")
174
+
175
+
176
+ @register_model_view(Zone, "parent_delegation_records")
177
+ class ZoneParentDelegationRecordListView(generic.ObjectChildrenView):
178
+ queryset = Zone.objects.all()
179
+ child_model = Record
180
+ table = DelegationRecordTable
181
+ filterset = RecordFilterSet
182
+ template_name = "netbox_dns/zone/delegation_record.html"
183
+
184
+ tab = ViewTab(
185
+ label=_("Parent Delegation Records"),
186
+ permission="netbox_dns.view_record",
187
+ badge=lambda obj: obj.ancestor_delegation_records.count(),
157
188
  hide_if_empty=True,
158
189
  )
159
190
 
160
191
  def get_children(self, request, parent):
161
- return Record.objects.restrict(request.user, "view").filter(
162
- zone=parent, managed=True
163
- )
192
+ return parent.ancestor_delegation_records.restrict(request.user, "view")
164
193
 
165
194
 
166
195
  @register_model_view(Zone, "rfc2317_child_zones")
@@ -174,7 +203,7 @@ class ZoneRFC2317ChildZoneListView(generic.ObjectChildrenView):
174
203
  tab = ViewTab(
175
204
  label=_("RFC2317 Child Zones"),
176
205
  permission="netbox_dns.view_zone",
177
- badge=lambda obj: obj.rfc2317_child_zone_count(),
206
+ badge=lambda obj: obj.rfc2317_child_zones.count(),
178
207
  hide_if_empty=True,
179
208
  )
180
209
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: netbox-plugin-dns
3
- Version: 1.1.3
3
+ Version: 1.1.5
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
@@ -25,6 +25,7 @@ The NetBox DNS plugin enables NetBox to manage operational DNS data such as name
25
25
  <a href="https://github.com/peteeckel/netbox-plugin-dns/pulls"><img src="https://img.shields.io/github/issues-pr/peteeckel/netbox-plugin-dns" alt="Pull Requests Badge"/></a>
26
26
  <a href="https://github.com/peteeckel/netbox-plugin-dns/graphs/contributors"><img alt="GitHub contributors" src="https://img.shields.io/github/contributors/peteeckel/netbox-plugin-dns?color=2b9348"></a>
27
27
  <a href="https://github.com/peteeckel/netbox-plugin-dns/blob/master/LICENSE"><img src="https://img.shields.io/github/license/peteeckel/netbox-plugin-dns?color=2b9348" alt="License Badge"/></a>
28
+ <a href="https://github.com/psf/black"><img src="https://img.shields.io/badge/code%20style-black-000000.svg" alt="Code Style Black"/></a>
28
29
  <a href="https://pepy.tech/project/netbox-plugin-dns"><img alt="Downloads" src="https://static.pepy.tech/badge/netbox-plugin-dns"></a>
29
30
  <a href="https://pepy.tech/project/netbox-plugin-dns"><img alt="Downloads/Week" src="https://static.pepy.tech/badge/netbox-plugin-dns/month"></a>
30
31
  <a href="https://pepy.tech/project/netbox-plugin-dns"><img alt="Downloads/Month" src="https://static.pepy.tech/badge/netbox-plugin-dns/week"></a>
@@ -32,7 +33,7 @@ The NetBox DNS plugin enables NetBox to manage operational DNS data such as name
32
33
 
33
34
  > [!WARNING]
34
35
  > **As a result of some issues with NetBox Branching still under investigation, NetBox DNS is currently not compatible with the new NetBox Branching plugin.**
35
- > This affects multiple aspects of the branching functionality, and currently (netboxlabs-branching-plugin version 0.4.0) there is no workaround. Do not try to use NetBox Branching together with NetBox DNS until these issues are resolved.
36
+ > This affects multiple aspects of the branching functionality, and currently there is no workaround. Do not try to use NetBox Branching together with NetBox DNS until these issues are resolved.
36
37
  > This warning will be updated as soon as the situation is resolved.
37
38
 
38
39
  ## Objectives
@@ -1,11 +1,11 @@
1
- netbox_dns/__init__.py,sha256=bZFTACSdnnWzW9uVu54HVqyzxT63PmLXws9BUjSSaKc,2045
1
+ netbox_dns/__init__.py,sha256=O8iauzFbC6R9iVVtJ8Y5Qb0Emq5BJvgp8Z0nnZliDIE,2767
2
2
  netbox_dns/apps.py,sha256=JCW5eS-AQBUubDJve1DjP-IRFKTFGQh1NLGWzJpC5MI,151
3
3
  netbox_dns/navigation.py,sha256=T0-D3KKZLrKT9IuSp5Kh_j7yy-JuWT2b15nwEEJxoTg,6186
4
- netbox_dns/template_content.py,sha256=YzE-ZJlERhFybrUKJrmNwHk8_8RPNexkV66x62Sbzic,3718
4
+ netbox_dns/template_content.py,sha256=6iwVdApTF5kgz7snWp3nL7i8WcheTrJCeOU-G9XCuzI,4227
5
5
  netbox_dns/api/nested_serializers.py,sha256=RfwT96Kd-E25oTPxnYVMZX04ZGCSww15c1TmPG8zZk4,3251
6
6
  netbox_dns/api/serializers.py,sha256=bLbAjyIsj75S9wnQAGL-wYOkTlFS1Y7OsBObAPzNJxc,383
7
7
  netbox_dns/api/urls.py,sha256=WXYJJvqJ25BvwyrmTY-0F6cJMrgEEdEcisGeMVWEeiY,826
8
- netbox_dns/api/views.py,sha256=JSUwQBwGqcExN3xRZ0UlRVedvdXChecAKw_peCM4tUY,3988
8
+ netbox_dns/api/views.py,sha256=DE5ih7mtVjLkWC_wt7r-N8SWO6KShGlxUBhIt1s04RI,3982
9
9
  netbox_dns/api/serializers_/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
10
  netbox_dns/api/serializers_/nameserver.py,sha256=DMkUaLNDt3UtpAD6JDHfo1NMngHWRqHh2-xQeOPlfFM,1171
11
11
  netbox_dns/api/serializers_/prefix.py,sha256=kZ1DjDly6VFZamXSxGa57YC6MfZZcI5S7jmGBkVB2_I,551
@@ -18,35 +18,35 @@ netbox_dns/api/serializers_/zone.py,sha256=ELAis8nj9PZlge6zqTQ23P0vC4IJBDa3hh5kZ
18
18
  netbox_dns/api/serializers_/zone_template.py,sha256=w0TsrqS_DgIIAUozCC-gc9lsQ67lpVkvbyphyuRzq6Q,3847
19
19
  netbox_dns/choices/__init__.py,sha256=jOVs2VGV5SVADRlqVnrFeAy26i8BIeEAbGpiX7K8bL8,42
20
20
  netbox_dns/choices/record.py,sha256=wFS44WRyUwiN2ocx-A8ZzVXKpaD9Thb0MrOiMHiqNzU,1175
21
- netbox_dns/choices/zone.py,sha256=UyrTTjUYERInkGyoDmZMg5srtOQrvQ-acKYO6KDV7T0,540
21
+ netbox_dns/choices/zone.py,sha256=Vblm5RUtNtPNkULh8U1NxBMme1iHPllD6B6LkQkWZW4,621
22
22
  netbox_dns/fields/__init__.py,sha256=U1nbFIwwtvr10pp3Sk91jEZeWkVQBSJtr0BVWYgOfiA,89
23
- netbox_dns/fields/address.py,sha256=X973-fu1QBMIFysn9nugf6s5xiGmTZJHnEsBv1Z0W_c,1612
23
+ netbox_dns/fields/address.py,sha256=qNLHmpwwJ3TevljG1QsUr_f2h6NrPsK6wr-R-Ti8eZI,1262
24
24
  netbox_dns/fields/ipam.py,sha256=wla-kBm77BpD0LNQhgRZS1RYbVois7WDqPpyQkUT02k,481
25
25
  netbox_dns/fields/network.py,sha256=a5nTzjscRufxgMjVsf5juszSYuTujU50pQ9P7q4qMVs,3740
26
26
  netbox_dns/fields/rfc2317.py,sha256=y72PZKlXZ8_6P4eeWZ8IF3gqOMjPxW48gk3AB81XboE,2642
27
27
  netbox_dns/filtersets/__init__.py,sha256=f8zJhpC3-TyK1OMgTaXmm1E6C2wUc1mNtoI6LOKkljQ,210
28
28
  netbox_dns/filtersets/nameserver.py,sha256=7hk9Wh4v4-IHP44rQC4nhdvpYbDYNYYf-XZp6Yo72xE,1203
29
- netbox_dns/filtersets/record.py,sha256=pSBoeiiKuEooltwSUl8QIEXuFRu2at-3NEI3r6dskKI,3827
29
+ netbox_dns/filtersets/record.py,sha256=Ao2666F6z435TXD_hV2dgItI0sWXlS-jyQ1TQZEL8Yc,3913
30
30
  netbox_dns/filtersets/record_template.py,sha256=wir5s2QWfDnw0M1wWnzJs9im5ok4l5cTbWPMBSM8aEg,1604
31
31
  netbox_dns/filtersets/registrar.py,sha256=Wh_l-IXRHnJhW7Pyokp3czQZISDKzXnWeSQKp512Drc,977
32
32
  netbox_dns/filtersets/registration_contact.py,sha256=903sOcHPRCI0dVzqn1i0pn5VPr_4YpHPh5QE2-akR-Y,1139
33
33
  netbox_dns/filtersets/view.py,sha256=IlQz3k2J_N6eSbT9op0KOu3sKLrn-HTsJCcrIqoYgyY,1047
34
- netbox_dns/filtersets/zone.py,sha256=IFJ8OD9qo6OZoWeOJSUWj4-j5g6GLs-1xupiDPS3DeI,6878
34
+ netbox_dns/filtersets/zone.py,sha256=KjF8oUOIaDkW98pw-OuGNofA4muA922wcDOx3pm6kTc,6818
35
35
  netbox_dns/filtersets/zone_template.py,sha256=Sm40P33IhN0sOqtjz4JzoBbEK-dTLpfQqYGcM_Xb7KM,3870
36
36
  netbox_dns/forms/__init__.py,sha256=axENVF9vX9BtDKCNxrapRjye1NnygUg9BS0BBj6a0io,209
37
37
  netbox_dns/forms/nameserver.py,sha256=GJe3ece4yIGwMtLZ6wQihBrJu1dk_ZSiwX-vSU0fRa0,3397
38
- netbox_dns/forms/record.py,sha256=WbRftHWCeV_AGxTUxU9dTZJLXaDwGWcLd1m03BoNMMo,7692
38
+ netbox_dns/forms/record.py,sha256=k518oThxWGlr7HVVBowCkd19d61H68NmNmAiUJKkR6c,8070
39
39
  netbox_dns/forms/record_template.py,sha256=iGlBOOsjkXnyLuRyA5DzSXe4syosxzgdWuACtmDq1Vs,6053
40
40
  netbox_dns/forms/registrar.py,sha256=GaRH3w5zlhrpwy_U0pxlrl1DrAEaMB78MUlnGxBRwZI,3949
41
41
  netbox_dns/forms/registration_contact.py,sha256=IhNAqElY7hOdpDG0jwWMdy3y2mB43xmjUhj3lsgJ3SE,5906
42
- netbox_dns/forms/view.py,sha256=e5DNKZothUsTpUwL8b0Z3lks9nBLF2rfxwyVHL8HbHg,10410
43
- netbox_dns/forms/zone.py,sha256=Ga_wWBCL4XRBwXtuuaWRyEhRm5HkdCL2UMFe2lA4kNM,24840
44
- netbox_dns/forms/zone_template.py,sha256=x_aufvdDdZmHTPlpcg3-j1DJX2tcRiNnk7M5bP_T0Zg,8560
42
+ netbox_dns/forms/view.py,sha256=GacwKHXSDvxQEs-d3ys7rietqA_MzpSd0XjWaSsIbU0,10339
43
+ netbox_dns/forms/zone.py,sha256=8_-C2iy_ByMbjIea33xiGDYXhC69NdqhjQz-nOPwoMw,25011
44
+ netbox_dns/forms/zone_template.py,sha256=49vhM-Lc4JAGZD-al4QpPDLfwmpu82JNuX-bxpwabmc,8609
45
45
  netbox_dns/graphql/__init__.py,sha256=jghYD6uOSAis6YyLbtI3YJGZfwPw1uL2FBRsHs1EhNk,514
46
46
  netbox_dns/graphql/filters.py,sha256=fHCjFIwbPBJJMk2W7HI8LhrfFhCtQtCM9IE8ZMgVafc,1766
47
47
  netbox_dns/graphql/schema.py,sha256=q9DQ_hfRB0e6Znq4-IS6UEeTOfMkZmrWkwxcAql1uOA,2270
48
48
  netbox_dns/graphql/types.py,sha256=24m-qblJoauYzu5n1UDsw_IUvr_r3PRGO-VDt9aKQ3o,6686
49
- netbox_dns/locale/de/LC_MESSAGES/django.mo,sha256=VaKSH5q74PN5L49OfCajM8CBckqbLNsyOa0v3l7jbMM,20358
49
+ netbox_dns/locale/de/LC_MESSAGES/django.mo,sha256=0ij8AzrkWdwtUejXTOTdJJcIRweZfQT3iWjAXrf6hyM,20335
50
50
  netbox_dns/locale/en/LC_MESSAGES/django.mo,sha256=GDnSZkfHs3yjtTsll7dksEEej4B50F8pc9RGytZNubM,393
51
51
  netbox_dns/management/commands/cleanup_database.py,sha256=kfnyybudwKGigjJmrOwafPWSUasZr9jQsxN4eWAgMvY,5969
52
52
  netbox_dns/management/commands/cleanup_rrset_ttl.py,sha256=UFRURLBcFeGHUS2lrYFv7UWIebjI72aG1EUQJt0XsXw,2046
@@ -78,33 +78,33 @@ netbox_dns/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3h
78
78
  netbox_dns/mixins/__init__.py,sha256=LxTEfpod_RHCyMtnzDljv0_dwqp2z3Q6tqbXW8LTGD8,35
79
79
  netbox_dns/mixins/object_modification.py,sha256=biLbHOkayEdKPu-wxuYu7ZIXhB3cfv9k07asrQCtFb0,1658
80
80
  netbox_dns/models/__init__.py,sha256=5Ns9RaemTe5L0L3c6a38RxembWhV-sX9cqfjl05aPQw,313
81
- netbox_dns/models/nameserver.py,sha256=bL4KSBPKKZH6hDvx6ln5KZCeyrizQpPReFIsqsDfgPk,3462
82
- netbox_dns/models/record.py,sha256=Xv9XoG3rnLNNI3Zkeo_3cpoOn-M6QlicLxEXD8_z1ug,28340
83
- netbox_dns/models/record_template.py,sha256=EkA5RZDyVlMZjfAdUTNpU2w_kJIs0PXH8Cnb61rpeb4,5080
81
+ netbox_dns/models/nameserver.py,sha256=pQ0_r0lpf-cHOrNdNJLYdnqo9auRIJU2WxHKofZJssc,3355
82
+ netbox_dns/models/record.py,sha256=IzIS-VwiD7P4mm8AB8Hargiz7uhqUfOHHYqpOL_txmM,27905
83
+ netbox_dns/models/record_template.py,sha256=A6JPkxxpXZj-q8jXe2g6XGdujjFR3UXcLLIRz_oElAk,5033
84
84
  netbox_dns/models/registrar.py,sha256=90-QYpCYOiaylQJAFsTjH-v_g6Gnik2tgXP-O57ByPI,1853
85
85
  netbox_dns/models/registration_contact.py,sha256=SzBMSDsfkxZGLGvk0nDc92DhHzccgmU_Tz8ZBDXa0H4,3691
86
- netbox_dns/models/view.py,sha256=lbtrVtIzxnt3REr7TCsIy9scPiOhWm0BNsLVsDgwmtI,4774
87
- netbox_dns/models/zone.py,sha256=T4W0_eQzegnLSjF9j5FvJW0F58K7LQ2G3PX9oZJWiV4,30520
86
+ netbox_dns/models/view.py,sha256=5fAEzArYeUaU4uDougtJbwLwhPWb1Vm0xc3b9K4MsT0,4701
87
+ netbox_dns/models/zone.py,sha256=SzVYiYW4IHEC8nuTyXRoFrefUxd-FrGsXvOIhucJVRE,32159
88
88
  netbox_dns/models/zone_template.py,sha256=tppEGZOuzedRgGQ700gezEVg2aTLnaCi_RVBSVO_tGQ,3908
89
89
  netbox_dns/signals/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
90
- netbox_dns/signals/ipam_dnssync.py,sha256=ZmCCdYwrWmYSXyQiAoO39n6sLxHoipYrBexyip03dGI,8227
90
+ netbox_dns/signals/ipam_dnssync.py,sha256=hyO1q4xKcuAoRCyWUzIdPYwsVgq4N9rp-PKb8hlJQkM,8226
91
91
  netbox_dns/tables/__init__.py,sha256=axENVF9vX9BtDKCNxrapRjye1NnygUg9BS0BBj6a0io,209
92
92
  netbox_dns/tables/ipam_dnssync.py,sha256=7IK95XlA2ter6gsHqXjXPd6WubpOxrV-O5-UT6R1CKU,330
93
93
  netbox_dns/tables/nameserver.py,sha256=Ue1ZTygkgifWbQxvnpIG4PIC2qIWfVZaX_g8OIrRd6Q,739
94
- netbox_dns/tables/record.py,sha256=BYrwTghDDqi-icZz6FeSMhNGJyVOjvXuda29My6KXwo,4091
94
+ netbox_dns/tables/record.py,sha256=domOGxacF_2LT84k1qBdTgNKQl4kXVsIR8IM8JwZMns,4299
95
95
  netbox_dns/tables/record_template.py,sha256=HJEOK3VYVCKWhExs775Nb4KAvHPE7IqQEzneyVLBP0M,1973
96
96
  netbox_dns/tables/registrar.py,sha256=XQtJj0c4O4gpCdUp903GSD0tIuARmJw13Nwosw9pTFU,727
97
97
  netbox_dns/tables/registration_contact.py,sha256=n_FKE90j6KNgPKRVq1WXg4vnOzFE238oXsi_NYVAU9M,931
98
98
  netbox_dns/tables/view.py,sha256=gsuWQWAk3RstNIKzBDOHNHR2D3ykX6WigYLMj0VhQFs,1148
99
- netbox_dns/tables/zone.py,sha256=OAb0fXqjyd00quRarycvH4IQDgwMg8jxPnJJ6JykN4Q,2030
99
+ netbox_dns/tables/zone.py,sha256=_WihxcaUoQ2pgNyufXau8-yDqgIUMU6HAmbK5jxfIFM,1965
100
100
  netbox_dns/tables/zone_template.py,sha256=l9MC03E0UE_cZoh7YI4DsiccvaUxZZZwf-AAZ7OhgC4,1504
101
101
  netbox_dns/templates/netbox_dns/nameserver.html,sha256=cQM8p3aHgnmxY2L1951_kDULg2DPl3kpncPQBu6NGAk,1639
102
- netbox_dns/templates/netbox_dns/record.html,sha256=XuGfLkUeb0cBg4WoDJqMDgM8ddEH7g9nBrTEYLfaqBU,6088
102
+ netbox_dns/templates/netbox_dns/record.html,sha256=GpXVwP_wl67PsA4GPNZbuFKTkNxr86BsOwKJ_GgwL78,6572
103
103
  netbox_dns/templates/netbox_dns/recordtemplate.html,sha256=jQB42mBNlSt-Tq_uQFIyylEPQYqWP9BVD_W5As-M2Qc,3708
104
104
  netbox_dns/templates/netbox_dns/registrar.html,sha256=4kJuj3biiDxQrIMQEQUEmF4iGRE4psr6Fh0CBP1evz8,2308
105
105
  netbox_dns/templates/netbox_dns/registrationcontact.html,sha256=sljVp_MrPSJRc2vJCPFXq9MiWOw4wjbr1kI_YStBntw,3094
106
- netbox_dns/templates/netbox_dns/view.html,sha256=fbmefBeSenp45wS9Q72a-3dQWkcza3Yd9Bes9R291n4,3259
107
- netbox_dns/templates/netbox_dns/zone.html,sha256=PzCbw0UJRfpqmCO6TMbcCGZxxx92IqDYgDKrknQntas,6633
106
+ netbox_dns/templates/netbox_dns/view.html,sha256=TslfDC0ZzGU59iO_OcaX8jvt6fTjWot-wYRqRGRYvLE,3245
107
+ netbox_dns/templates/netbox_dns/zone.html,sha256=9tMvBuZ0hyAIHJB4-tbKmLLHAJ00OzQIIvajqn3uu5s,6619
108
108
  netbox_dns/templates/netbox_dns/zonetemplate.html,sha256=z_VJEkf_yNjL9xoVMHG4VHQvuXwBSarA_SoPbjutBgA,3667
109
109
  netbox_dns/templates/netbox_dns/record/managed.html,sha256=uwpxQTxyfAXkWqThLT-T2ZssKNUhXTDDMnLWJSVuDNU,119
110
110
  netbox_dns/templates/netbox_dns/record/related.html,sha256=R59aPhE4CyIZtTH0ncwDyS6_wAe_Y-oZjuN_j4qk8iA,1158
@@ -114,6 +114,7 @@ netbox_dns/templates/netbox_dns/view/related.html,sha256=C5P6IuRmQ_S2hAC44ceFyNJ
114
114
  netbox_dns/templates/netbox_dns/zone/base.html,sha256=KqxYgIwCru1rc73Z9QfNbEXwX0QzALsMLv-oXtFcrUQ,525
115
115
  netbox_dns/templates/netbox_dns/zone/child.html,sha256=zvRHvgWiRmd58YlJCjVTPK4tdyH1UYXOJt8SzUuLMcM,2191
116
116
  netbox_dns/templates/netbox_dns/zone/child_zone.html,sha256=b9CSGWEfWT7hLQ80gApMnu7mXM8w2LT-3UaOYe6HIRQ,510
117
+ netbox_dns/templates/netbox_dns/zone/delegation_record.html,sha256=bpJoyEYb5CVCoeH2260KMwwL6pUJxKA-Dt0qUruBEdk,517
117
118
  netbox_dns/templates/netbox_dns/zone/managed_record.html,sha256=LOchMAJyfMZIICE6q0pX1eorRbtgUtOQ1u0VvJKCDZ8,514
118
119
  netbox_dns/templates/netbox_dns/zone/record.html,sha256=Y_gg9EUIqjSYxmIZKufAK8jyg9A54J-BoewNxUBoO1Y,2238
119
120
  netbox_dns/templates/netbox_dns/zone/registration.html,sha256=PqniHrO-LnXstIKyjn3fJk69ysjfrrt3U4kZAJqidXI,1265
@@ -127,24 +128,25 @@ netbox_dns/urls/registration_contact.py,sha256=hS9xzBN1jsHkGJzTYEpoCFZdXSbQx0yJp
127
128
  netbox_dns/urls/view.py,sha256=pz-0iP_vGFUvrzIeOjq5Ebkmnaci8c4_5b2L0gYZvUE,1088
128
129
  netbox_dns/urls/zone.py,sha256=EzZ_U5v9NfWB5TVAc0i35EI-SVyXl6KrI844sMT0x5Q,937
129
130
  netbox_dns/urls/zone_template.py,sha256=nGrIaincQxCabUsLJL9JODoeTToMRSPllm7kuiPzeII,1378
130
- netbox_dns/utilities/__init__.py,sha256=mmR0JdH1DJVhUKesnO3CZFj0Rw_wrsMPoYTpOOKHl9I,55
131
+ netbox_dns/utilities/__init__.py,sha256=cSGf-nGaRWx9b-Xrh3dLMJYoWNsZ6FF-qdmV4F1uOgg,74
131
132
  netbox_dns/utilities/conversions.py,sha256=NS37SoMqXc13wNWRkKnLfyQbVi6QKD33fu5ovTKRo74,1979
132
- netbox_dns/utilities/ipam_dnssync.py,sha256=3j7FHRPeTBZg95yT6WcHH29pb4fLrUrCEpmsQit-JOY,9625
133
+ netbox_dns/utilities/dns.py,sha256=QKST49UkCw7n2GyrN3wU5ap6Cw98t1SZxFYJlyG2x70,315
134
+ netbox_dns/utilities/ipam_dnssync.py,sha256=tFphPVluDUS3-4NsUW1_D1dDksA3AgIozf7JAoTIE_w,9533
133
135
  netbox_dns/validators/__init__.py,sha256=Mr8TvmcJTa8Pubj8TzbFBKfbHhEmGcr5JdQvczEJ39A,72
134
136
  netbox_dns/validators/dns_name.py,sha256=D2SVUHkDAdENspDTzvW4qeWdKC_2KcueqNioqgoHrfA,3628
135
- netbox_dns/validators/dns_value.py,sha256=-0zd2Vjsgb-b5ifCsq2iBhJYQuORMxo4ylF3wlXeFZU,2996
137
+ netbox_dns/validators/dns_value.py,sha256=9zCbSLfSYEebn9brcA3Q0vVK2qnvZwlv0HxDoge6Yfs,4586
136
138
  netbox_dns/validators/rfc2317.py,sha256=uKkwxpakiFFKdYA0qy8WSlEnbFwJD4MDw6gGV4F6skg,706
137
139
  netbox_dns/views/__init__.py,sha256=axENVF9vX9BtDKCNxrapRjye1NnygUg9BS0BBj6a0io,209
138
- netbox_dns/views/nameserver.py,sha256=H6bNbcntm2KryWqSMCH_9X86Wi5acFg4y8IJ7UPM7A4,3467
139
- netbox_dns/views/record.py,sha256=AJVUOMGI-pQCADVeU5Yfw_0_QTNVso06eB85ZVmgbBY,4816
140
+ netbox_dns/views/nameserver.py,sha256=c1XARiJ_y_F22IEfJrlw2tkBAiuv_LjdQwjncPrhOzk,3449
141
+ netbox_dns/views/record.py,sha256=w9q3gevTBqWtuE1Eon-YwSD9jPokyOp-_d10v7uG5bk,5980
140
142
  netbox_dns/views/record_template.py,sha256=ZFvO-_GW_rHBaNFpC9HWn9RCZUkRn2s30v3mGmShFao,2567
141
- netbox_dns/views/registrar.py,sha256=UXsmdpUprnJ-B4NoeXlEyMfAizqjQL8robSqxPdiNro,2349
142
- netbox_dns/views/registration_contact.py,sha256=zURc0OhQH18zU6QtfmyLUaaXKLfrTJqgyoKT0hLt9h4,3030
143
- netbox_dns/views/view.py,sha256=u8IxsOWgoSgbgRyz6o3DW58oitLMWPrSSnTeo8naX4M,2957
144
- netbox_dns/views/zone.py,sha256=mz0ElySsf4q0VMxRvSdU6DGSSbT1JH4_P75elyXtUGo,5563
143
+ netbox_dns/views/registrar.py,sha256=GlsYiZSWpcwq-05vMfOFMujuSk2ouNVTWKB3NNA3nVk,2343
144
+ netbox_dns/views/registration_contact.py,sha256=vpFRsG32oyCXJOWg_7q1Z8Kb33EofeMTzUeC-Wba5lY,3024
145
+ netbox_dns/views/view.py,sha256=uvIMSurMI6plJH-O0vmPwow7cNtfKNvKORtb7oyTS68,2945
146
+ netbox_dns/views/zone.py,sha256=O8zFNSO4-OnVIKyPrWYA1EPtwMU0zbQXB4iR2-4Q4nQ,6749
145
147
  netbox_dns/views/zone_template.py,sha256=SWU-HcbaJ4xo0QFmh24SLomgfM8YTjizIqP-Rlpti74,2156
146
- netbox_plugin_dns-1.1.3.dist-info/LICENSE,sha256=I3tDu11bZfhFm3EkV4zOD5TmWgLjnUNLEFwrdjniZYs,1112
147
- netbox_plugin_dns-1.1.3.dist-info/METADATA,sha256=WepBh6A9xSmsGc7LKFOSmSSo9WR3CuXApO6E9M4i4Pw,7129
148
- netbox_plugin_dns-1.1.3.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
149
- netbox_plugin_dns-1.1.3.dist-info/top_level.txt,sha256=sA1Rwl1mRKvMC6XHe2ylZ1GF-Q1NGd08XedK9Y4xZc4,11
150
- netbox_plugin_dns-1.1.3.dist-info/RECORD,,
148
+ netbox_plugin_dns-1.1.5.dist-info/LICENSE,sha256=I3tDu11bZfhFm3EkV4zOD5TmWgLjnUNLEFwrdjniZYs,1112
149
+ netbox_plugin_dns-1.1.5.dist-info/METADATA,sha256=WV_K-GtXEyEatNE24Wulwdd7smjzAhx8TGdPuUm11G0,7223
150
+ netbox_plugin_dns-1.1.5.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
151
+ netbox_plugin_dns-1.1.5.dist-info/top_level.txt,sha256=sA1Rwl1mRKvMC6XHe2ylZ1GF-Q1NGd08XedK9Y4xZc4,11
152
+ netbox_plugin_dns-1.1.5.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.1.0)
2
+ Generator: setuptools (75.2.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5