netbox-plugin-dns 1.3.6__py3-none-any.whl → 1.4.0__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
@@ -4,7 +4,7 @@ from django.core.exceptions import ImproperlyConfigured
4
4
  from netbox.plugins import PluginConfig
5
5
  from netbox.plugins.utils import get_plugin_config
6
6
 
7
- __version__ = "1.3.6"
7
+ __version__ = "1.4.0"
8
8
 
9
9
 
10
10
  def _check_list(setting):
@@ -30,6 +30,7 @@ class ZoneTemplateSerializer(NetBoxModelSerializer):
30
30
  "soa_mname",
31
31
  "soa_rname",
32
32
  "dnssec_policy",
33
+ "parental_agents",
33
34
  "registrar",
34
35
  "registrant",
35
36
  "tech_c",
@@ -1,3 +1,6 @@
1
+ import netaddr
2
+ from netaddr.core import AddrFormatError
3
+
1
4
  import django_filters
2
5
 
3
6
  from django.db.models import Q
@@ -5,6 +8,7 @@ from django.utils.translation import gettext as _
5
8
 
6
9
  from netbox.filtersets import NetBoxModelFilterSet
7
10
  from tenancy.filtersets import TenancyFilterSet
11
+ from utilities.filters import MultiValueCharFilter
8
12
 
9
13
  from netbox_dns.models import (
10
14
  ZoneTemplate,
@@ -76,6 +80,10 @@ class ZoneTemplateFilterSet(TenancyFilterSet, NetBoxModelFilterSet):
76
80
  to_field_name="name",
77
81
  label=_("DNSSEC Policy"),
78
82
  )
83
+ parental_agents = MultiValueCharFilter(
84
+ method="filter_parental_agents",
85
+ label=_("Parental Agents"),
86
+ )
79
87
  registrar_id = django_filters.ModelMultipleChoiceFilter(
80
88
  queryset=Registrar.objects.all(),
81
89
  label=_("Registrar ID"),
@@ -127,6 +135,19 @@ class ZoneTemplateFilterSet(TenancyFilterSet, NetBoxModelFilterSet):
127
135
  label=_("Billing Contact"),
128
136
  )
129
137
 
138
+ def filter_parental_agents(self, queryset, name, value):
139
+ if not value:
140
+ return queryset
141
+
142
+ query_values = []
143
+ for v in value:
144
+ try:
145
+ query_values.append(str(netaddr.IPAddress(v)))
146
+ except (AddrFormatError, ValueError):
147
+ pass
148
+
149
+ return queryset.filter(parental_agents__overlap=query_values)
150
+
130
151
  def search(self, queryset, name, value):
131
152
  if not value.strip():
132
153
  return queryset
@@ -15,7 +15,8 @@ from utilities.forms.fields import (
15
15
  DynamicModelMultipleChoiceField,
16
16
  )
17
17
  from utilities.forms.rendering import FieldSet
18
- from utilities.forms import add_blank_choice
18
+ from utilities.forms.widgets import HTMXSelect
19
+ from utilities.forms import add_blank_choice, get_field_value
19
20
  from tenancy.models import Tenant, TenantGroup
20
21
  from tenancy.forms import TenancyForm, TenancyFilterForm
21
22
 
@@ -52,6 +53,10 @@ class DNSSECKeyTemplateForm(TenancyForm, NetBoxModelForm):
52
53
  "tags",
53
54
  )
54
55
 
56
+ widgets = {
57
+ "algorithm": HTMXSelect(),
58
+ }
59
+
55
60
  fieldsets = (
56
61
  FieldSet(
57
62
  "name",
@@ -76,6 +81,13 @@ class DNSSECKeyTemplateForm(TenancyForm, NetBoxModelForm):
76
81
  ),
77
82
  )
78
83
 
84
+ def __init__(self, *args, **kwargs):
85
+ super().__init__(*args, **kwargs)
86
+
87
+ algorithm = get_field_value(self, "algorithm")
88
+ if algorithm != DNSSECKeyTemplateAlgorithmChoices.RSASHA256:
89
+ del self.fields["key_size"]
90
+
79
91
  lifetime = TimePeriodField(
80
92
  required=False,
81
93
  )
