netbox-plugin-dns 1.2.2__py3-none-any.whl → 1.2.3__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 CHANGED
@@ -7,7 +7,7 @@ from ipam.choices import IPAddressStatusChoices
7
7
 
8
8
  from netbox_dns.choices import RecordTypeChoices, RecordStatusChoices, ZoneStatusChoices
9
9
 
10
- __version__ = "1.2.2"
10
+ __version__ = "1.2.3"
11
11
 
12
12
 
13
13
  def _check_list(setting):
netbox_dns/forms/zone.py CHANGED
@@ -35,7 +35,7 @@ from netbox_dns.models import (
35
35
  ZoneTemplate,
36
36
  )
37
37
  from netbox_dns.choices import ZoneStatusChoices
38
- from netbox_dns.utilities import name_to_unicode
38
+ from netbox_dns.utilities import name_to_unicode, network_to_reverse
39
39
  from netbox_dns.fields import RFC2317NetworkFormField
40
40
  from netbox_dns.validators import validate_ipv4, validate_prefix, validate_rfc2317
41
41
 
@@ -307,6 +307,13 @@ class ZoneForm(ZoneTemplateUpdateMixin, TenancyForm, NetBoxModelForm):
307
307
  else self.initial["default_ttl"]
308
308
  )
309
309
 
310
+ def clean_name(self):
311
+ name = self.cleaned_data["name"]
312
+ if reverse_name := network_to_reverse(name):
313
+ return reverse_name
314
+ else:
315
+ return name
316
+
310
317
  class Meta:
311
318
  model = Zone
312
319
 
@@ -6,8 +6,3 @@ from .registration_contact import *
6
6
  from .registrar import *
7
7
  from .zone_template import *
8
8
  from .record_template import *
9
-
10
- # +
11
- # Backwards compatibility fix, will be removed in version 1.1
12
- # -
13
- from netbox_dns.choices import *
@@ -23,6 +23,7 @@
23
23
  <td style="word-break:break-all;">{{ object.description }}</td>
24
24
  </tr>
25
25
  {% endif %}
26
+ {% if object.tenant %}
26
27
  <tr>
27
28
  <th scope="row">{% trans "Tenant" %}</th>
28
29
  <td>
@@ -32,6 +33,7 @@
32
33
  {{ object.tenant|linkify|placeholder }}
33
34
  </td>
34
35
  </tr>
36
+ {% endif %}
35
37
  </table>
36
38
  </div>
37
39
  {% include 'inc/panels/custom_fields.html' %}
@@ -63,17 +63,6 @@
63
63
  <td><a href="{% url 'plugins:netbox_dns:zone_records' pk=object.zone.pk %}">{{ object.zone }}</a></td>
64
64
  {% endif %}
65
65
  </tr>
66
- {% if not object.managed or object.tenant %}
67
- <tr>
68
- <th scope="row">{% trans "Tenant" %}</th>
69
- <td>
70
- {% if object.tenant.group %}
71
- {{ object.tenant.group|linkify }} /
72
- {% endif %}
73
- {{ object.tenant|linkify|placeholder }}
74
- </td>
75
- </tr>
76
- {% endif %}
77
66
  <tr>
78
67
  <th scope="row">{% trans "Type" %}</th>
79
68
  <td>{{ object.type }}</td>
@@ -82,16 +71,33 @@
82
71
  <th scope="row">{% trans "Value" %}</th>
83
72
  <td style="word-break:break-all;">{{ object.value }}</td>
84
73
  </tr>
74
+ {% if unicode_value %}
75
+ <tr>
76
+ <th scope="row">{% trans "Unicode Value" %}</th>
77
+ <td style="word-break:break-all;">{{ unicode_value }}</td>
78
+ </tr>
79
+ {% endif %}
85
80
  {% if cname_warning %}
86
81
  <tr class="text-warning">
87
82
  <th scope="row">{% trans "Warning" %}</th>
88
83
  <td>{{ cname_warning }}</td>
89
84
  </tr>
90
85
  {% endif %}
91
- {% if unicode_value %}
86
+ {% if object.description %}
92
87
  <tr>
