netbox-plugin-dns 1.0.7__py3-none-any.whl → 1.1.0b1__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 (69) hide show
  1. netbox_dns/__init__.py +21 -5
  2. netbox_dns/api/nested_serializers.py +16 -17
  3. netbox_dns/api/serializers.py +1 -0
  4. netbox_dns/api/serializers_/prefix.py +18 -0
  5. netbox_dns/api/serializers_/record.py +0 -1
  6. netbox_dns/api/serializers_/view.py +34 -2
  7. netbox_dns/api/urls.py +3 -0
  8. netbox_dns/api/views.py +36 -0
  9. netbox_dns/fields/__init__.py +1 -0
  10. netbox_dns/fields/ipam.py +18 -0
  11. netbox_dns/filtersets/record.py +1 -1
  12. netbox_dns/filtersets/view.py +16 -0
  13. netbox_dns/forms/view.py +116 -4
  14. netbox_dns/forms/zone.py +0 -8
  15. netbox_dns/graphql/schema.py +40 -16
  16. netbox_dns/graphql/types.py +1 -0
  17. netbox_dns/management/commands/setup_autodns.py +120 -0
  18. netbox_dns/migrations/0007_view_prefixes.py +18 -0
  19. netbox_dns/models/__init__.py +0 -2
  20. netbox_dns/models/contact.py +3 -9
  21. netbox_dns/models/nameserver.py +3 -8
  22. netbox_dns/models/record.py +71 -17
  23. netbox_dns/models/record_template.py +1 -4
  24. netbox_dns/models/registrar.py +1 -7
  25. netbox_dns/models/view.py +7 -9
  26. netbox_dns/models/zone.py +28 -29
  27. netbox_dns/models/zone_template.py +5 -8
  28. netbox_dns/signals/ipam_autodns.py +138 -0
  29. netbox_dns/tables/contact.py +1 -0
  30. netbox_dns/tables/nameserver.py +7 -1
  31. netbox_dns/tables/record.py +30 -10
  32. netbox_dns/tables/record_template.py +17 -0
  33. netbox_dns/tables/registrar.py +2 -0
  34. netbox_dns/tables/view.py +32 -3
  35. netbox_dns/tables/zone.py +15 -0
  36. netbox_dns/tables/zone_template.py +16 -2
  37. netbox_dns/template_content.py +28 -39
  38. netbox_dns/templates/netbox_dns/record.html +6 -6
  39. netbox_dns/templates/netbox_dns/view/related.html +17 -0
  40. netbox_dns/templates/netbox_dns/view.html +29 -0
  41. netbox_dns/urls/contact.py +32 -10
  42. netbox_dns/urls/nameserver.py +38 -14
  43. netbox_dns/urls/record.py +19 -7
  44. netbox_dns/urls/record_template.py +27 -18
  45. netbox_dns/urls/registrar.py +35 -11
  46. netbox_dns/urls/view.py +22 -8
  47. netbox_dns/urls/zone.py +46 -8
  48. netbox_dns/urls/zone_template.py +26 -16
  49. netbox_dns/utilities/__init__.py +2 -74
  50. netbox_dns/utilities/conversions.py +83 -0
  51. netbox_dns/utilities/ipam_autodns.py +205 -0
  52. netbox_dns/validators/dns_name.py +0 -9
  53. netbox_dns/views/contact.py +1 -0
  54. netbox_dns/views/nameserver.py +3 -7
  55. netbox_dns/views/record.py +2 -9
  56. netbox_dns/views/record_template.py +1 -1
  57. netbox_dns/views/registrar.py +1 -0
  58. netbox_dns/views/view.py +1 -6
  59. netbox_dns/views/zone.py +6 -7
  60. netbox_dns/views/zone_template.py +2 -2
  61. {netbox_plugin_dns-1.0.7.dist-info → netbox_plugin_dns-1.1.0b1.dist-info}/METADATA +2 -2
  62. {netbox_plugin_dns-1.0.7.dist-info → netbox_plugin_dns-1.1.0b1.dist-info}/RECORD +64 -61
  63. netbox_dns/management/commands/setup_coupling.py +0 -109
  64. netbox_dns/migrations/0007_alter_ordering_options.py +0 -25
  65. netbox_dns/signals/ipam_coupling.py +0 -168
  66. netbox_dns/templates/netbox_dns/related_dns_objects.html +0 -21
  67. netbox_dns/utilities/ipam_coupling.py +0 -112
  68. {netbox_plugin_dns-1.0.7.dist-info → netbox_plugin_dns-1.1.0b1.dist-info}/LICENSE +0 -0
  69. {netbox_plugin_dns-1.0.7.dist-info → netbox_plugin_dns-1.1.0b1.dist-info}/WHEEL +0 -0