netbox_dns/forms/zone.py CHANGED
@@ -21,9 +21,13 @@ from utilities.forms.fields import (
21
21
  CSVModelMultipleChoiceField,
22
22
  DynamicModelChoiceField,
23
23
  )
24
- from utilities.forms.widgets import BulkEditNullBooleanSelect, DatePicker
24
+ from utilities.forms.widgets import BulkEditNullBooleanSelect, DatePicker, HTMXSelect
25
25
  from utilities.forms.rendering import FieldSet
26
- from utilities.forms import BOOLEAN_WITH_BLANK_CHOICES, add_blank_choice
26
+ from utilities.forms import (
27
+ BOOLEAN_WITH_BLANK_CHOICES,
28
+ add_blank_choice,
29
+ get_field_value,
30
+ )
27
31
  from tenancy.models import Tenant, TenantGroup
28
32
  from tenancy.forms import TenancyForm, TenancyFilterForm
29
33
 
@@ -79,9 +83,9 @@ class ZoneTemplateUpdateMixin:
79
83
  self.cleaned_data["tags"] = template.tags.all()
80
84
 
81
85
  for field in template.template_fields:
82
- if self.cleaned_data.get(field) in (None, "") and getattr(
86
+ if self.cleaned_data.get(field) in (None, "", []) and getattr(
83
87
  template, field
84
- ) not in (None, ""):
88
+ ) not in (None, "", []):
85
89
  self.cleaned_data[field] = getattr(template, field)
86
90
 
87
91
  self._check_soa_mname()
@@ -207,6 +211,8 @@ class ZoneForm(ZoneTemplateUpdateMixin, TenancyForm, NetBoxModelForm):
207
211
  }
208
212
 
209
213
  widgets = {
214
+ "dnssec_policy": HTMXSelect(),
215
+ "registrar": HTMXSelect(),
210
216
  "expiration_date": DatePicker,
211
217
  }
212
218
 
@@ -310,6 +316,15 @@ class ZoneForm(ZoneTemplateUpdateMixin, TenancyForm, NetBoxModelForm):
310
316
  name__in=default_nameservers
311
317
  )
312
318
 
319
+ if not get_field_value(self, "dnssec_policy"):
320
+ del self.fields["inline_signing"]
321
+ del self.fields["parental_agents"]
322
+
323
+ if not get_field_value(self, "registrar"):
324
+ del self.fields["registry_domain_id"]
325
+ del self.fields["expiration_date"]
326
+ del self.fields["domain_status"]
327
+
313
328
  view = DynamicModelChoiceField(
314
329
  queryset=View.objects.all(),
315
330
  required=True,
@@ -1,5 +1,6 @@
1
1
  from django import forms
2
2
  from django.utils.translation import gettext_lazy as _
3
+ from django.contrib.postgres.forms import SimpleArrayField
3
4
 
4
5
  from netbox.forms import (
5
6
  NetBoxModelBulkEditForm,
@@ -46,6 +47,7 @@ class ZoneTemplateForm(TenancyForm, NetBoxModelForm):
46
47
  "soa_mname",
47
48
  "soa_rname",
48
49
  "dnssec_policy",
50
+ "parental_agents",
49
51
  "record_templates",
50
52
  "description",
51
53
  "registrar",
@@ -80,6 +82,7 @@ class ZoneTemplateForm(TenancyForm, NetBoxModelForm):
80
82
  ),
81
83
  FieldSet(
82
84
  "dnssec_policy",
85
+ "parental_agents",
83
86
  name=_("DNSSEC"),
84
87
  ),
85
88
  FieldSet(
@@ -145,6 +148,7 @@ class ZoneTemplateFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
145
148
  ),
146
149
  FieldSet(
147
150
  "dnssec_policy",
151
+ "parental_agents",
148
152
  name=_("DNSSEC"),
149
153
  ),
150
154
  FieldSet(
@@ -197,6 +201,10 @@ class ZoneTemplateFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
197
201
  null_option=_("None"),
198
202
  label=_("DNSSEC Policy ID"),
199
203
  )
204
+ parental_agents = forms.GenericIPAddressField(
205
+ required=False,
206
+ label=_("Parental Agents"),
207
+ )
200
208
  registrar_id = DynamicModelMultipleChoiceField(
201
209
  queryset=Registrar.objects.all(),
202
210
  required=False,
@@ -241,6 +249,7 @@ class ZoneTemplateImportForm(NetBoxModelImportForm):
241
249
  "soa_rname",
242
250
  "record_templates",
243
251
  "dnssec_policy",
252
+ "parental_agents",
244
253
  "description",
245
254
  "registrar",
246
255
  "registrant",
@@ -351,6 +360,7 @@ class ZoneTemplateBulkEditForm(NetBoxModelBulkEditForm):
351
360
  ),
352
361
  FieldSet(
353
362
  "dnssec_policy",
363
+ "parental_agents",
354
364
  name=_("DNSSEC"),
355
365
  ),
356
366
  FieldSet(
@@ -411,6 +421,11 @@ class ZoneTemplateBulkEditForm(NetBoxModelBulkEditForm):
411
421
  required=False,
412
422
  label=_("DNSSEC Policy"),
413
423
  )
424
+ parental_agents = SimpleArrayField(
425
+ required=False,
426
+ base_field=forms.GenericIPAddressField(),
427
+ label=_("Parental Agents"),
428
+ )
414
429
  registrar = DynamicModelChoiceField(
415
430
  queryset=Registrar.objects.all(),
416
431
  required=False,
@@ -290,6 +290,7 @@ class NetBoxDNSZoneTemplateType(NetBoxObjectType):
290
290
  ]
291
291
  | None
292
292
  )