93
- <th scope="row">{% trans "Unicode Value" %}</th>
94
- <td style="word-break:break-all;">{{ unicode_value }}</td>
88
+ <th scope="row">{% trans "Description" %}</th>
89
+ <td style="word-break:break-all;">{{ object.description }}</td>
90
+ </tr>
91
+ {% endif %}
92
+ {% if object.tenant %}
93
+ <tr>
94
+ <th scope="row">{% trans "Tenant" %}</th>
95
+ <td>
96
+ {% if object.tenant.group %}
97
+ {{ object.tenant.group|linkify }} /
98
+ {% endif %}
99
+ {{ object.tenant|linkify|placeholder }}
100
+ </td>
95
101
  </tr>
96
102
  {% endif %}
97
103
  <tr>
@@ -132,12 +138,6 @@
132
138
  <th scope="row">Status</th>
133
139
  <td>{% badge object.get_status_display bg_color=object.get_status_color %}</td>
134
140
  </tr>
135
- {% if object.description %}
136
- <tr>
137
- <th scope="row">{% trans "Description" %}</th>
138
- <td style="word-break:break-all;">{{ object.description }}</td>
139
- </tr>
140
- {% endif %}
141
141
  </table>
142
142
  </div>
143
143
  {% if cname_target_table %}
@@ -25,6 +25,12 @@
25
25
  <td style="word-break:break-all;">{{ unicode_name }}</td>
26
26
  </tr>
27
27
  {% endif %}
28
+ {% if object.description %}
29
+ <tr>
30
+ <th scope="row">{% trans "Description" %}</th>
31
+ <td style="word-break:break-all;">{{ object.description }}</td>
32
+ </tr>
33
+ {% endif %}
28
34
  {% if object.tenant %}
29
35
  <tr>
30
36
  <th scope="row">{% trans "Tenant" %}</th>
@@ -64,12 +70,6 @@
64
70
  <th scope="row">{% trans "Status" %}</th>
65
71
  <td>{% badge object.get_status_display bg_color=object.get_status_color %}</td>
66
72
  </tr>
67
- {% if object.description %}
68
- <tr>
69
- <th scope="row">{% trans "Description" %}</th>
70
- <td style="word-break:break-all;">{{ object.description }}</td>
71
- </tr>
72
- {% endif %}
73
73
  </table>
74
74
  </div>
75
75
  {% include 'inc/panels/custom_fields.html' %}
@@ -21,6 +21,7 @@
21
21
  <td style="word-break:break-all;">{{ object.description }}</td>
22
22
  </tr>
23
23
  {% endif %}
24
+ {% if object.tenant %}
24
25
  <tr>
25
26
  <th scope="row">{% trans "Tenant" %}</th>
26
27
  <td>
@@ -30,6 +31,7 @@
30
31
  {{ object.tenant|linkify|placeholder }}
31
32
  </td>
32
33
  </tr>
34
+ {% endif %}
33
35
  </table>
34
36
  </div>
35
37
  {% include 'inc/panels/custom_fields.html' %}
@@ -36,6 +36,7 @@
36
36
  <td style="word-break:break-all;">{{ object.description }}</td>
37
37
  </tr>
38
38
  {% endif %}
39
+ {% if object.tenant %}
39
40
  <tr>
40
41
  <th scope="row">{% trans "Tenant" %}</th>
41
42
  <td>
@@ -45,6 +46,7 @@
45
46
  {{ object.tenant|linkify|placeholder }}
46
47
  </td>
47
48
  </tr>
49
+ {% endif %}
48
50
  <tr>
49
51
  <th scope="row">{% trans "Status" %}</th>
50
52
  <td>{% badge object.get_status_display bg_color=object.get_status_color %}</td>
@@ -91,10 +93,6 @@
91
93
  <th scope="row">{% trans "Default TTL" %}</th>
92
94
  <td>{{ object.default_ttl }}</td>
93
95
  </tr>
94
- <tr>
95
- <th scope="row">{% trans "Description" %}</th>
96
- <td>{{ object.description }}</td>
97
- </tr>
98
96
  </table>
99
97
  </div>
100
98
 
@@ -21,6 +21,7 @@
21
21
  <td style="word-break:break-all;">{{ object.description }}</td>
22
22
  </tr>
23
23
  {% endif %}
24
+ {% if object.tenant %}
24
25
  <tr>
25
26
  <th scope="row">{% trans "Tenant" %}</th>
26
27
  <td>