@@ -0,0 +1,205 @@
1
+ import re
2
+
3
+ from collections import defaultdict
4
+
5
+ from dns import name as dns_name
6
+
7
+ from django.conf import settings
8
+ from django.db.models import Q
9
+
10
+ from ipam.models import IPAddress, Prefix
11
+
12
+ from netbox_dns.models import zone as _zone
13
+ from netbox_dns.models import record as _record
14
+ from netbox_dns.models import view as _view
15
+
16
+
17
+ __all__ = (
18
+ "get_zones",
19
+ "update_dns_records",
20
+ "delete_dns_records",
21
+ "get_views_by_prefix",
22
+ "get_ip_addresses_by_prefix",
23
+ "get_ip_addresses_by_view",
24
+ "get_ip_addresses_by_zone",
25
+ )
26
+
27
+
28
+ def _get_assigned_views(ip_address):
29
+ longest_prefix = Prefix.objects.filter(
30
+ vrf=ip_address.vrf,
31
+ prefix__net_contains_or_equals=str(ip_address.address.ip),
32
+ netbox_dns_views__isnull=False,
33
+ ).last()
34
+
35
+ if longest_prefix is None:
36
+ return []
37
+
38
+ return longest_prefix.netbox_dns_views.all()
39
+
40
+
41
+ def _get_record_status(ip_address):
42
+ return (
43
+ RecordStatusChoices.STATE_ACTIVE
44
+ if ip_address.status
45
+ in settings.PLUGINS_CONFIG["netbox_dns"].get(
46
+ "autodns_ipaddress_active_status", []
47
+ )
48
+ else RecordStatusChoices.STATUS_INACTIVE
49
+ )
50
+
51
+
52
+ def get_zones(ip_address, view=None):
53
+ if view is None:
54
+ views = _get_assigned_views(ip_address)
55
+ if not views:
56
+ return []
57
+
58
+ else:
59
+ views = [view]
60
+
61
+ fqdn = dns_name.from_text(ip_address.dns_name)
62
+ zone_name_candidates = [
63
+ fqdn.split(i)[1].to_text().rstrip(".") for i in range(3, len(fqdn.labels))
64
+ ]
65
+
66
+ zones = _zone.Zone.objects.filter(
67
+ view__in=views,
68
+ name__in=zone_name_candidates,
69
+ active=True,
70
+ )
71
+
72
+ if not zones:
73
+ return []
74
+
75
+ zone_map = defaultdict(list)
76
+ for zone in zones:
77
+ zone_map[zone.view].append(zone)
78
+
79
+ return [
80
+ sorted(zones_per_view, key=lambda x: len(x.name))[-1]
81
+ for zones_per_view in zone_map.values()
82
+ ]
83
+
84
+
85
+ def update_dns_records(ip_address, commit=True, view=None):
86
+ if ip_address.dns_name == "":
87
+ if commit:
88
+ delete_dns_records(ip_address)
89
+ return
90
+
91
+ zones = get_zones(ip_address, view=view)
92
+
93
+ if ip_address.pk is not None:
94
+ for record in ip_address.netbox_dns_records.all():
95
+ if record.zone not in zones:
96
+ if commit:
97
+ record.delete()
98
+ continue
99
+
100
+ if (
101
+ record.fqdn != ip_address.dns_name
102
+ or record.value != ip_address.address.ip
103
+ or record.status != _get_record_status(ip_address)
104
+ ):
105
+ record.update_from_ip_address(ip_address)
106
+
107
+ if record is not None:
108
+ if commit:
109
+ record.save()
110
+ else:
111
+ record.clean()
112
+
113
+ zones = set(zones).difference(
114
+ {record.zone for record in ip_address.netbox_dns_records.all()}
115
+ )
116
+
117
+ for zone in zones:
118
+ record = _record.Record.create_from_ip_address(
119
+ ip_address,
120
+ zone,
121
+ )
122
+
123
+ if record is not None:
124
+ if commit:
125
+ record.save()
126
+ else:
127
+ record.clean()
128
+
129
+
130
+ def delete_dns_records(ip_address):
131
+ for record in ip_address.netbox_dns_records.all():
132
+ record.delete()
133
+
134
+
135
+ def get_views_by_prefix(prefix):
136
+ if (views := prefix.netbox_dns_views.all()).exists():
137
+ return views
138
+
139
+ if (parent := prefix.get_parents().filter(netbox_dns_views__isnull=False)).exists():
140
+ return parent.last().netbox_dns_views.all()
141
+
142
+ return _view.View.objects.none()
143
+
144
+
145
+ def get_ip_addresses_by_prefix(prefix, check_view=True):
146
+ """
147
+ Find all IPAddress objects that are in a given prefix, provided that prefix
148
+ is assigned to NetBox DNS view. IPAddress objects belonging to a sub-prefix
149
+ that is assigned to a NetBox DNS view itself are excluded, because the zones
150
+ that are relevant for them are depending on the view set of the sub-prefix.
151
+
152
+ If neither the prefix nor any parent prefix is assigned to a view, the list
153
+ of IPAddress objects returned is empty.
154
+ """
155
+ if check_view and not get_views_by_prefix(prefix):
156
+ return IPAddress.objects.none()
157
+
158
+ queryset = IPAddress.objects.filter(
159
+ vrf=prefix.vrf, address__net_host_contained=prefix.prefix
160
+ )
161
+
162
+ for exclude_child in prefix.get_children().filter(netbox_dns_views__isnull=False):
163
+ queryset = queryset.exclude(
164
+ vrf=exclude_child.vrf,
165
+ address__net_host_contained=exclude_child.prefix,
166
+ )
167
+
168
+ return queryset
169
+
170
+
171
+ def get_ip_addresses_by_view(view):
172
+ """
173
+ Find all IPAddress objects that are within prefixes that have a NetBox DNS
174
+ view assigned to them, or that inherit a view from their parent prefix.
175
+
176
+ Inheritance is defined recursively if the prefix is assigned to the view or
177
+ if it is a child prefix of the prefix that is not assigned to a view directly
178
+ or by inheritance.
179
+ """
180
+ queryset = IPAddress.objects.none()
181
+ for prefix in Prefix.objects.filter(netbox_dns_views__in=[view]):
182
+ sub_queryset = IPAddress.objects.filter(
183
+ vrf=prefix.vrf, address__net_host_contained=prefix.prefix
184
+ )
185
+ for exclude_child in prefix.get_children().exclude(
186
+ Q(netbox_dns_views__isnull=True) | Q(netbox_dns_views__in=[view])
187
+ ):
188
+ sub_queryset = sub_queryset.exclude(
189
+ vrf=exclude_child.vrf,
190
+ address__net_host_contained=exclude_child.prefix,
191
+ )
192
+ queryset |= sub_queryset
193
+
194
+ return queryset
195
+
196
+
197
+ def get_ip_addresses_by_zone(zone):
198
+ """
199
+ Find all IPAddress objects that are relevant for a NetBox DNS zone. These
200
+ are the IPAddress objects in prefixes assigned to the same view, if the
201
+ 'dns_name' attribute of the IPAddress object ends in the zone's name.
202
+ """
203
+ queryset = get_ip_addresses_by_view(zone.view)
204
+
205
+ return queryset.filter(dns_name__regex=rf"\.{re.escape(zone.name)}\.?$")
@@ -7,7 +7,6 @@ from netbox.plugins.utils import get_plugin_config
7
7
 
8
8
  __all__ = (
9
9
  "validate_fqdn",
10
- "validate_rname",
11
10
  "validate_generic_name",
12
11
  "validate_domain_name",
13
12
  )
@@ -58,14 +57,6 @@ def validate_fqdn(name, always_tolerant=False):
58
57
  raise ValidationError(f"{name} is not a valid fully qualified DNS host name")
59
58
 
60
59
 
61
- def validate_rname(name, always_tolerant=False):
62
- label, zone_label = _get_label(always_tolerant=always_tolerant)
63
- regex = rf"^(\*|{label})(\\\.{label})*(\.{zone_label}){{2,}}\.?$"
64
-
65
- if not re.match(regex, name, flags=re.IGNORECASE) or _has_invalid_double_dash(name):
66
- raise ValidationError(f"{name} is not a valid RNAME")
67
-
68
-
69
60
  def validate_generic_name(
70
61
  name, tolerate_leading_underscores=False, always_tolerant=False
71
62
  ):
@@ -23,6 +23,7 @@ __all__ = (
23
23
  "ContactBulkImportView",
24
24
  "ContactBulkEditView",
25
25
  "ContactBulkDeleteView",
26
+ "ContactZoneListView",
26
27
  )
27
28
 
28
29
 
@@ -2,7 +2,6 @@ from dns import name as dns_name
2
2
 
