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.
- netbox_dns/__init__.py +21 -5
- netbox_dns/api/nested_serializers.py +16 -17
- netbox_dns/api/serializers.py +1 -0
- netbox_dns/api/serializers_/prefix.py +18 -0
- netbox_dns/api/serializers_/record.py +0 -1
- netbox_dns/api/serializers_/view.py +34 -2
- netbox_dns/api/urls.py +3 -0
- netbox_dns/api/views.py +36 -0
- netbox_dns/fields/__init__.py +1 -0
- netbox_dns/fields/ipam.py +18 -0
- netbox_dns/filtersets/record.py +1 -1
- netbox_dns/filtersets/view.py +16 -0
- netbox_dns/forms/view.py +116 -4
- netbox_dns/forms/zone.py +0 -8
- netbox_dns/graphql/schema.py +40 -16
- netbox_dns/graphql/types.py +1 -0
- netbox_dns/management/commands/setup_autodns.py +120 -0
- netbox_dns/migrations/0007_view_prefixes.py +18 -0
- netbox_dns/models/__init__.py +0 -2
- netbox_dns/models/contact.py +3 -9
- netbox_dns/models/nameserver.py +3 -8
- netbox_dns/models/record.py +71 -17
- netbox_dns/models/record_template.py +1 -4
- netbox_dns/models/registrar.py +1 -7
- netbox_dns/models/view.py +7 -9
- netbox_dns/models/zone.py +28 -29
- netbox_dns/models/zone_template.py +5 -8
- netbox_dns/signals/ipam_autodns.py +138 -0
- netbox_dns/tables/contact.py +1 -0
- netbox_dns/tables/nameserver.py +7 -1
- netbox_dns/tables/record.py +30 -10
- netbox_dns/tables/record_template.py +17 -0
- netbox_dns/tables/registrar.py +2 -0
- netbox_dns/tables/view.py +32 -3
- netbox_dns/tables/zone.py +15 -0
- netbox_dns/tables/zone_template.py +16 -2
- netbox_dns/template_content.py +28 -39
- netbox_dns/templates/netbox_dns/record.html +6 -6
- netbox_dns/templates/netbox_dns/view/related.html +17 -0
- netbox_dns/templates/netbox_dns/view.html +29 -0
- netbox_dns/urls/contact.py +32 -10
- netbox_dns/urls/nameserver.py +38 -14
- netbox_dns/urls/record.py +19 -7
- netbox_dns/urls/record_template.py +27 -18
- netbox_dns/urls/registrar.py +35 -11
- netbox_dns/urls/view.py +22 -8
- netbox_dns/urls/zone.py +46 -8
- netbox_dns/urls/zone_template.py +26 -16
- netbox_dns/utilities/__init__.py +2 -74
- netbox_dns/utilities/conversions.py +83 -0
- netbox_dns/utilities/ipam_autodns.py +205 -0
- netbox_dns/validators/dns_name.py +0 -9
- netbox_dns/views/contact.py +1 -0
- netbox_dns/views/nameserver.py +3 -7
- netbox_dns/views/record.py +2 -9
- netbox_dns/views/record_template.py +1 -1
- netbox_dns/views/registrar.py +1 -0
- netbox_dns/views/view.py +1 -6
- netbox_dns/views/zone.py +6 -7
- netbox_dns/views/zone_template.py +2 -2
- {netbox_plugin_dns-1.0.7.dist-info → netbox_plugin_dns-1.1.0b1.dist-info}/METADATA +2 -2
- {netbox_plugin_dns-1.0.7.dist-info → netbox_plugin_dns-1.1.0b1.dist-info}/RECORD +64 -61
- netbox_dns/management/commands/setup_coupling.py +0 -109
- netbox_dns/migrations/0007_alter_ordering_options.py +0 -25
- netbox_dns/signals/ipam_coupling.py +0 -168
- netbox_dns/templates/netbox_dns/related_dns_objects.html +0 -21
- netbox_dns/utilities/ipam_coupling.py +0 -112
- {netbox_plugin_dns-1.0.7.dist-info → netbox_plugin_dns-1.1.0b1.dist-info}/LICENSE +0 -0
- {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
|
):
|
netbox_dns/views/contact.py
CHANGED
netbox_dns/views/nameserver.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 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")
|
netbox_dns/views/record.py
CHANGED
|
@@ -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()
|
netbox_dns/views/registrar.py
CHANGED
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.
|
|
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 ::
|
|
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=
|
|
2
|
-
netbox_dns/api/nested_serializers.py,sha256
|
|
3
|
-
netbox_dns/api/serializers.py,sha256=
|
|
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_/
|
|
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=
|
|
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=
|
|
14
|
-
netbox_dns/api/views.py,sha256=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
39
|
-
netbox_dns/forms/zone.py,sha256=
|
|
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=
|
|
44
|
-
netbox_dns/graphql/types.py,sha256=
|
|
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/
|
|
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/
|
|
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=
|
|
71
|
-
netbox_dns/models/contact.py,sha256=
|
|
72
|
-
netbox_dns/models/nameserver.py,sha256=
|
|
73
|
-
netbox_dns/models/record.py,sha256=
|
|
74
|
-
netbox_dns/models/record_template.py,sha256=
|
|
75
|
-
netbox_dns/models/registrar.py,sha256=
|
|
76
|
-
netbox_dns/models/view.py,sha256=
|
|
77
|
-
netbox_dns/models/zone.py,sha256=
|
|
78
|
-
netbox_dns/models/zone_template.py,sha256=
|
|
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/
|
|
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=
|
|
84
|
-
netbox_dns/tables/nameserver.py,sha256=
|
|
85
|
-
netbox_dns/tables/record.py,sha256=
|
|
86
|
-
netbox_dns/tables/record_template.py,sha256=
|
|
87
|
-
netbox_dns/tables/registrar.py,sha256=
|
|
88
|
-
netbox_dns/tables/view.py,sha256=
|
|
89
|
-
netbox_dns/tables/zone.py,sha256=
|
|
90
|
-
netbox_dns/tables/zone_template.py,sha256=
|
|
91
|
-
netbox_dns/template_content.py,sha256=
|
|
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=
|
|
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/
|
|
100
|
-
netbox_dns/templates/netbox_dns/view.html,sha256=
|
|
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=
|
|
112
|
-
netbox_dns/urls/nameserver.py,sha256
|
|
113
|
-
netbox_dns/urls/record.py,sha256=
|
|
114
|
-
netbox_dns/urls/record_template.py,sha256=
|
|
115
|
-
netbox_dns/urls/registrar.py,sha256=
|
|
116
|
-
netbox_dns/urls/view.py,sha256=
|
|
117
|
-
netbox_dns/urls/zone.py,sha256=
|
|
118
|
-
netbox_dns/urls/zone_template.py,sha256=
|
|
119
|
-
netbox_dns/utilities/__init__.py,sha256
|
|
120
|
-
netbox_dns/utilities/
|
|
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=
|
|
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=
|
|
127
|
-
netbox_dns/views/nameserver.py,sha256=
|
|
128
|
-
netbox_dns/views/record.py,sha256=
|
|
129
|
-
netbox_dns/views/record_template.py,sha256=
|
|
130
|
-
netbox_dns/views/registrar.py,sha256=
|
|
131
|
-
netbox_dns/views/view.py,sha256=
|
|
132
|
-
netbox_dns/views/zone.py,sha256=
|
|
133
|
-
netbox_dns/views/zone_template.py,sha256=
|
|
134
|
-
netbox_plugin_dns-1.
|
|
135
|
-
netbox_plugin_dns-1.
|
|
136
|
-
netbox_plugin_dns-1.
|
|
137
|
-
netbox_plugin_dns-1.
|
|
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,,
|