@@ -30,6 +31,7 @@
30
31
  {{ object.tenant|linkify|placeholder }}
31
32
  </td>
32
33
  </tr>
34
+ {% endif %}
33
35
  <tr>
34
36
  <th scope="row">{% trans "Nameservers" %}</th>
35
37
  <td>
@@ -40,10 +42,6 @@
40
42
  </table>
41
43
  </td>
42
44
  </tr>
43
- <tr>
44
- <th scope="row">{% trans "Description" %}</th>
45
- <td>{{ object.description }}</td>
46
- </tr>
47
45
  </table>
48
46
  </div>
49
47
 
@@ -13,6 +13,7 @@ __all__ = (
13
13
  "name_to_unicode",
14
14
  "value_to_unicode",
15
15
  "normalize_name",
16
+ "network_to_reverse",
16
17
  )
17
18
 
18
19
 
@@ -81,3 +82,27 @@ def normalize_name(name):
81
82
 
82
83
  except DNSException as exc:
83
84
  raise NameFormatError from exc
85
+
86
+
87
+ def network_to_reverse(network):
88
+ try:
89
+ ip_network = IPNetwork(network)
90
+ except AddrFormatError:
91
+ return
92
+
93
+ if ip_network.first == ip_network.last:
94
+ return
95
+
96
+ labels = None
97
+ match ip_network.version:
98
+ case 4:
99
+ if not ip_network.prefixlen % 8:
100
+ labels = 3 + ip_network.prefixlen // 8
101
+ case 6:
102
+ if not ip_network.prefixlen % 4:
103
+ labels = 3 + ip_network.prefixlen // 4
104
+ case _:
105
+ return
106
+
107
+ if labels:
108
+ return ".".join(ip_network[0].reverse_dns.split(".")[-labels:])
@@ -1,4 +1,5 @@
1
1
  import re
2
+ from socket import inet_aton
2
3
 
3
4
  from django.core.exceptions import ValidationError
4
5
  from django.utils.translation import gettext as _
@@ -95,6 +96,14 @@ def validate_domain_name(
95
96
  ):
96
97
  return
97
98
 
99
+ try:
100
+ inet_aton(name)
101
+ raise ValidationError(
102
+ _("{name} is not a valid DNS domain name").format(name=name)
103
+ )
104
+ except OSError:
105
+ pass
106
+
98
107
  label, zone_label = _get_label(always_tolerant=always_tolerant)
99
108
  if zone_name:
100
109
  regex = rf"^{zone_label}(\.{zone_label})*\.?$"
@@ -83,6 +83,7 @@ class NameServerBulkEditView(generic.BulkEditView):
83
83
  @register_model_view(NameServer, "bulk_delete", path="delete", detail=False)
84
84
  class NameServerBulkDeleteView(generic.BulkDeleteView):
85
85
  queryset = NameServer.objects.all()
86
+ filterset = NameServerFilterSet
86
87
  table = NameServerTable
87
88
 
88
89
 
@@ -198,6 +198,7 @@ class RecordBulkEditView(generic.BulkEditView):
198
198
  @register_model_view(Record, "bulk_delete", path="delete", detail=False)
199
199
  class RecordBulkDeleteView(generic.BulkDeleteView):
200
200
  queryset = Record.objects.filter(managed=False)
201
+ filterset = RecordFilterSet
201
202
  table = RecordTable
202
203
 
203
204
 
@@ -90,4 +90,5 @@ class RecordTemplateBulkEditView(generic.BulkEditView):
90
90
  @register_model_view(RecordTemplate, "bulk_delete", path="delete", detail=False)
91
91
  class RecordTemplateBulkDeleteView(generic.BulkDeleteView):
92
92
  queryset = RecordTemplate.objects.all()
93
+ filterset = RecordTemplateFilterSet
93
94
  table = RecordTemplateTable
@@ -72,6 +72,7 @@ class RegistrarBulkEditView(generic.BulkEditView):
72
72
  @register_model_view(Registrar, "bulk_delete", path="delete", detail=False)
73
73
  class RegistrarBulkDeleteView(generic.BulkDeleteView):
74
74
  queryset = Registrar.objects.all()
75
+ filterset = RegistrarFilterSet
75
76
  table = RegistrarTable
76
77
 
77
78
 