293
+ parental_agents: List[str]
293
294
  record_templates: List[
294
295
  Annotated[
295
296
  "NetBoxDNSRecordTemplateType", strawberry.lazy("netbox_dns.graphql.types")
Binary file
Binary file
@@ -0,0 +1,25 @@
1
+ # Generated by Django 5.2.5 on 2025-09-02 15:40
2
+
3
+ import django.contrib.postgres.fields
4
+ from django.db import migrations, models
5
+
6
+
7
+ class Migration(migrations.Migration):
8
+
9
+ dependencies = [
10
+ ("netbox_dns", "0023_disable_ptr_false"),
11
+ ]
12
+
13
+ operations = [
14
+ migrations.AddField(
15
+ model_name="zonetemplate",
16
+ name="parental_agents",
17
+ field=django.contrib.postgres.fields.ArrayField(
18
+ base_field=models.GenericIPAddressField(),
19
+ blank=True,
20
+ default=list,
21
+ null=True,
22
+ size=None,
23
+ ),
24
+ ),
25
+ ]
@@ -91,6 +91,9 @@ class DNSSECKeyTemplate(ContactsMixin, NetBoxModel):
91
91
  return DNSSECKeyTemplateTypeChoices.colors.get(self.type)
92
92
 
93
93
  def clean(self, *args, **kwargs):
94
+ if self.algorithm != DNSSECKeyTemplateAlgorithmChoices.RSASHA256:
95
+ self.key_size = self._meta.get_field("key_size").get_default()
96
+
94
97
  super().clean(*args, **kwargs)
95
98
 
96
99
  validate_key_template(self)
netbox_dns/models/zone.py CHANGED
@@ -650,7 +650,7 @@ class Zone(ObjectModificationMixin, ContactsMixin, NetBoxModel):
650
650
  expiration_error = _("The registration for this domain has expired.")
651
651
  elif (self.expiration_date - date.today()).days < expiration_warning_days:
652
652
  expiration_warning = _(
653
- f"The registration for his domain will expire less than {expiration_warning_days} days."
653
+ f"The registration for this domain will expire in less than {expiration_warning_days} days."
654
654
  )
655
655
 
656
656
  return expiration_warning, expiration_error
@@ -800,6 +800,17 @@ class Zone(ObjectModificationMixin, ContactsMixin, NetBoxModel):
800
800
  super().clean_fields(exclude=exclude)
801
801
 
802
802
  def clean(self, *args, **kwargs):
803
+ if not self.dnssec_policy:
804
+ self.inline_signing = self._meta.get_field("inline_signing").get_default()
805
+ self.parental_agents = self._meta.get_field("parental_agents").get_default()
806
+
807
+ if not self.registrar:
808
+ self.registry_domain_id = self._meta.get_field(
809
+ "registry_domain_id"
810
+ ).get_default()
811
+ self.expiration_date = self._meta.get_field("expiration_date").get_default()
812
+ self.domain_status = self._meta.get_field("domain_status").get_default()
813
+
803
814
  if self.soa_ttl is None:
804
815
  self.soa_ttl = self.default_ttl
805
816
 
@@ -4,6 +4,7 @@ from dns.exception import DNSException
4
4
  from django.db import models
5
5
  from django.utils.translation import gettext_lazy as _
6
6
  from django.core.exceptions import ValidationError
7
+ from django.contrib.postgres.fields import ArrayField
7
8
 
8
9
  from netbox.models import NetBoxModel
9
10
  from netbox.search import SearchIndex, register_search
@@ -31,6 +32,7 @@ class ZoneTemplate(NetBoxModel):
31
32
  "soa_mname",
32
33
  "soa_rname",
33
34
  "dnssec_policy",
35
+ "parental_agents",
34
36
  "registrar",
35
37
  "registrant",
36
38
  "admin_c",
@@ -43,6 +45,7 @@ class ZoneTemplate(NetBoxModel):
43
45
  "soa_mname",
44
46
  "soa_rname",
45
47
  "dnssec_policy",
48
+ "parental_agents",
46
49
  "registrar",
47
50
  "registrant",
48
51
  "admin_c",
@@ -98,6 +101,14 @@ class ZoneTemplate(NetBoxModel):
98
101
  blank=True,
99
102
  null=True,
100
103
  )
104
+ parental_agents = ArrayField(
105
+ base_field=models.GenericIPAddressField(
106
+ protocol="both",
107
+ ),
108
+ blank=True,
109
+ null=True,
110
+ default=list,
111
+ )
101
112
  registrar = models.ForeignKey(
102
113
  verbose_name=_("Registrar"),
103
114
  to="Registrar",
@@ -61,6 +61,16 @@
61
61
  <th scope="row">{% trans "Policy" %}</th>
62
62
  <td>{{ object.dnssec_policy|linkify }}</td>
63
63
  </tr>
64
+ <tr>
65
+ <th scope="row">{% trans "Parental Agents" %}</th>
66
+ <td>
67
+ <table>
68
+ {% for parental_agent in object.parental_agents %}
69
+ <tr><td>{{ parental_agent }}</td></tr>
70
+ {% endfor %}
71
+ </table>
72
+ </td>
73
+ </tr>
64
74
  </table>
65
75
  </div>
66
76
  {% endif %}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: netbox-plugin-dns
3
- Version: 1.3.6
3
+ Version: 1.4.0
4
4
  Summary: NetBox DNS is a NetBox plugin for managing DNS data.
5
5
  Author-email: Peter Eckel <pete@netbox-dns.org>
6
6
  Project-URL: Homepage, https://github.com/peteeckel/netbox-plugin-dns
@@ -1,4 +1,4 @@
1
- netbox_dns/__init__.py,sha256=xq8VZKxTI6bdiMeHJM-s2IPaZTbGczYbTTEy8B3174w,4890
1
+ netbox_dns/__init__.py,sha256=P1EJoyjZlxYhyBzq2Ws6Ijofan-7SRkkyLo6zuBstV4,4890
2
2
  netbox_dns/apps.py,sha256=JCW5eS-AQBUubDJve1DjP-IRFKTFGQh1NLGWzJpC5MI,151
3
3
  netbox_dns/navigation.py,sha256=ZF2-bKRfuxXnLArSCvozyRXRd7GME14sVJZdmDEMhBk,7741
4
4
  netbox_dns/template_content.py,sha256=nwjbWkMc02vpTmcFQdiAA1TdopJiZ0MkRy6qa18_wLI,4848
@@ -19,7 +19,7 @@ netbox_dns/api/serializers_/registrar.py,sha256=ul_6SJVqxvTE2ysXBy52U59oTzwmaD78
19
19
  netbox_dns/api/serializers_/registration_contact.py,sha256=P_aoG_1rriHn4KkwTx5Dhw37Rn3VY2whg0vAIm55cjk,1108
20
20
  netbox_dns/api/serializers_/view.py,sha256=ipuL4FVTl5MYt5_ThayBAOBMGu61ZUGnCb8Co1tNQGU,1894
21
21
  netbox_dns/api/serializers_/zone.py,sha256=JfjhxmfbpJRNzFqnjueFvpJS5ASnbomm1jzJrjYPpqo,6407
22
- netbox_dns/api/serializers_/zone_template.py,sha256=AYlkOiAuPf0hWcj-FU3j_byY3MO3kkZ7f5xuIGA5m-Y,4407
22
+ netbox_dns/api/serializers_/zone_template.py,sha256=sThICHWbQpXRKCFq8I--3PSkad-aPzh7TBdoDm31jzg,4438
23
23
  netbox_dns/choices/__init__.py,sha256=K3JfawICeoUny8O_Dqexr7DOxwyg3QqijZ4DO6j5yP8,106
24
24
  netbox_dns/choices/dnssec_key_template.py,sha256=Xl3y_ScKJmnsqMH1sv6ezLcZI1rruHDGJP5e2IRSC4s,1511
25
25
  netbox_dns/choices/dnssec_policy.py,sha256=1EH1VoLbewiTZmnACpxq6GN0UJDVA1L6cxs-Jf6OagI,839
@@ -43,9 +43,9 @@ netbox_dns/filtersets/registrar.py,sha256=6QrsrWXu19bMa99DzwwXqfNqxpvTG0JwGEpybh
43
43
  netbox_dns/filtersets/registration_contact.py,sha256=42j7NkwkbSEfomCDekkIE9ZWNug_qfvmTO_D1e-fFIw,1140
44
44
  netbox_dns/filtersets/view.py,sha256=g8Qz363F9sieNtf4zA2L87mR86HFtkpvHTCkql6TxGk,1107
45
45
  netbox_dns/filtersets/zone.py,sha256=Uzlgo2dGCQhH_S3tI8gVYHi7tMoNS1YK5agbLRkV7bc,7603
46
- netbox_dns/filtersets/zone_template.py,sha256=U7lj26nxxSHZ0csRxWbdUTbgopTzTt_sxE5z3skn9mo,4738
46
+ netbox_dns/filtersets/zone_template.py,sha256=W-s-Gm1OhnHRdQaU0sBie7ZAup4CfBMX3xeZfKGgJXc,5358
47
47
  netbox_dns/forms/__init__.py,sha256=tObkTOHw_6kVtEcwdyshN0Ql-8VGhwsgQw7owL_s2lI,273
48
- netbox_dns/forms/dnssec_key_template.py,sha256=7zQCbpLaMiVcZ__zMswVJ2MNqlStFm22YWr1wZbi93I,5793
48
+ netbox_dns/forms/dnssec_key_template.py,sha256=zWOTdsbfCcjpizOZn6Y8HRewJarFwtlXcW4H0ZyqJVI,6176
49
49
  netbox_dns/forms/dnssec_policy.py,sha256=_KCGgWZB8yrC2wNFefqaM32cYMFzHsCAdqq83AF9jiw,17139
50
50
  netbox_dns/forms/nameserver.py,sha256=_iQJXbdFrrtMnRT8yZHnOp1Nj1iwxjHIAH_hrvCkrKU,3848
51
51
  netbox_dns/forms/record.py,sha256=wRl3uRY13VK8cF79u69-DDJmHJnZjwuLR60PsUGJ3p0,8493
@@ -53,13 +53,13 @@ netbox_dns/forms/record_template.py,sha256=5yuY2ppV2diEOdm_IN3QSLLEdWkOkWZOYRtOh
53
53
  netbox_dns/forms/registrar.py,sha256=oLMcXJOpt0F02a2Aga6A45rja7TvI18nTCZb_Dx_8t0,4038
54
54
  netbox_dns/forms/registration_contact.py,sha256=GtUmHzPmAFNRt81rTgJbmb5TMoEJ-mpmjltkuyppJwc,6157
55
55
  netbox_dns/forms/view.py,sha256=KZ2enzbqAEElt3b5C02kMJwnIDEjdQf_BsgMuMqKP50,10836
56
- netbox_dns/forms/zone.py,sha256=aVeSvUwohcqqetPupj4FQRgouE5fS53vvIoe82zmoaA,30334
57
- netbox_dns/forms/zone_template.py,sha256=ACx8YJirsrGMMQExVL-aEOaitsUYMyNBL793CoQZrWQ,11716
56
+ netbox_dns/forms/zone.py,sha256=fu3WmQKGknEv9z7vjHqRdnBBfPyYQ3rWJZPRP8a4pkQ,30813
57
+ netbox_dns/forms/zone_template.py,sha256=SN4E-DkD1RgUcZhvUNzRFg4-FHbkvdFs1l28eShAx4o,12203
58
58
  netbox_dns/graphql/__init__.py,sha256=0xg_5d1PPFTadBOZo752t5sfZeLFrqs2jM51Rbf8ti4,652
59
59
  netbox_dns/graphql/enums.py,sha256=vC-v24AuNbaGoekLTDu1PBVbnR1aYeX6LmvrZkfd2F4,1453
60
60
  netbox_dns/graphql/filter_lookups.py,sha256=P6wW2JrtkzUiIx6mJz_DvwYg5Sov68IKAx0zVQfuvYY,355
61
61
  netbox_dns/graphql/schema.py,sha256=KlbJmlfQEqZhvb6-cYmq94mrMFcQoCh3MldaUD5eVV4,2904
62
- netbox_dns/graphql/types.py,sha256=H03lx5YTkxLevGtTHGV5VkdKbTJbgvUYPGqBWl3X8Q4,10182
62
+ netbox_dns/graphql/types.py,sha256=97vPzKAGzz9tn8qm-kc_1vZHtwc5QMHq-vLkZ42Regg,10213
63
63
  netbox_dns/graphql/filters/__init__.py,sha256=bKppz_w3X2xNNHOcxZZiIO7zSkDaNTrZJ__k1U7rKik,275
64
64
  netbox_dns/graphql/filters/dnssec_key_template.py,sha256=hK7KgikQOC-BMp88PR1moHQboWd-DS59GwQ0TJADdLM,2076
65
65
  netbox_dns/graphql/filters/dnssec_policy.py,sha256=hu2_W74PDxN4QLRQTFd-qh_qf55ztoWtShTiVhOuvD8,4656
@@ -71,9 +71,9 @@ netbox_dns/graphql/filters/registration_contact.py,sha256=feCw4zZd2UQ9895Gg0PJ4R
71
71
  netbox_dns/graphql/filters/view.py,sha256=ozXGNJ0ELri2FAnQXPHDs3--Hznzx4ZF5mH264nr-DI,934
72
72
  netbox_dns/graphql/filters/zone.py,sha256=2mqPq4jikCWhbGRbIIcKbCXRtA9QiH6rXb5ufk1DAFE,5253
73
73
  netbox_dns/graphql/filters/zone_template.py,sha256=6ZxBN_VPXvBDGXXwcYlkX6wJXx_IlMAZIEDX5-ARO_4,3100
74
- netbox_dns/locale/de/LC_MESSAGES/django.mo,sha256=fSlYDunygrkHE4TAIlHI0ol67Lz3qiu2hUkeirewlOQ,29995
74
+ netbox_dns/locale/de/LC_MESSAGES/django.mo,sha256=Q6edOBPHxBTbVYE-7TM9G_o83ED_9TpGgefOazR6TP0,29831
75
75
  netbox_dns/locale/en/LC_MESSAGES/django.mo,sha256=GDnSZkfHs3yjtTsll7dksEEej4B50F8pc9RGytZNubM,393
76
- netbox_dns/locale/fr/LC_MESSAGES/django.mo,sha256=hZjbClaXZndP8VtqAiXWBdYEFVD9CQrKJXelL6kMOPE,30021
76
+ netbox_dns/locale/fr/LC_MESSAGES/django.mo,sha256=tPKMUteOF0qV4FlH1YrbbzC9fiW3nYS5fMLP0GLWayE,29810
77
77
  netbox_dns/management/commands/cleanup_database.py,sha256=Dv1DCN55MzIHoQk3TBV-SmaNf_mFo-PbzCm7fOmZspY,7953
78
78
  netbox_dns/management/commands/cleanup_rrset_ttl.py,sha256=7W4_qRzm_Crnb1L4X8lfrXRJanBqDGLC1yCLvrIaGG4,2256
79
79
  netbox_dns/management/commands/rebuild_dnssync.py,sha256=Wnix38pzuC1AtGm9-xU8W8j7NYLlUIMpmw5mT2rhBYc,929
@@ -107,6 +107,7 @@ netbox_dns/migrations/0022_search.py,sha256=KW1ffEZ4-0dppGQ_KD1EN7iw8eQJOnDco-xf
107
107
  netbox_dns/migrations/0023_alter_record_value.py,sha256=4_4v8YZzU8_jadJqIUUjH6SIhNTeALWhclozTqYDmv0,378
108
108
  netbox_dns/migrations/0023_disable_ptr_false.py,sha256=Wo-d60QmPCcvdVIVShF8L7z-L2eofJwWTIiyrr51bjU,652
109
109
  netbox_dns/migrations/0024_tenancy.py,sha256=3kc5l5_AyfhOI6g6mbCfReUAbSgb2DAv0MDMZqJ-3YQ,1745
110
+ netbox_dns/migrations/0024_zonetemplate_parental_agents.py,sha256=e1mQ1NwP8eqqfgc74PFSRmnENL5VCLPIFzInePsZd4w,635
110
111
  netbox_dns/migrations/0025_ipam_coupling_cf.py,sha256=7uHujclWrsYw5QMLWft0Po78Ow5Q8MjPuU7moKyQ2qs,620
111
112
  netbox_dns/migrations/0026_domain_registration.py,sha256=qUJ1oUGHIGGNWD7QRLnxElbM5eNp7dYNNn_OYIw8Xvo,5796
112
113
  netbox_dns/migrations/0027_alter_registrar_iana_id.py,sha256=QUtRIrqqfkraFmzzeJFZWAEv4PfrOouoHtrV6FRn8Kc,404
@@ -116,7 +117,7 @@ netbox_dns/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3h
116
117
  netbox_dns/mixins/__init__.py,sha256=LxTEfpod_RHCyMtnzDljv0_dwqp2z3Q6tqbXW8LTGD8,35
117
118
  netbox_dns/mixins/object_modification.py,sha256=AR64fU5f7g-scNAj9b54eSoS9dpjyOpqrxXVXPcOhY8,1807
118
119
  netbox_dns/models/__init__.py,sha256=CuwFENIVUv0FNMDlY18Am-mvN5kBGkPOGavCP0cle7c,273
119
- netbox_dns/models/dnssec_key_template.py,sha256=Nv0vjdkOFWMptRYR1sT60bM6D8n_SnCpPZhI7WE5_UQ,2588
120
+ netbox_dns/models/dnssec_key_template.py,sha256=AcyD9PLtg1lLZAFlEJ8TugSlglOSIBVihxgmi39zRm4,2738
120
121
  netbox_dns/models/dnssec_policy.py,sha256=REsE8p04bgJVF8yJuWuUITXpsZmvVlXWyQuJ9I6dEMs,5268
121
122
  netbox_dns/models/nameserver.py,sha256=oVfyc_iWRzxVE2tIhfRb1Vuj2gZmlfFFzEtXj9ZEr6s,3848
122
123
  netbox_dns/models/record.py,sha256=7f4h3ngUvPpQ4IQroTJAWO8wD2fqy1u8j-LuA23PWtM,32761
@@ -124,8 +125,8 @@ netbox_dns/models/record_template.py,sha256=Qr43_YZm1z3Od1cBdDY9wpNlV-UCzvpn2c6_
124
125
  netbox_dns/models/registrar.py,sha256=-ozazecvd-oryEoDlOUvTWhEQKKQp3my6YVTEzWlUuI,1747
125
126
  netbox_dns/models/registration_contact.py,sha256=9ehnTjg8KUrUYJKRRu2SaJX-NE5dO4wy90FRPlT2ys4,3620
126
127
  netbox_dns/models/view.py,sha256=pwo7i8gtukIRgAC1A4rm58jcEpIbsSW_IUq6vSv-mRo,4618
127
- netbox_dns/models/zone.py,sha256=qZ5yYNbj4mYm61zfq-aFL_5sVSxJo1PQSMY4cAj8vEQ,35953
128
- netbox_dns/models/zone_template.py,sha256=ShPg6_ts6W-dpdGzUg3oZnGHEEQ-_Jf0EdYwVWzaPwI,5093
128
+ netbox_dns/models/zone.py,sha256=zHRCXfRliqhE9lQwfTU5xXHn_8dhd7yOn5L_7NaLhLE,36500
129
+ netbox_dns/models/zone_template.py,sha256=jm7XsBADOWhGYOH-_n9a97CTE6w_BCP3gMEUIO-tfTs,5391
129
130
  netbox_dns/signals/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
130
131
  netbox_dns/signals/dnssec.py,sha256=o4MOEg6ftxoDWFAhDtajkXzb7Nb6KuUHjtx1zNu7C1w,1040
131
132
  netbox_dns/signals/ipam_dnssync.py,sha256=1zhlf4cMcJLlFosX7YzyqVYdFFHV4MFwTz5KCdL8xQc,7730
@@ -150,7 +151,7 @@ netbox_dns/templates/netbox_dns/registrar.html,sha256=4kJuj3biiDxQrIMQEQUEmF4iGR
150
151
  netbox_dns/templates/netbox_dns/registrationcontact.html,sha256=sljVp_MrPSJRc2vJCPFXq9MiWOw4wjbr1kI_YStBntw,3094
151
152
  netbox_dns/templates/netbox_dns/view.html,sha256=1MuzOYNQezRrryNjlklgxErjGTFoVnwqcxf4qceuglw,3320
152
153
  netbox_dns/templates/netbox_dns/zone.html,sha256=Hx2SL9gk7IKzBv5q45eESQADBPOCgbsW1yGe96-wlik,8262
153
- netbox_dns/templates/netbox_dns/zonetemplate.html,sha256=a3QD0O_8CW2MUBnU_nXGweGhCwo5pYDVlwJHzovC1RU,4344
154
+ netbox_dns/templates/netbox_dns/zonetemplate.html,sha256=juPdeCtpZGcCqM-nJT4IVTmwgOtTOEvDek2iiAJ6aQw,4801
154
155
  netbox_dns/templates/netbox_dns/record/managed.html,sha256=uwpxQTxyfAXkWqThLT-T2ZssKNUhXTDDMnLWJSVuDNU,119
155
156
  netbox_dns/templates/netbox_dns/record/related.html,sha256=R59aPhE4CyIZtTH0ncwDyS6_wAe_Y-oZjuN_j4qk8iA,1158
156
157
  netbox_dns/templates/netbox_dns/view/button.html,sha256=EMOB5x78XpyfN1qi-pY1CKKKLjyHo9rFUa4Uhq6rFMc,322
@@ -187,8 +188,8 @@ netbox_dns/views/registration_contact.py,sha256=5bJWjNBisqCkBo6d2TJyyBJlc95WM7Vc
187
188
  netbox_dns/views/view.py,sha256=xLXt7sKrda3FpNXsBSJk8L8P2XhZ1sVb5OOXovCsKEU,3089
188
189
  netbox_dns/views/zone.py,sha256=rxf0ETFnBF88JbhxUZWtcid_CAm7tssYfp2EFjk7zyg,7160
189
190
  netbox_dns/views/zone_template.py,sha256=5P9DT3XBRL-TiM5zFhBTMlMusL4bP2jTu3GHxKz5ojc,2553
190
- netbox_plugin_dns-1.3.6.dist-info/licenses/LICENSE,sha256=I3tDu11bZfhFm3EkV4zOD5TmWgLjnUNLEFwrdjniZYs,1112
191
- netbox_plugin_dns-1.3.6.dist-info/METADATA,sha256=cOlM0ppA8UzYmjsx5LD8j-tPLRr6TthsafOgcDh1w0w,7787
192
- netbox_plugin_dns-1.3.6.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
193
- netbox_plugin_dns-1.3.6.dist-info/top_level.txt,sha256=sA1Rwl1mRKvMC6XHe2ylZ1GF-Q1NGd08XedK9Y4xZc4,11
194
- netbox_plugin_dns-1.3.6.dist-info/RECORD,,
191
+ netbox_plugin_dns-1.4.0.dist-info/licenses/LICENSE,sha256=I3tDu11bZfhFm3EkV4zOD5TmWgLjnUNLEFwrdjniZYs,1112
192
+ netbox_plugin_dns-1.4.0.dist-info/METADATA,sha256=-mX00xQQAcUokvjTXBkBtXpxbYJakdQm-vmgHaaZY5M,7787
193
+ netbox_plugin_dns-1.4.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
194
+ netbox_plugin_dns-1.4.0.dist-info/top_level.txt,sha256=sA1Rwl1mRKvMC6XHe2ylZ1GF-Q1NGd08XedK9Y4xZc4,11
195
+ netbox_plugin_dns-1.4.0.dist-info/RECORD,,