3
3
  from netbox.views import generic
4
4
  from utilities.views import ViewTab, register_model_view
5
- from tenancy.views import ObjectContactsView
6
5
 
7
6
  from netbox_dns.filtersets import NameServerFilterSet, ZoneFilterSet
8
7
  from netbox_dns.forms import (
@@ -16,13 +15,15 @@ from netbox_dns.tables import NameServerTable, ZoneTable
16
15
 
17
16
 
18
17
  __all__ = (
19
- "NameServerView",
20
18
  "NameServerListView",
19
+ "NameServerView",
21
20
  "NameServerEditView",
22
21
  "NameServerDeleteView",
23
22
  "NameServerBulkEditView",
24
23
  "NameServerBulkImportView",
25
24
  "NameServerBulkDeleteView",
25
+ "NameServerZoneListView",
26
+ "NameServerSOAZoneListView",
26
27
  )
27
28
 
28
29
 
@@ -76,11 +77,6 @@ class NameServerBulkDeleteView(generic.BulkDeleteView):
76
77
  table = NameServerTable
77
78
 
78
79
 
79
- @register_model_view(NameServer, "contacts")
80
- class NameServerContactsView(ObjectContactsView):
81
- queryset = NameServer.objects.all()
82
-
83
-
84
80
  @register_model_view(NameServer, "zones")
85
81
  class NameServerZoneListView(generic.ObjectChildrenView):
86
82
  queryset = NameServer.objects.all().prefetch_related("zones")
@@ -1,8 +1,6 @@
1
1
  from dns import name as dns_name
2
2
 
3
3
  from netbox.views import generic
4
- from utilities.views import register_model_view
5
- from tenancy.views import ObjectContactsView
6
4
 
7
5
  from netbox_dns.filtersets import RecordFilterSet
8
6
  from netbox_dns.forms import (
@@ -18,14 +16,14 @@ from netbox_dns.utilities import value_to_unicode
18
16
 
19
17
 
20
18
  __all__ = (
21
- "RecordView",
22
19
  "RecordListView",
20
+ "ManagedRecordListView",
21
+ "RecordView",
23
22
  "RecordEditView",
24
23
  "RecordDeleteView",
25
24
  "RecordBulkImportView",
26
25
  "RecordBulkEditView",
27
26
  "RecordBulkDeleteView",
28
- "ManagedRecordListView",
29
27
  )
30
28
 
31
29
 
@@ -157,8 +155,3 @@ class RecordBulkEditView(generic.BulkEditView):
157
155
  class RecordBulkDeleteView(generic.BulkDeleteView):
158
156
  queryset = Record.objects.filter(managed=False)
159
157
  table = RecordTable
160
-
161
-
162
- @register_model_view(Record, "contacts")
163
- class RecordContactsView(ObjectContactsView):
164
- queryset = Record.objects.all()
@@ -15,8 +15,8 @@ from netbox_dns.utilities import value_to_unicode
15
15
 
16
16
 
17
17
  __all__ = (
18
- "RecordTemplateView",
19
18
  "RecordTemplateListView",
19
+ "RecordTemplateView",
20
20
  "RecordTemplateEditView",
21
21
  "RecordTemplateDeleteView",
22
22
  "RecordTemplateBulkImportView",
@@ -21,6 +21,7 @@ __all__ = (
21
21
  "RegistrarBulkImportView",
22
22
  "RegistrarBulkEditView",
23
23
  "RegistrarBulkDeleteView",
24
+ "RegistrarZoneListView",
24
25
  )
25
26
 
26
27
 
netbox_dns/views/view.py CHANGED
@@ -1,7 +1,6 @@
1
1
  from utilities.views import ViewTab, register_model_view
2
2
 
3
3
  from netbox.views import generic
4
- from tenancy.views import ObjectContactsView
5
4
 
6
5
  from netbox_dns.models import View, Zone
7
6
  from netbox_dns.filtersets import ViewFilterSet, ZoneFilterSet
@@ -17,6 +16,7 @@ __all__ = (
17
16
  "ViewBulkImportView",
18
17
  "ViewBulkEditView",
19
18
  "ViewBulkDeleteView",
19
+ "ViewZoneListView",
20
20
  )
21
21
 
22
22
 
@@ -79,8 +79,3 @@ class ViewZoneListView(generic.ObjectChildrenView):
79
79
 
80
80
  def get_children(self, request, parent):
81
81
  return parent.zone_set
82
-
83
-
84
- @register_model_view(View, "contacts")
85
- class ViewContactsView(ObjectContactsView):
86
- queryset = View.objects.all()
netbox_dns/views/zone.py CHANGED
@@ -2,7 +2,6 @@ from dns import name as dns_name
2
2
 
3
3
  from netbox.views import generic
4
4
  from utilities.views import ViewTab, register_model_view
5
- from tenancy.views import ObjectContactsView
6
5
 
7
6
  from netbox_dns.filtersets import ZoneFilterSet, RecordFilterSet
8
7
  from netbox_dns.forms import (
@@ -20,13 +19,18 @@ from netbox_dns.tables import (
20
19
 
21
20
 
22
21
  __all__ = (
23
- "ZoneView",
24
22
  "ZoneListView",
23
+ "ZoneView",
25
24
  "ZoneEditView",
26
25
  "ZoneDeleteView",
27
26
  "ZoneBulkImportView",
28
27
  "ZoneBulkEditView",
29
28
  "ZoneBulkDeleteView",
29
+ "ZoneRegistrationView",
30
+ "ZoneRecordListView",
31
+ "ZoneManagedRecordListView",
32
+ "ZoneRFC2317ChildZoneListView",
33
+ "ZoneChildZoneListView",
30
34
  )
31
35
 
32
36
 
@@ -197,8 +201,3 @@ class ZoneChildZoneListView(generic.ObjectChildrenView):
197
201
 
198
202
  def get_children(self, request, parent):
199
203
  return parent.child_zones
200
-
201
-
202
- @register_model_view(Zone, "contacts")
203
- class ZoneContactsView(ObjectContactsView):
204
- queryset = Zone.objects.all()
@@ -1,6 +1,5 @@
1
1
  from netbox.views import generic
2
2
 
3
- from netbox_dns.models import ZoneTemplate
4
3
  from netbox_dns.filtersets import ZoneTemplateFilterSet
5
4
  from netbox_dns.forms import (
6
5
  ZoneTemplateImportForm,
@@ -8,12 +7,13 @@ from netbox_dns.forms import (
8
7
  ZoneTemplateFilterForm,
9
8
  ZoneTemplateBulkEditForm,
10
9
  )
10
+ from netbox_dns.models import ZoneTemplate
11
11
  from netbox_dns.tables import ZoneTemplateTable, RecordTemplateDisplayTable
12
12
 
13
13
 
14
14
  __all__ = (
15
- "ZoneTemplateView",
16
15
  "ZoneTemplateListView",
16
+ "ZoneTemplateView",
17
17
  "ZoneTemplateEditView",
18
18
  "ZoneTemplateDeleteView",
19
19
  "ZoneTemplateBulkImportView",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: netbox-plugin-dns
3
- Version: 1.0.7
3
+ Version: 1.1.0b1
4
4
  Summary: NetBox DNS is a NetBox plugin for managing DNS data.
5
5
  Home-page: https://github.com/peteeckel/netbox-plugin-dns
6
6
  License: MIT
@@ -8,7 +8,7 @@ Keywords: netbox,netbox-plugin,dns
8
8
  Author: Peter Eckel
9
9
  Author-email: pete@netbox-dns.org
10
10
  Requires-Python: >=3.10,<4.0
11
- Classifier: Development Status :: 5 - Production/Stable
11
+ Classifier: Development Status :: 4 - Beta
12
12
  Classifier: License :: OSI Approved :: MIT License
13
13
  Classifier: Programming Language :: Python :: 3
14
14
  Classifier: Programming Language :: Python :: 3.10
@@ -1,32 +1,34 @@
1
- netbox_dns/__init__.py,sha256=C1P57RdYgCLvCcwjGlFzH7NSbgiSLanIFZBLehhK34w,1244
2
- netbox_dns/api/nested_serializers.py,sha256=zRIgWEtKIhvfxKOtxwFRfNeUQGWWNeuulfZ6oeFhe2w,3195
3
- netbox_dns/api/serializers.py,sha256=WNs7_Inr4veHXUHXmORBjHilrVIzSUi5zPiOCtzQZSU,335
1
+ netbox_dns/__init__.py,sha256=vipRMjUAjOubMr_a7qFS6wiK0igQpR5FOGKlSrFjDy0,1799
2
+ netbox_dns/api/nested_serializers.py,sha256=-ZhAiyf-8UHlkcBomBp1J7ci1dSwrxWRbbfskD-D_yQ,3172
3
+ netbox_dns/api/serializers.py,sha256=u-kQurUftGkUGAMh-VkMgXPebLYeZq9WDz9uKzkk2No,370
4
4
  netbox_dns/api/serializers_/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
5
  netbox_dns/api/serializers_/contact.py,sha256=5fAdHfjBGIh4686tvgPejhW5Di46LNzIYVvAGeFDq0c,964
6
6
  netbox_dns/api/serializers_/nameserver.py,sha256=PlpVsai24O73B-ZQ4wSaSC0_m_LCtQETDRSUYDb1xGw,1118
7
- netbox_dns/api/serializers_/record.py,sha256=62924HonaKflFXkTgFft_624BKEikAMkak1AKDYsFvk,2316
7
+ netbox_dns/api/serializers_/prefix.py,sha256=kZ1DjDly6VFZamXSxGa57YC6MfZZcI5S7jmGBkVB2_I,551
8
+ netbox_dns/api/serializers_/record.py,sha256=QAUzU5GXDadOgfug9ApYQ4fw-pztAZSG02LH1UoBNgY,2293
8
9
  netbox_dns/api/serializers_/record_template.py,sha256=qh-g-_f6M-eU4GzN-l0nPxiNBpZyYBgib26HwfOMtUc,1466
9
10
  netbox_dns/api/serializers_/registrar.py,sha256=xLIaeBJ5ckV1Jf-uyCTFcvsLlsRMlpDtIg6q79vXZic,842
10
- netbox_dns/api/serializers_/view.py,sha256=tkv7KD6FJH1_AwPljx2vVJThO0Xb4OcCmlc9E8E4bhQ,950
11
+ netbox_dns/api/serializers_/view.py,sha256=u5HqZtPzGCBTFCsH5GkPGsyG-oR4WIJ8XOqdWe3oUow,1723
11
12
  netbox_dns/api/serializers_/zone.py,sha256=ZOCNHNufPK8T9UKKjT4NcIyfb1zwG7gD6TpPTlMHi0k,4862
12
13
  netbox_dns/api/serializers_/zone_template.py,sha256=usx0vRsqRqHP6sqB92fQy3VTjIfjYflULTtQhQksSpk,3709
13
- netbox_dns/api/urls.py,sha256=hrqu6VnN6313DjYIOuZih-afSnedIPsSaqjcva45DiI,739
14
- netbox_dns/api/views.py,sha256=C9vA0yTTN845BFI06fclSEs5Too991ae0vrDDGzHKEI,3456
14
+ netbox_dns/api/urls.py,sha256=f77mwzenQ54WMZeLRLKBmPZMKmfXhagREe7LAuSjAsM,802
15
+ netbox_dns/api/views.py,sha256=lCK_Z1sImxGc-ClfEsZzh-HoksaLAb6fBgb6dj9lk8o,4805
15
16
  netbox_dns/apps.py,sha256=JCW5eS-AQBUubDJve1DjP-IRFKTFGQh1NLGWzJpC5MI,151
16
17
  netbox_dns/choices/__init__.py,sha256=jOVs2VGV5SVADRlqVnrFeAy26i8BIeEAbGpiX7K8bL8,42
17
18
  netbox_dns/choices/record.py,sha256=IYW_g1ZvuNX2ZlRLOkurcrdfWgcXNpi2gQzRfX5C0lY,1113
18
19
  netbox_dns/choices/zone.py,sha256=u0zt03gTkeo_und0VxaTTCh3GIFv6UxtUIhoe3VJ00A,472
19
- netbox_dns/fields/__init__.py,sha256=egA6gLQ4SPYacECcYU4Vl_P7TbzLOMRfaX6rw3k26YA,69
20
+ netbox_dns/fields/__init__.py,sha256=U1nbFIwwtvr10pp3Sk91jEZeWkVQBSJtr0BVWYgOfiA,89
20
21
  netbox_dns/fields/address.py,sha256=DJwc-z5Lg6US85gNIB_Chx7ahs1GYNswdhaXkLiK3jA,1554
22
+ netbox_dns/fields/ipam.py,sha256=nj3nNMU4ebo3Ung0M7uhOBLlKUGDPIVTv1lJJ82HcLU,565
21
23
  netbox_dns/fields/network.py,sha256=FgKEm5DAe_4D7Fubtj8B4SwfU3-Z9KV7kDIzRNpBBnQ,3682
22
24
  netbox_dns/fields/rfc2317.py,sha256=24qNNLbI-SGlsKqGaLNaVk8EHFrju65YTET3O-8XgTc,2571
23
25
  netbox_dns/filtersets/__init__.py,sha256=zvHYWy23FFmK4vxLpoMo-OD5OQBtcTUV_HG-5LCtvQE,197
24
26
  netbox_dns/filtersets/contact.py,sha256=VnlNX6dyUlEbj7tz9cgRKSWQOdg7OqP32cD2IyD5hu8,1091
25
27
  netbox_dns/filtersets/nameserver.py,sha256=I7RoIUcgXyIoMrhuS0dJr8uPi0AdNj6D3G6t2oSiQ7s,1147
26
- netbox_dns/filtersets/record.py,sha256=Jt3RlI4MIfeY5xYkLse1y1rzmKCdmuk-CRAxxaNVYbY,3750
28
+ netbox_dns/filtersets/record.py,sha256=nr-oLCnaceiQua5tL-_teYj54X-VMXQeYihbCjykaJY,3750
27
29
  netbox_dns/filtersets/record_template.py,sha256=jGSjGFEnNSoxtUd7diV8wEhw8qZclz2dKLSqyVC7Djo,1548
28
30
  netbox_dns/filtersets/registrar.py,sha256=Wh_l-IXRHnJhW7Pyokp3czQZISDKzXnWeSQKp512Drc,977
29
- netbox_dns/filtersets/view.py,sha256=IbQ6ceeUHoXKTczDhLTiwwUMNrFBNhgDzEr9zHRZT7k,552
31
+ netbox_dns/filtersets/view.py,sha256=sGUhmyr66GY2CVXOFX2g5evDt0nbU6XPPCwptvnicHQ,993
30
32
  netbox_dns/filtersets/zone.py,sha256=lKEHNkg7v_y7gb07swwaUTSfx7MPKvpEl4VcxEVazYY,6594
31
33
  netbox_dns/filtersets/zone_template.py,sha256=P1G3NG3NFzw5lSaJErZltSSKNcC_WztTNXpU7PtS4SI,3670
32
34
  netbox_dns/forms/__init__.py,sha256=s41w4o77tIwmhnLjsOsg08R9m3wrlomkkfCLTVQuPzc,196
@@ -35,16 +37,16 @@ netbox_dns/forms/nameserver.py,sha256=LHomCHmFcASobaD3Z7yhAyA24h-LrYImVMz-EUXbwK
35
37
  netbox_dns/forms/record.py,sha256=svBVAFy-egDEPLcRWkxNi_1bkabKmWgJ87pmdNt6dh4,7155
36
38
  netbox_dns/forms/record_template.py,sha256=Q77p9sExJ8Xbl-Co2Px2R0At5O3naQJwx4pnino6i2o,5573
37
39
  netbox_dns/forms/registrar.py,sha256=FMnvrcq62R3wNp_2ZUEk3v_PIav0KrWPATaJ7_9KFAo,3758
38
- netbox_dns/forms/view.py,sha256=4Uuh514WPb-9M8XOCsdqSm0ayzD2ZymnLSqFn8obSLw,2273
39
- netbox_dns/forms/zone.py,sha256=17Ii2csnYquuz7HGgaK36ZgOzWnFXFeh1IQYvWnBKC0,23537
40
+ netbox_dns/forms/view.py,sha256=txD8BpM-d1YUUm6tYPdEIG7CD30ubE_w6EF1G3PQKi0,6149
41
+ netbox_dns/forms/zone.py,sha256=ZbsYcWX-t1luqBsLj4vec0IZG0lmCwGW5nzVh77qJrw,23164
40
42
  netbox_dns/forms/zone_template.py,sha256=UNykid5pRB_ydy40j2DzRlBXp3_QAOqdqxdUojKYTd4,8161
41
43
  netbox_dns/graphql/__init__.py,sha256=ZZSsx-VM108tB_FrcVy3uGGhtmePpkXnY5U1ytnoTvE,490
42
44
  netbox_dns/graphql/filters.py,sha256=6Ot_d1e7h5lVXVVBB3hyWUql94K3zsK9Tjb3RVJqluw,1706
43
- netbox_dns/graphql/schema.py,sha256=KIvBSZHcD43OScvdiCjcxk5dwa6ACiwwT9FTPSnzMYE,2312
44
- netbox_dns/graphql/types.py,sha256=q0gtXhhM_MzBb1zBzXA5gopnuL4szuzXRTTAvOhPz-Y,6025
45
+ netbox_dns/graphql/schema.py,sha256=P-oQ8ei3sC6XLhgCa_riRbRTrMkPCVTJXkGv0U2rPYw,2682
46
+ netbox_dns/graphql/types.py,sha256=4ewWOqEbWtCBiU9bdIm_6CIm6MKAM6szCAXSvokpqWg,6108
45
47
  netbox_dns/management/commands/cleanup_database.py,sha256=kfnyybudwKGigjJmrOwafPWSUasZr9jQsxN4eWAgMvY,5969
46
48
  netbox_dns/management/commands/cleanup_rrset_ttl.py,sha256=UFRURLBcFeGHUS2lrYFv7UWIebjI72aG1EUQJt0XsXw,2046
47
- netbox_dns/management/commands/setup_coupling.py,sha256=1cUxDvHoX1UebgyCsbrLqIccuXhE8tkvyhW8dofIyr4,4556
49
+ netbox_dns/management/commands/setup_autodns.py,sha256=cyxHjkoVSxSPiUp1OXa6avZ3_jOH6PLVA53lTheuPkk,4786
48
50
  netbox_dns/management/commands/update_soa.py,sha256=Rj_Xk-qpwkAVRubVnM5OqSTwgzi93E0PqjwGb3rYjf0,660
49
51
  netbox_dns/migrations/0001_squashed_netbox_dns_0_15.py,sha256=3U0810NWSHPu2dTSHpfzlleDgwMS04FhJ_CkO76SDaw,10283
50
52
  netbox_dns/migrations/0001_squashed_netbox_dns_0_22.py,sha256=ML6Hp17lrXiaG0eUlBjKMm6HUNhw0AHPnKrb9AN-F6E,20279
@@ -53,7 +55,7 @@ netbox_dns/migrations/0003_default_view.py,sha256=NByVlAyiiK6WCfJ014BiFPkoNcHeqr
53
55
  netbox_dns/migrations/0004_create_and_assign_default_view.py,sha256=npBFxWuJCZeMhbZLEH9C_sZcQZRaa3IOlyn4p_GULyk,627
54
56
  netbox_dns/migrations/0005_alter_zone_view_not_null.py,sha256=vUfCFD-qeh5M1WCqtE1eYHXZwQVCcf841Z2-0CdcMRI,463
55
57
  netbox_dns/migrations/0006_templating.py,sha256=7MOZ2bLwkjK1BQCBPBaFWJ-mS_JNrok1XUSh4rriq9Y,6271
56
- netbox_dns/migrations/0007_alter_ordering_options.py,sha256=IDGgxEWOaSs9_WKJK1C_5_6M1uJtYscn3Vco0UHAol8,639
58
+ netbox_dns/migrations/0007_view_prefixes.py,sha256=doW0XWDVUJiyZDcnd6kUr3AlF3LcgtAYJphKVdX2R4U,460
57
59
  netbox_dns/migrations/0020_netbox_3_4.py,sha256=UMcHdn8ZAuQjUaM_3rEGpktYrM0TuvhccD7Jt7WQnPs,1271
58
60
  netbox_dns/migrations/0021_record_ip_address.py,sha256=EqdhWXmq7aiK4X79xTRUZng3zFncCl-8JoO65HqlJKw,3244
59
61
  netbox_dns/migrations/0022_search.py,sha256=KW1ffEZ4-0dppGQ_KD1EN7iw8eQJOnDco-xfJFRZqKQ,172
@@ -67,37 +69,37 @@ netbox_dns/migrations/0029_record_fqdn.py,sha256=UAAU38ekKQyiYDOJlcrz6Qbk4bqZfSH
67
69
  netbox_dns/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
68
70
  netbox_dns/mixins/__init__.py,sha256=LxTEfpod_RHCyMtnzDljv0_dwqp2z3Q6tqbXW8LTGD8,35
69
71
  netbox_dns/mixins/object_modification.py,sha256=JbGi8a52wkZ3fFBlfat590CfqRJcEWxBsxSeTIx3Qtg,833
70
- netbox_dns/models/__init__.py,sha256=0JSjJ_F0KR66DDV8emCPlHMQwgghi9tWo_0PuvyWpQQ,346
71
- netbox_dns/models/contact.py,sha256=uBy-8_fIp_6Un9E3NsjJTIpARfATUF7uPghdSIRIHiA,3119
72
- netbox_dns/models/nameserver.py,sha256=gvQRcTOVHRiX_rcBZfjNV6rTRKNJtA5HxgggYEgITPA,3296
73
- netbox_dns/models/record.py,sha256=CLNfROjxbCwAF9H4sHwBKTfCYCvV7BFt154brSOtrqo,22991
74
- netbox_dns/models/record_template.py,sha256=pyzrtk-VFEHf9hrWTW6pwPKo2AH5cEKR0XI4ZG9nVHk,4753
75
- netbox_dns/models/registrar.py,sha256=zCSVa6NSN9sRJzvvuSUNK4LcHBbe0OvEiTbIcrrdk9k,1671
76
- netbox_dns/models/view.py,sha256=PtuO61vzcaqRvPRsHV72dvKkerQH7vp803MK9BvUnj4,2897
77
- netbox_dns/models/zone.py,sha256=UzwyByJGumkGF--g2wxGKEZ2UZGZ_QrrpmHgpITbgxY,28438
78
- netbox_dns/models/zone_template.py,sha256=kUSGb5Sc9GultId61bjgNMyaOjRReOqvVNje5APKZvM,3841
72
+ netbox_dns/models/__init__.py,sha256=wjwNsRttUVYQHZODZi806a_iUDoq_o7mdKObqh1N7N4,300
73
+ netbox_dns/models/contact.py,sha256=oNLyD_6TOTNQQTcCvv6TAC7OkzPTMIRy2NP5nwNKaNg,3009
74
+ netbox_dns/models/nameserver.py,sha256=yKo4Fwqnv5VtTndU2px7tRS3voF3Cal7OWQ6AImLwl0,3208
75
+ netbox_dns/models/record.py,sha256=j8sAeExtFFknMv2-dDhFvDOxOhXYgiKU63zd9sgpEcc,24453
76
+ netbox_dns/models/record_template.py,sha256=3t9VceviX3kNIo5o0VPVFupLFDqPxpHIVLp5U3pBKB4,4661
77
+ netbox_dns/models/registrar.py,sha256=T_oMUlTWTDixOVlIbEZGvOBdvUrKxRkkS41xgM2Oee8,1557
78
+ netbox_dns/models/view.py,sha256=SYmhNYyRCv0rSCK5jrHtug4QgfWCBbjsAjZEEHk02QU,2873
79
+ netbox_dns/models/zone.py,sha256=Vx9yC6YHzk3AViyMPy473oS9A6fxuPttK8O7jcG4cHE,28231
80
+ netbox_dns/models/zone_template.py,sha256=lkiSIfx8KM0Cs3Mb3dLBxKbSpcssVUzQiSmD5W46was,3753
79
81
  netbox_dns/navigation.py,sha256=EITDZkbpu4KCC9u4Noj7OORWnkL3EYT2RIRvYlTw34Q,5961
80
82
  netbox_dns/signals/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
81
- netbox_dns/signals/ipam_coupling.py,sha256=kJUKHUgq5XgWMhxB-312SPaZAYTLIYGgKO0lz2-z_rg,5594
83
+ netbox_dns/signals/ipam_autodns.py,sha256=OQIqAue4pA851rn-ZpVJYwtQdXAqEIaGwJepbqNOqig,4771
82
84
  netbox_dns/tables/__init__.py,sha256=s41w4o77tIwmhnLjsOsg08R9m3wrlomkkfCLTVQuPzc,196
83
- netbox_dns/tables/contact.py,sha256=Kukb3aT_qnxuklLodXFk6J4C8O5jBfK3BGSJjaScNa8,778
84
- netbox_dns/tables/nameserver.py,sha256=GGi8x8QXbrFoFjxueL1zd5L-hDZwXGs1PcLZ2DyI4JI,652
85
- netbox_dns/tables/record.py,sha256=0_EUQp5kbqWeWalH_PeMzU-0_3nVoNNv1IX6xGMiXIA,2743
86
- netbox_dns/tables/record_template.py,sha256=CcXvyGycwp16ZwQFdmdt5W5Tlt__i1sBi3mixVvht3E,1763
87
- netbox_dns/tables/registrar.py,sha256=Vtl3RKjhWzUDv4wAfjbNV1prZHf6SyGYmSS0XKccI9g,640
88
- netbox_dns/tables/view.py,sha256=dpk9wcd0K1PdUJgfFRbL_iFBUgE2OJP9rb_suu_T8ao,586
89
- netbox_dns/tables/zone.py,sha256=bVi4sLFdw61kfIiRJnoJOtgkVGGlTZcogw-cAzFtAEQ,1507
90
- netbox_dns/tables/zone_template.py,sha256=gezSSpbNkiHnstNq470OsTmkl13foFXTGx-NH8W87Hw,1204
91
- netbox_dns/template_content.py,sha256=jPOnKC8rbDEm169PoIys5NKCN36uUPH4_6NwR0oZ7N8,3654
85
+ netbox_dns/tables/contact.py,sha256=sPs7d1ZhVC5dOS37dPYFqebNd7WGvsV_eYzX_TMcbzY,804
86
+ netbox_dns/tables/nameserver.py,sha256=fFiE-yH-_GyRDaV4SVw094r6uH58Kx56NSWDGaMR58g,764
87
+ netbox_dns/tables/record.py,sha256=0Yg0qwZ8Vjz6pkZnmof4ZK1Hsvk9DNEzmJwoIwJZJFQ,3189
88
+ netbox_dns/tables/record_template.py,sha256=16Lu-WDjs2m9Uxx6WkURL39NlyJ8lWzj5Kl6C6lz3E8,2159
89
+ netbox_dns/tables/registrar.py,sha256=M-ckyQUs6dqjTCPf7bAr6UuLEA-q9f9CxKW7yp3rGoM,680
90
+ netbox_dns/tables/view.py,sha256=jf2S4TiOdMq6-wWk0ndR1uBJpkOx_f3pqAuM1nSXTBo,1178
91
+ netbox_dns/tables/zone.py,sha256=IeCiflrQBn1INV_PxoTySWQrDalykY4mDSG76VXC5WM,1877
92
+ netbox_dns/tables/zone_template.py,sha256=70hvS-xpeaLkcM6y0R9xsUMQVKgTgZJaWWNd99BfmzI,1479
93
+ netbox_dns/template_content.py,sha256=Lhrse5_Aw6L5xaemTD8-ZlTyFqJ-fVqp97TSRT6E7ek,3390
92
94
  netbox_dns/templates/netbox_dns/contact.html,sha256=fMHAQyLXIxohKoCTxFEnKetl9UVXeQgjasfpv_JONaw,2855
93
95
  netbox_dns/templates/netbox_dns/nameserver.html,sha256=DpTdetQVV_jKThDbi62LvbhiCay-1QxR-yiJEiPFm4w,1554
94
96
  netbox_dns/templates/netbox_dns/record/managed.html,sha256=G6LPG1koUGuzUiwYdv1okdVa4sKaofiQegDBnsFL0kA,89
95
97
  netbox_dns/templates/netbox_dns/record/related.html,sha256=Aqor8uGcuHQTHjlX-Xmni2Yp4N7lOBrMOqQiszrQOC0,742
96
- netbox_dns/templates/netbox_dns/record.html,sha256=WtEkWy_CstGWE9UDFsATxz0bNpP_Gx9joZusAYGHDFQ,5235
98
+ netbox_dns/templates/netbox_dns/record.html,sha256=o3z_D6Fqqn7nx1IwPXKQ75ZaPhU6kae0WpaWa3UMcxQ,5211
97
99
  netbox_dns/templates/netbox_dns/recordtemplate.html,sha256=9tkXtKqa5p3LdOU9REm99WSFwGJaH8OczpIqXZuXMcg,3099
98
100
  netbox_dns/templates/netbox_dns/registrar.html,sha256=O5veGmW59Pf5yN25ihPLvRIkA2P7xmSGv0G3NrRG8vI,2152
99
- netbox_dns/templates/netbox_dns/related_dns_objects.html,sha256=KSzlnw1cStrJa3poKkwrt_ycIH0oH0STWIHRNy3ks4g,806
100
- netbox_dns/templates/netbox_dns/view.html,sha256=XCa7Sg8fjSkhVqjLvw652FINQdWURLWdQqw8is82iaI,1499
101
+ netbox_dns/templates/netbox_dns/view/related.html,sha256=W9Ie2aOsFkWyYtBnZn38seQDBmyJkV9dqFDG-Dq3yMk,736
102
+ netbox_dns/templates/netbox_dns/view.html,sha256=8Ox9J-BWSutwOBbnwQL4BMydDMBMM2l4bbMwySkiP4k,2706
101
103
  netbox_dns/templates/netbox_dns/zone/base.html,sha256=n_E4aVYdGeZZl-ARE8sb4DgAAgPs92X1UEFepX3xIlM,495
102
104
  netbox_dns/templates/netbox_dns/zone/child.html,sha256=kH56PJFBGCjiRdIh7zCtClnZdfOChqN_sYslsyoz5gU,2147
103
105
  netbox_dns/templates/netbox_dns/zone/child_zone.html,sha256=b9CSGWEfWT7hLQ80gApMnu7mXM8w2LT-3UaOYe6HIRQ,510
@@ -108,30 +110,31 @@ netbox_dns/templates/netbox_dns/zone/rfc2317_child_zone.html,sha256=rWlmb3zRQbLY
108
110
  netbox_dns/templates/netbox_dns/zone.html,sha256=zPi1sLFnya-ytx8-Pcf_ujc1sKllCRuz48x2E-S1HSo,6285
109
111
  netbox_dns/templates/netbox_dns/zonetemplate.html,sha256=qjUWqrg4uDaIFt9-g0OBxTi86i_ctf2Ps4qHh11djQE,3081
110
112
  netbox_dns/urls/__init__.py,sha256=FDauSMt7a01YJR8_RWkk0-kSmIL2lr1bHF0OU5ROuQ8,610
111
- netbox_dns/urls/contact.py,sha256=jVBXgWxHosqASoAT3UE6bcsasQVDKG1e4g5K_SlbzjE,1067
112
- netbox_dns/urls/nameserver.py,sha256=-arhTF-q_h6IqcZ-CHD4GbBNCxltwRP-RoLY34KWITA,1294
113
- netbox_dns/urls/record.py,sha256=5HnwrsQKbB3jcCfUSwrArItTYsKBTQaa8WiRt7SBniI,1136
114
- netbox_dns/urls/record_template.py,sha256=kRAaienuN89WrOZGEcH1eZtiVlNsxsbZ1sjxWGxLKa0,1514
115
- netbox_dns/urls/registrar.py,sha256=qhf_Qh4CYKmKYNoFIkuJxVtq1V0PMDYmqXq7olB0zfg,1211
116
- netbox_dns/urls/view.py,sha256=_Urbxd1ZLC4dcb0x23ui2L0XaY8RJKKnDQtJETS-S-Q,937
117
- netbox_dns/urls/zone.py,sha256=EzZ_U5v9NfWB5TVAc0i35EI-SVyXl6KrI844sMT0x5Q,937
118
- netbox_dns/urls/zone_template.py,sha256=nGrIaincQxCabUsLJL9JODoeTToMRSPllm7kuiPzeII,1378
119
- netbox_dns/utilities/__init__.py,sha256=-6-qmb1yTAt9QEtGtokNFBQV_TSheobkLjbWFKEYpfw,1849
120
- netbox_dns/utilities/ipam_coupling.py,sha256=0XA5kmh2CzbhuhZmQuquNh4vPXBh20TVCA2RlM4pQdQ,3471
113
+ netbox_dns/urls/contact.py,sha256=OSQO-AkAhTaBruAdzVgcC7ip_OuiacvFI_ozgkWlNFU,1549
114
+ netbox_dns/urls/nameserver.py,sha256=BBbY-wqPqCquvLLv1_JhqToj7oDHhPNGCWHt0IfjBNM,1941
115
+ netbox_dns/urls/record.py,sha256=bDprohTso1N0GtPXH4X3TNHnkxopiOSQFXWItifEZ_k,1432
116
+ netbox_dns/urls/record_template.py,sha256=Z-7aA-rPIxRBCmXNUiQcHIgjYfai28Tf_sLtkl2ihDk,1827
117
+ netbox_dns/urls/registrar.py,sha256=u6B0zGGYNUJIKTo9uGiUeZLPD0QMGaQOAPShGEy4NaA,1728
118
+ netbox_dns/urls/view.py,sha256=8AeBnOHWusXXQs4JXpNfMSHqszXAY1GDXGWmNsMulQ8,1327
119
+ netbox_dns/urls/zone.py,sha256=rmB1BkzmWNG06ILUf-39Aj6-SBFkwQouyixMQiamqPc,2005
120
+ netbox_dns/urls/zone_template.py,sha256=w3Gu8qfLCWyHofeLkGZd1HpYSlcslomVlBQJZyqh8kk,1690
121
+ netbox_dns/utilities/__init__.py,sha256=M9T8PUFlGddtENzEznHAPbEsz1VFrPcmbD-BGLCsvB4,55
122
+ netbox_dns/utilities/conversions.py,sha256=NS37SoMqXc13wNWRkKnLfyQbVi6QKD33fu5ovTKRo74,1979
123
+ netbox_dns/utilities/ipam_autodns.py,sha256=akS_4o0jtuPYhJVe0mXn75loU_opFFTYQR35MqYPfOI,5993
121
124
  netbox_dns/validators/__init__.py,sha256=Mr8TvmcJTa8Pubj8TzbFBKfbHhEmGcr5JdQvczEJ39A,72
122
- netbox_dns/validators/dns_name.py,sha256=4JojiP6pb1Z1m_PmDv4g65Ckhg5rQkVqm8JAwHW28nA,3432
125
+ netbox_dns/validators/dns_name.py,sha256=B4A0BOW5pKDjjukvksriRtnLzkYTx_pFjh7eqKo6PBE,3069
123
126
  netbox_dns/validators/dns_value.py,sha256=y2Zga4hmywqDrTBXcMC-sWaFbw4eoY8pySq7cWnMP8Y,2822
124
127
  netbox_dns/validators/rfc2317.py,sha256=ivylEiNKlmX2x41rwqDrFkD5CFf9FtpNEfsKHX_prbE,585
125
128
  netbox_dns/views/__init__.py,sha256=s41w4o77tIwmhnLjsOsg08R9m3wrlomkkfCLTVQuPzc,196
126
- netbox_dns/views/contact.py,sha256=kQDm_PHxBFDyAXf7rZdEyVdZyNNxpIvWy63qbUJZbjY,2444
127
- netbox_dns/views/nameserver.py,sha256=CeZsKTciW85LFX9tMaGkiW1DUDT77jghtHnPCHFTAP8,3405
128
- netbox_dns/views/record.py,sha256=YpVkC6Q3rUG9F_p1dqg35o3PsST_h5hPvsB5RIsaCb4,4808
129
- netbox_dns/views/record_template.py,sha256=amYQc8dEwjI8msTSukcq4FwVqKF9eHSlaMBOFkHe0CE,2510
130
- netbox_dns/views/registrar.py,sha256=ICaX9weZugWJXyRBjpHM5vD3Yz0hnhKKgb5e5DZf6zI,2295
131
- netbox_dns/views/view.py,sha256=gPC9itG3TbihYtuAIGdbu-OwIvrIkswTdre8-ZfhQF4,2247
132
- netbox_dns/views/zone.py,sha256=Na286tp_XcnT-4FIgXsvh1wPByir0RtBil0B2JhfuZE,5495
133
- netbox_dns/views/zone_template.py,sha256=UaPEReBFoJP1k7MC8jS-iT3KQtJqSFu67jjCRiTCH4c,2118
134
- netbox_plugin_dns-1.0.7.dist-info/LICENSE,sha256=I3tDu11bZfhFm3EkV4zOD5TmWgLjnUNLEFwrdjniZYs,1112
135
- netbox_plugin_dns-1.0.7.dist-info/METADATA,sha256=dRqfwe0fVecsErbyt7WaVRG3w960ld1GgdWN6gRhYQA,6404
136
- netbox_plugin_dns-1.0.7.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
137
- netbox_plugin_dns-1.0.7.dist-info/RECORD,,
129
+ netbox_dns/views/contact.py,sha256=qM9F6MQBvO8ERR7quGLdQ5kW4roNLJ61As8m0qQTapg,2471
130
+ netbox_dns/views/nameserver.py,sha256=DFr0eybMshc1FW06g4cy9Nk4VRMxRqakI5KtHFiAVRc,3286
131
+ netbox_dns/views/record.py,sha256=fHMafCC14C7d6oXbXc2vN-T70OAOaTY77_m3Dct-oiQ,4590
132
+ netbox_dns/views/record_template.py,sha256=BkemTBEramLhYqB6HrA80sNgtduW1ZOJwbYs3i7srik,2510
133
+ netbox_dns/views/registrar.py,sha256=yRQgFm3vgBD21ZQex9asjs0QWegvSHlcyHXLnjvc5xs,2324
134
+ netbox_dns/views/view.py,sha256=I_hVZYFJF8GTnlUKPrTgBk_x9UDCbZXM8R7U5Bhizjs,2107
135
+ netbox_dns/views/zone.py,sha256=SKhf_WHcFVpKqFTuUMf-Dmxu1AwFHBeo_DtD8UGFrJ8,5483
136
+ netbox_dns/views/zone_template.py,sha256=qvXl-bpc1fMc1WFngynj4-Q3-JJDgKdT-r54s4M1D0s,2118
137
+ netbox_plugin_dns-1.1.0b1.dist-info/LICENSE,sha256=I3tDu11bZfhFm3EkV4zOD5TmWgLjnUNLEFwrdjniZYs,1112
138
+ netbox_plugin_dns-1.1.0b1.dist-info/METADATA,sha256=LNhAMiqES0BIvNc1JrGeHLss0EoAqnOM6TNr8IlYdrU,6393
139
+ netbox_plugin_dns-1.1.0b1.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
140
+ netbox_plugin_dns-1.1.0b1.dist-info/RECORD,,