@@ -73,6 +73,7 @@ class RegistrationContactBulkEditView(generic.BulkEditView):
73
73
  @register_model_view(RegistrationContact, "bulk_delete", path="delete", detail=False)
74
74
  class RegistrationContactBulkDeleteView(generic.BulkDeleteView):
75
75
  queryset = RegistrationContact.objects.all()
76
+ filterset = RegistrationContactFilterSet
76
77
  table = RegistrationContactTable
77
78
 
78
79
 
netbox_dns/views/view.py CHANGED
@@ -76,6 +76,7 @@ class ViewBulkEditView(generic.BulkEditView):
76
76
  @register_model_view(View, "bulk_delete", path="delete", detail=False)
77
77
  class ViewBulkDeleteView(generic.BulkDeleteView):
78
78
  queryset = View.objects.all()
79
+ filterset = ViewFilterSet
79
80
  table = ViewTable
80
81
 
81
82
 
netbox_dns/views/zone.py CHANGED
@@ -101,6 +101,7 @@ class ZoneBulkEditView(generic.BulkEditView):
101
101
  @register_model_view(Zone, "bulk_delete", path="delete", detail=False)
102
102
  class ZoneBulkDeleteView(generic.BulkDeleteView):
103
103
  queryset = Zone.objects.all()
104
+ filterset = ZoneFilterSet
104
105
  table = ZoneTable
105
106
 
106
107
 
@@ -80,4 +80,5 @@ class ZoneTemplateBulkEditView(generic.BulkEditView):
80
80
  @register_model_view(ZoneTemplate, "bulk_delete", path="delete", detail=False)
81
81
  class ZoneTemplateBulkDeleteView(generic.BulkDeleteView):
82
82
  queryset = ZoneTemplate.objects.all()
83
+ filterset = ZoneTemplateFilterSet
83
84
  table = ZoneTemplateTable
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: netbox-plugin-dns
3
- Version: 1.2.2
3
+ Version: 1.2.3
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
@@ -69,7 +69,7 @@ For integration with a large number of DNS server implementations integration to
69
69
  * NetBox 4.2.0 or higher
70
70
  * Python 3.10 or higher
71
71
 
72
- ## Compatibility with earlier NetBox Versions
72
+ ## Compatibility with NetBox Versions
73
73
 
74
74
  NetBox Version | NetBox DNS Version | Comment
75
75
  -------------- | ------------------ | -------
@@ -78,6 +78,7 @@ NetBox Version | NetBox DNS Version | Comment
78
78
  3.7 | 0.22 |
79
79
  4.0 - 4.1 | 1.0 | Supports legacy IPAM Coupling
80
80
  4.0 - 4.1 | 1.1 | Supports IPAM DNSsync
81
+ 4.2 | 1.2 |
81
82
 
82
83
  ## Installation & Configuration
83
84
 
@@ -1,4 +1,4 @@
1
- netbox_dns/__init__.py,sha256=WLiNzOodcLZS1ifW8vje3J16M5o4dDYyPmtG8GcMbpY,3053
1
+ netbox_dns/__init__.py,sha256=SxQkUEgRHEb5inend06jFceNW7xYaqbIBvrnxPCD9hA,3053
2
2
  netbox_dns/apps.py,sha256=JCW5eS-AQBUubDJve1DjP-IRFKTFGQh1NLGWzJpC5MI,151
3
3
  netbox_dns/navigation.py,sha256=36clAzlWftW94_VZ3EHu8_btzzA_dah50CLTfoov-O4,6226
4
4
  netbox_dns/template_content.py,sha256=T06L7-m4eGrLMeGsCvPpQLAGfn3S2FL7z0Cd1hhbisY,4225
@@ -41,7 +41,7 @@ netbox_dns/forms/record_template.py,sha256=uN6ZSepNilQuqyfPpW-pMfmTRWo0IrDxp1LdO
41
41
  netbox_dns/forms/registrar.py,sha256=GaRH3w5zlhrpwy_U0pxlrl1DrAEaMB78MUlnGxBRwZI,3949
42
42
  netbox_dns/forms/registration_contact.py,sha256=IhNAqElY7hOdpDG0jwWMdy3y2mB43xmjUhj3lsgJ3SE,5906
43
43
  netbox_dns/forms/view.py,sha256=GacwKHXSDvxQEs-d3ys7rietqA_MzpSd0XjWaSsIbU0,10339
44
- netbox_dns/forms/zone.py,sha256=8_-C2iy_ByMbjIea33xiGDYXhC69NdqhjQz-nOPwoMw,25011
44
+ netbox_dns/forms/zone.py,sha256=FEKDdlyK_dmaVNbqU6aTrqaHRv5DtDmTOtTacPLRopg,25222
45
45
  netbox_dns/forms/zone_template.py,sha256=49vhM-Lc4JAGZD-al4QpPDLfwmpu82JNuX-bxpwabmc,8609
46
46
  netbox_dns/graphql/__init__.py,sha256=jghYD6uOSAis6YyLbtI3YJGZfwPw1uL2FBRsHs1EhNk,514
47
47
  netbox_dns/graphql/filters.py,sha256=fHCjFIwbPBJJMk2W7HI8LhrfFhCtQtCM9IE8ZMgVafc,1766
@@ -80,7 +80,7 @@ netbox_dns/migrations/0029_record_fqdn.py,sha256=UAAU38ekKQyiYDOJlcrz6Qbk4bqZfSH
80
80
  netbox_dns/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
81
81
  netbox_dns/mixins/__init__.py,sha256=LxTEfpod_RHCyMtnzDljv0_dwqp2z3Q6tqbXW8LTGD8,35
82
82
  netbox_dns/mixins/object_modification.py,sha256=AR64fU5f7g-scNAj9b54eSoS9dpjyOpqrxXVXPcOhY8,1807
83
- netbox_dns/models/__init__.py,sha256=5Ns9RaemTe5L0L3c6a38RxembWhV-sX9cqfjl05aPQw,313
83
+ netbox_dns/models/__init__.py,sha256=iTTJNgUfPAmU4n41usqDSGPvncd4Wpsb9f43ryVDDOs,209
84
84
  netbox_dns/models/nameserver.py,sha256=GKCWPKqg8WLVQS6UYRUyTdVb_865p2io06yYp5Z9b80,3407
85
85
  netbox_dns/models/record.py,sha256=7LCLc3mLbgHx5yCMzIItQTB5Jzg8P-1uWGhfYeGpN4U,29415
86
86
  netbox_dns/models/record_template.py,sha256=PC4369q_LIJkImp1_jhiTTwy083MXIGpGADnbDHMbqI,5104
@@ -101,14 +101,14 @@ netbox_dns/tables/registration_contact.py,sha256=n_FKE90j6KNgPKRVq1WXg4vnOzFE238
101
101
  netbox_dns/tables/view.py,sha256=gsuWQWAk3RstNIKzBDOHNHR2D3ykX6WigYLMj0VhQFs,1148
102
102
  netbox_dns/tables/zone.py,sha256=_WihxcaUoQ2pgNyufXau8-yDqgIUMU6HAmbK5jxfIFM,1965
103
103
  netbox_dns/tables/zone_template.py,sha256=l9MC03E0UE_cZoh7YI4DsiccvaUxZZZwf-AAZ7OhgC4,1504
104
- netbox_dns/templates/netbox_dns/nameserver.html,sha256=cQM8p3aHgnmxY2L1951_kDULg2DPl3kpncPQBu6NGAk,1639
105
- netbox_dns/templates/netbox_dns/record.html,sha256=y2QhJ4fL8Hjd2dKTtENktQ9ru0ZdS_l-7T9_IqJQSy4,6572
106
- netbox_dns/templates/netbox_dns/recordtemplate.html,sha256=jQB42mBNlSt-Tq_uQFIyylEPQYqWP9BVD_W5As-M2Qc,3708
104
+ netbox_dns/templates/netbox_dns/nameserver.html,sha256=MawPiuAmjFrbv0zRi-7xkm8vr-dT1tlEno8EcoQ9peU,1714
105
+ netbox_dns/templates/netbox_dns/record.html,sha256=1KBT4xDooTX9kt1cUoPD2-6QnMizPmbItA0JAAgRzfw,6550
106
+ netbox_dns/templates/netbox_dns/recordtemplate.html,sha256=a29PAUl-KI_I1lxWpVdPp2loJtzgis9DG9erOWrOZM0,3708
107
107
  netbox_dns/templates/netbox_dns/registrar.html,sha256=4kJuj3biiDxQrIMQEQUEmF4iGRE4psr6Fh0CBP1evz8,2308
108
108
  netbox_dns/templates/netbox_dns/registrationcontact.html,sha256=sljVp_MrPSJRc2vJCPFXq9MiWOw4wjbr1kI_YStBntw,3094
109
- netbox_dns/templates/netbox_dns/view.html,sha256=TslfDC0ZzGU59iO_OcaX8jvt6fTjWot-wYRqRGRYvLE,3245
110
- netbox_dns/templates/netbox_dns/zone.html,sha256=BushtUbicj9zK6s50LKiaJhs25J0JY3-QHYCnUu8fKY,6991
111
- netbox_dns/templates/netbox_dns/zonetemplate.html,sha256=z_VJEkf_yNjL9xoVMHG4VHQvuXwBSarA_SoPbjutBgA,3667
109
+ netbox_dns/templates/netbox_dns/view.html,sha256=1MuzOYNQezRrryNjlklgxErjGTFoVnwqcxf4qceuglw,3320
110
+ netbox_dns/templates/netbox_dns/zone.html,sha256=Ci8MbZgd34vJh67F44_f7Tb4VvV4N14-H-Zh6-qDZsM,6894
111
+ netbox_dns/templates/netbox_dns/zonetemplate.html,sha256=rN8fSO7hp2KHTiExstMTyNEhniJFZgkpCFs8UHPAri0,3570
112
112
  netbox_dns/templates/netbox_dns/record/managed.html,sha256=uwpxQTxyfAXkWqThLT-T2ZssKNUhXTDDMnLWJSVuDNU,119
113
113
  netbox_dns/templates/netbox_dns/record/related.html,sha256=R59aPhE4CyIZtTH0ncwDyS6_wAe_Y-oZjuN_j4qk8iA,1158
114
114
  netbox_dns/templates/netbox_dns/view/button.html,sha256=EMOB5x78XpyfN1qi-pY1CKKKLjyHo9rFUa4Uhq6rFMc,322
@@ -125,24 +125,24 @@ netbox_dns/templates/netbox_dns/zone/rfc2317_child_zone.html,sha256=rWlmb3zRQbLY
125
125
  netbox_dns/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
126
126
  netbox_dns/templatetags/netbox_dns.py,sha256=DND1DMPzv636Rak3M6Hor_Vw6pjqUfSTquofIw4dIsA,223
127
127
  netbox_dns/utilities/__init__.py,sha256=cSGf-nGaRWx9b-Xrh3dLMJYoWNsZ6FF-qdmV4F1uOgg,74
128
- netbox_dns/utilities/conversions.py,sha256=NS37SoMqXc13wNWRkKnLfyQbVi6QKD33fu5ovTKRo74,1979
128
+ netbox_dns/utilities/conversions.py,sha256=FXvYCo7WLtvcf63zoQBkb4rr_TxxzXz8imZAfKGpk7E,2596
129
129
  netbox_dns/utilities/dns.py,sha256=QKST49UkCw7n2GyrN3wU5ap6Cw98t1SZxFYJlyG2x70,315
130
130
  netbox_dns/utilities/ipam_dnssync.py,sha256=tFphPVluDUS3-4NsUW1_D1dDksA3AgIozf7JAoTIE_w,9533
131
131
  netbox_dns/validators/__init__.py,sha256=Mr8TvmcJTa8Pubj8TzbFBKfbHhEmGcr5JdQvczEJ39A,72
132
- netbox_dns/validators/dns_name.py,sha256=XC8yv_PeInKtya8FyPnzmazSe7BJcPw_2iK3A5A3ws0,3556
132
+ netbox_dns/validators/dns_name.py,sha256=Sil68Av49jfZPzgFMV_1qEcLnuuAWXmbxfAJPDXUsGg,3766
133
133
  netbox_dns/validators/dns_value.py,sha256=-mc62mth-hlbPUPe_RlCR7vo1KSD6_gQDXiE8rjB-Cc,5206
134
134
  netbox_dns/validators/rfc2317.py,sha256=uKkwxpakiFFKdYA0qy8WSlEnbFwJD4MDw6gGV4F6skg,706
135
135
  netbox_dns/views/__init__.py,sha256=axENVF9vX9BtDKCNxrapRjye1NnygUg9BS0BBj6a0io,209
136
- netbox_dns/views/nameserver.py,sha256=2PaOHtcjaZm0FQMYTmiys-uqQsCBP_RKamW2Jj3rJOY,3896
137
- netbox_dns/views/record.py,sha256=TJsebzLhp3Dnu6SmioJiSN-zRFVSh1RptqgGL5SRUTU,6464
138
- netbox_dns/views/record_template.py,sha256=ZX0tOkFnUsv7h8ImBxDt9aIaRtNjXoUxXopMc73W5-I,3094
139
- netbox_dns/views/registrar.py,sha256=vIdflAmaqvUykvJfBV2Y8nhsvUZrU43nENUBM6WzM2g,2773
140
- netbox_dns/views/registration_contact.py,sha256=u__0w4Nm1_5lnAeFXfTY-cD86facWxIolEfC-SrxXyk,3551
141
- netbox_dns/views/view.py,sha256=a6-wdMyTWoZekiR2VnM3VNSOjX-8L3Qjqqi973UobAA,3391
142
- netbox_dns/views/zone.py,sha256=H7UPN4T_sn_3ijvXi7t8iteJFs6qqEtVzhvchKOOzCM,7133
143
- netbox_dns/views/zone_template.py,sha256=vNXG96D6uZJo4KRdsgsTL3d9JzRtiDJg4_h4_3gjAfk,2667
144
- netbox_plugin_dns-1.2.2.dist-info/LICENSE,sha256=I3tDu11bZfhFm3EkV4zOD5TmWgLjnUNLEFwrdjniZYs,1112
145
- netbox_plugin_dns-1.2.2.dist-info/METADATA,sha256=Ef4CV4H2DEOAvT4lQAGFJ21ik_nfeRwEJmFFKXwwmMs,7605
146
- netbox_plugin_dns-1.2.2.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
147
- netbox_plugin_dns-1.2.2.dist-info/top_level.txt,sha256=sA1Rwl1mRKvMC6XHe2ylZ1GF-Q1NGd08XedK9Y4xZc4,11
148
- netbox_plugin_dns-1.2.2.dist-info/RECORD,,
136
+ netbox_dns/views/nameserver.py,sha256=6lHg8fqBjc_SoITzFj1FiRARpPF7nSn9knAZxe9x5Rg,3932
137
+ netbox_dns/views/record.py,sha256=quFf9BIQJIb8uodD8-7HBmOHBH7xe-Vu8UMr3Q5jZNo,6496
138
+ netbox_dns/views/record_template.py,sha256=CbSyckBvyEvcZCeZgK3q0fJsa1_5HbwUflh_iM7JjH0,3134
139
+ netbox_dns/views/registrar.py,sha256=Um_2wnzmP2bqbdMUhBPhny2My0R8fMXScQ9GLiTCrvg,2808
140
+ netbox_dns/views/registration_contact.py,sha256=c9KrNkfFNsb55pL74A5rN1CNx32M82V6mdwBYduNxas,3596
141
+ netbox_dns/views/view.py,sha256=VfrKaLC9D_KNZNmRyFVohRlmMlMbtblAuPgNg0LNyf8,3421
142
+ netbox_dns/views/zone.py,sha256=W66Miyaf4RKW-8z5wMrerrtmHclhht3h-lPqTWFpiOw,7163
143
+ netbox_dns/views/zone_template.py,sha256=IIW1lr6RQmhShtqJu6A6LnHdxdBrkkZQHxIDSTqQeyc,2705
144
+ netbox_plugin_dns-1.2.3.dist-info/LICENSE,sha256=I3tDu11bZfhFm3EkV4zOD5TmWgLjnUNLEFwrdjniZYs,1112
145
+ netbox_plugin_dns-1.2.3.dist-info/METADATA,sha256=i_uFK9pSBeoBpPTNaT8o53wWBO_sJVDB_GYL2GWZQkM,7635
146
+ netbox_plugin_dns-1.2.3.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
147
+ netbox_plugin_dns-1.2.3.dist-info/top_level.txt,sha256=sA1Rwl1mRKvMC6XHe2ylZ1GF-Q1NGd08XedK9Y4xZc4,11
148
+ netbox_plugin_dns-1.2.3.dist-info/RECORD,,