netbox-plugin-dns 1.4.1__py3-none-any.whl → 1.4.2__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.4.1"
7
+ __version__ = "1.4.2"
8
8
 
9
9
 
10
10
  def _check_list(setting):
@@ -145,6 +145,7 @@ class NestedDNSSECPolicySerializer(WritableNestedSerializer):
145
145
  "name",
146
146
  "description",
147
147
  "status",
148
+ "inline_signing",
148
149
  )
149
150
 
150
151
  url = serializers.HyperlinkedIdentityField(
@@ -26,6 +26,7 @@ class DNSSECPolicySerializer(NetBoxModelSerializer):
26
26
  "description",
27
27
  "status",
28
28
  "tags",
29
+ "inline_signing",
29
30
  "key_templates",
30
31
  "zones",
31
32
  "zone_templates",
@@ -60,6 +61,7 @@ class DNSSECPolicySerializer(NetBoxModelSerializer):
60
61
  "name",
61
62
  "description",
62
63
  "status",
64
+ "inline_signing",
63
65
  )
64
66
 
65
67
  url = serializers.HyperlinkedIdentityField(
@@ -195,6 +195,7 @@ class ZoneSerializer(NetBoxModelSerializer):
195
195
  default=None,
196
196
  help_text=_("Template to apply to the zone"),
197
197
  )
198
+ inline_signing = serializers.SerializerMethodField()
198
199
  active = serializers.BooleanField(
199
200
  required=False,
200
201
  read_only=True,
@@ -212,6 +213,9 @@ class ZoneSerializer(NetBoxModelSerializer):
212
213
 
213
214
  return super().validate(data)
214
215
 
216
+ def get_inline_signing(self, instance):
217
+ return instance.inline_signing
218
+
215
219
  def create(self, validated_data):
216
220
  template = validated_data.pop("template", None)
217
221
  nameservers = validated_data.pop("nameservers", None)
@@ -1,4 +1,5 @@
1
1
  from django.db import models
2
+ from django.db.models import Lookup
2
3
  from django.core.exceptions import ValidationError
3
4
  from django.utils.translation import gettext_lazy as _
4
5
 
@@ -50,3 +51,19 @@ class AddressField(models.Field):
50
51
 
51
52
  def db_type(self, connection):
52
53
  return "inet"
54
+
55
+
56
+ class AddressContained(Lookup):
57
+ lookup_name = "contained"
58
+
59
+ def get_prep_lookup(self):
60
+ return str(self.rhs)
61
+
62
+ def as_sql(self, compiler, connection):
63
+ lhs, lhs_params = self.process_lhs(compiler, connection)
64
+ rhs, rhs_params = self.process_rhs(compiler, connection)
65
+ params = lhs_params + rhs_params
66
+ return f"CAST(HOST({lhs}) AS INET) <<= {rhs}", params
67
+
68
+
69
+ AddressField.register_lookup(AddressContained)
@@ -23,6 +23,7 @@ class DNSSECPolicyFilterSet(TenancyFilterSet, NetBoxModelFilterSet):
23
23
  "name",
24
24
  "description",
25
25
  "status",
26
+ "inline_signing",
26
27
  "dnskey_ttl",
27
28
  "purge_keys",
28
29
  "publish_safety",
@@ -41,9 +41,9 @@ class ZoneFilterSet(TenancyFilterSet, NetBoxModelFilterSet):
41
41
  "soa_minimum",
42
42
  "soa_serial_auto",
43
43
  "rfc2317_parent_managed",
44
- "inline_signing",
45
44
  "registry_domain_id",
46
45
  "domain_status",
46
+ "inline_signing",
47
47
  )
48
48
 
49
49
  status = django_filters.MultipleChoiceFilter(
@@ -172,6 +172,10 @@ class ZoneFilterSet(TenancyFilterSet, NetBoxModelFilterSet):
172
172
  active = django_filters.BooleanFilter(
173
173
  label=_("Zone is active"),
174
174
  )
175
+ inline_signing = django_filters.BooleanFilter(
176
+ label=_("Zone is using a DNSSEC policy with inline signing"),
177
+ method="filter_inline_signing",
178
+ )
175
179
 
176
180
  def filter_parental_agents(self, queryset, name, value):
177
181
  if not value:
@@ -214,6 +218,22 @@ class ZoneFilterSet(TenancyFilterSet, NetBoxModelFilterSet):
214
218
  except (netaddr.AddrFormatError, ValueError):
215
219
  return queryset.none()
216
220
 
221
+ def filter_inline_signing(self, queryset, name, value):
222
+ if value is None:
223
+ return queryset
224
+
225
+ if value:
226
+ return queryset.filter(
227
+ dnssec_policy__isnull=False, dnssec_policy__inline_signing=True
228
+ )
229
+ else:
230
+ return queryset.filter(
231
+ Q(
232
+ Q(dnssec_policy__isnull=True)
233
+ | Q(dnssec_policy__inline_signing=False)
234
+ )
235
+ )
236
+
217
237
  def search(self, queryset, name, value):
218
238
  if not value.strip():
219
239
  return queryset
@@ -41,6 +41,7 @@ class DNSSECPolicyForm(TenancyForm, NetBoxModelForm):
41
41
  "name",
42
42
  "description",
43
43
  "status",
44
+ "inline_signing",
44
45
  "key_templates",
45
46
  "dnskey_ttl",
46
47
  "purge_keys",
@@ -71,6 +72,7 @@ class DNSSECPolicyForm(TenancyForm, NetBoxModelForm):
71
72
  "description",
72
73
  "status",
73
74
  "key_templates",
75
+ "inline_signing",
74
76
  name=_("Attributes"),
75
77
  ),
76
78
  FieldSet(
@@ -194,6 +196,7 @@ class DNSSECPolicyFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
194
196
  "description",
195
197
  "status",
196
198
  "key_template_id",
199
+ "inline_signing",
197
200
  name=_("Attributes"),
198
201
  ),
199
202
  FieldSet(
@@ -250,6 +253,11 @@ class DNSSECPolicyFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
250
253
  required=False,
251
254
  label=_("Status"),
252
255
  )
256
+ inline_signing = forms.NullBooleanField(
257
+ required=False,
258
+ widget=forms.Select(choices=BOOLEAN_WITH_BLANK_CHOICES),
259
+ label=_("Use Inline Signing"),
260
+ )
253
261
  key_template_id = DynamicModelMultipleChoiceField(
254
262
  queryset=DNSSECKeyTemplate.objects.all(),
255
263
  required=False,
@@ -355,6 +363,7 @@ class DNSSECPolicyImportForm(NetBoxModelImportForm):
355
363
  fields = (
356
364
  "name",
357
365
  "description",
366
+ "inline_signing",
358
367
  "key_templates",
359
368
  "dnskey_ttl",
360
369
  "purge_keys",
@@ -383,6 +392,10 @@ class DNSSECPolicyImportForm(NetBoxModelImportForm):
383
392
  required=False,
384
393
  label=_("Status"),
385
394
  )
395
+ inline_signing = forms.BooleanField(
396
+ required=False,
397
+ label=_("Use Inline Signing"),
398
+ )
386
399
  dnskey_ttl = TimePeriodField(
387
400
  required=False,
388
401
  label=_("DNSKEY TTL"),
@@ -446,6 +459,7 @@ class DNSSECPolicyBulkEditForm(NetBoxModelBulkEditForm):
446
459
  FieldSet(
447
460
  "description",
448
461
  "key_templates",
462
+ "inline_signing",
449
463
  name=_("Attributes"),
450
464
  ),
451
465
  FieldSet(
@@ -516,6 +530,11 @@ class DNSSECPolicyBulkEditForm(NetBoxModelBulkEditForm):
516
530
  required=False,
517
531
  label=_("Status"),
518
532
  )
533
+ inline_signing = forms.NullBooleanField(
534
+ required=False,
535
+ widget=BulkEditNullBooleanSelect(),
536
+ label=_("Use Inline Signing"),
537
+ )
519
538
  dnskey_ttl = TimePeriodField(
520
539
  required=False,
521
540
  label=_("DNSKEY TTL"),
netbox_dns/forms/zone.py CHANGED
@@ -183,7 +183,6 @@ class ZoneForm(ZoneTemplateUpdateMixin, TenancyForm, NetBoxModelForm):
183
183
  "rfc2317_prefix",
184
184
  "rfc2317_parent_managed",
185
185
  "dnssec_policy",
186
- "inline_signing",
187
186
  "parental_agents",
188
187
  "registrar",
189
188
  "registry_domain_id",
@@ -241,7 +240,6 @@ class ZoneForm(ZoneTemplateUpdateMixin, TenancyForm, NetBoxModelForm):
241
240
  ),
242
241
  FieldSet(
243
242
  "dnssec_policy",
244
- "inline_signing",
245
243
  "parental_agents",
246
244
  name=_("DNSSEC"),
247
245
  ),
@@ -317,7 +315,6 @@ class ZoneForm(ZoneTemplateUpdateMixin, TenancyForm, NetBoxModelForm):
317
315
  )
318
316
 
319
317
  if not get_field_value(self, "dnssec_policy"):
320
- del self.fields["inline_signing"]
321
318
  del self.fields["parental_agents"]
322
319
 
323
320
  if not get_field_value(self, "registrar"):
@@ -552,7 +549,7 @@ class ZoneFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
552
549
  inline_signing = forms.NullBooleanField(
553
550
  required=False,
554
551
  widget=forms.Select(choices=BOOLEAN_WITH_BLANK_CHOICES),
555
- label=_("Use Inline Signing"),
552
+ label=_("DNSSEC Policy uses inline signing"),
556
553
  )
557
554
  parental_agents = forms.GenericIPAddressField(
558
555
  required=False,
@@ -632,7 +629,6 @@ class ZoneImportForm(ZoneTemplateUpdateMixin, NetBoxModelImportForm):
632
629
  "soa_expire",
633
630
  "soa_minimum",
634
631
  "dnssec_policy",
635
- "inline_signing",
636
632
  "parental_agents",
637
633
  "rfc2317_prefix",
638
634
  "rfc2317_parent_managed",
@@ -741,10 +737,6 @@ class ZoneImportForm(ZoneTemplateUpdateMixin, NetBoxModelImportForm):
741
737
  },
742
738
  label=_("DNSSEC Policy"),
743
739
  )
744
- inline_signing = forms.BooleanField(
745
- required=False,
746
- label=_("Use Inline Signing"),
747
- )
748
740
  registrar = CSVModelChoiceField(
749
741
  queryset=Registrar.objects.all(),
750
742
  required=False,
@@ -860,7 +852,6 @@ class ZoneBulkEditForm(NetBoxModelBulkEditForm):
860
852
  ),
861
853
  FieldSet(
862
854
  "dnssec_policy",
863
- "inline_signing",
864
855
  "parental_agents",
865
856
  name=_("DNSSEC"),
866
857
  ),
@@ -990,11 +981,6 @@ class ZoneBulkEditForm(NetBoxModelBulkEditForm):
990
981
  required=False,
991
982
  label=_("DNSSEC Policy"),
992
983
  )
993
- inline_signing = forms.NullBooleanField(
994
- required=False,
995
- widget=BulkEditNullBooleanSelect(),
996
- label=_("Use Inline Signing"),
997
- )
998
984
  parental_agents = SimpleArrayField(
999
985
  required=False,
1000
986
  base_field=forms.GenericIPAddressField(),
@@ -34,6 +34,7 @@ class NetBoxDNSDNSSECPolicyFilter(
34
34
  ]
35
35
  | None
36
36
  ) = strawberry_django.filter_field()
37
+ inline_signing: FilterLookup[bool] | None = strawberry_django.filter_field()
37
38
  key_templates: (
38
39
  Annotated[
39
40
  "NetBoxDNSDNSSECKeyTemplateFilter",
@@ -91,7 +91,6 @@ class NetBoxDNSZoneFilter(
91
91
  ]
92
92
  | None
93
93
  )
94
- inline_signing: FilterLookup[bool] | None = strawberry_django.filter_field()
95
94
 
96
95
  registrar: (
97
96
  Annotated[
@@ -89,7 +89,7 @@ class NetBoxDNSZoneType(NetBoxObjectType):
89
89
  ]
90
90
  | None
91
91
  )
92
- inline_signing: bool
92
+ inline_signing: bool | None
93
93
  parental_agents: List[str]
94
94
  registrar: (
95
95
  Annotated["NetBoxDNSRegistrarType", strawberry.lazy("netbox_dns.graphql.types")]
@@ -194,6 +194,7 @@ class NetBoxDNSDNSSECPolicyType(NetBoxObjectType):
194
194
  description: str | None
195
195
  status: str
196
196
  tenant: Annotated["TenantType", strawberry.lazy("tenancy.graphql.types")] | None
197
+ inline_signing: bool
197
198
  key_templates: List[
198
199
  Annotated[
199
200
  "NetBoxDNSDNSSECKeyTemplateType",
@@ -0,0 +1,22 @@
1
+ # Generated by Django 5.2.6 on 2025-10-05 16:57
2
+
3
+ from django.db import migrations, models
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+
8
+ dependencies = [
9
+ ("netbox_dns", "0024_zonetemplate_parental_agents"),
10
+ ]
11
+
12
+ operations = [
13
+ migrations.RemoveField(
14
+ model_name="zone",
15
+ name="inline_signing",
16
+ ),
17
+ migrations.AddField(
18
+ model_name="dnssecpolicy",
19
+ name="inline_signing",
20
+ field=models.BooleanField(default=True),
21
+ ),
22
+ ]
@@ -51,6 +51,11 @@ class DNSSECPolicy(ContactsMixin, NetBoxModel):
51
51
  null=False,
52
52
  )
53
53
 
54
+ inline_signing = models.BooleanField(
55
+ verbose_name=_("Inline Signing"),
56
+ help_text=_("Use inline signing"),
57
+ default=True,
58
+ )
54
59
  key_templates = models.ManyToManyField(
55
60
  verbose_name=_("Key Templates"),
56
61
  to="DNSSECKeyTemplate",
netbox_dns/models/zone.py CHANGED
@@ -25,6 +25,7 @@ from netbox.search import SearchIndex, register_search
25
25
  from netbox.plugins.utils import get_plugin_config
26
26
  from utilities.querysets import RestrictedQuerySet
27
27
  from ipam.models import IPAddress
28
+ from ipam.choices import IPAddressFamilyChoices
28
29
 
29
30
  from netbox_dns.choices import (
30
31
  RecordClassChoices,
@@ -123,7 +124,6 @@ class Zone(ObjectModificationMixin, ContactsMixin, NetBoxModel):
123
124
  "description",
124
125
  "status",
125
126
  "dnssec_policy",
126
- "inline_signing",
127
127
  "parental_agents",
128
128
  "registrar",
129
129
  "registry_domain_id",
@@ -262,11 +262,6 @@ class Zone(ObjectModificationMixin, ContactsMixin, NetBoxModel):
262
262
  blank=True,
263
263
  null=True,
264
264
  )
265
- inline_signing = models.BooleanField(
266
- verbose_name=_("Inline Signing"),
267
- help_text=_("Use inline signing for DNSSEC"),
268
- default=True,
269
- )
270
265
  parental_agents = ArrayField(
271
266
  base_field=models.GenericIPAddressField(
272
267
  protocol="both",
@@ -432,6 +427,13 @@ class Zone(ObjectModificationMixin, ContactsMixin, NetBoxModel):
432
427
  def is_rfc2317_zone(self):
433
428
  return self.rfc2317_prefix is not None
434
429
 
430
+ @property
431
+ def inline_signing(self):
432
+ if self.dnssec_policy is None:
433
+ return None
434
+
435
+ return self.dnssec_policy.inline_signing
436
+
435
437
  def get_rfc2317_parent_zone(self):
436
438
  if not self.is_rfc2317_zone:
437
439
  return None
@@ -801,7 +803,6 @@ class Zone(ObjectModificationMixin, ContactsMixin, NetBoxModel):
801
803
 
802
804
  def clean(self, *args, **kwargs):
803
805
  if not self.dnssec_policy:
804
- self.inline_signing = self._meta.get_field("inline_signing").get_default()
805
806
  self.parental_agents = self._meta.get_field("parental_agents").get_default()
806
807
 
807
808
  if not self.registrar:
@@ -970,9 +971,21 @@ class Zone(ObjectModificationMixin, ContactsMixin, NetBoxModel):
970
971
  zones = self.view.zones.filter(
971
972
  arpa_network__net_contains_or_equals=self.arpa_network
972
973
  )
974
+
975
+ if self.arpa_network.version == IPAddressFamilyChoices.FAMILY_4:
976
+ record_type = RecordTypeChoices.A
977
+ else:
978
+ record_type = RecordTypeChoices.AAAA
979
+
973
980
  address_records = Record.objects.filter(
974
- Q(ptr_record__isnull=True) | Q(ptr_record__zone__in=zones),
975
- type__in=(RecordTypeChoices.A, RecordTypeChoices.AAAA),
981
+ Q(
982
+ ptr_record__isnull=True,
983
+ zone__view=self.view,
984
+ ip_address__isnull=False,
985
+ ip_address__contained=self.arpa_network,
986
+ type=record_type,
987
+ )
988
+ | Q(ptr_record__zone__in=zones),
976
989
  disable_ptr=False,
977
990
  )
978
991
 
@@ -1001,7 +1014,7 @@ class Zone(ObjectModificationMixin, ContactsMixin, NetBoxModel):
1001
1014
  arpa_network__net_contains=self.rfc2317_prefix
1002
1015
  )
1003
1016
  address_records = Record.objects.filter(
1004
- Q(ptr_record__isnull=True)
1017
+ Q(ptr_record__isnull=True, ip_address__contained=self.rfc2317_prefix)
1005
1018
  | Q(ptr_record__zone__in=zones)
1006
1019
  | Q(ptr_record__zone=self),
1007
1020
  type=RecordTypeChoices.A,
@@ -23,12 +23,16 @@ class DNSSECPolicyTable(TenancyColumnsMixin, NetBoxTable):
23
23
  class Meta(NetBoxTable.Meta):
24
24
  model = DNSSECPolicy
25
25
 
26
- fields = ("description",)
26
+ fields = (
27
+ "description",
28
+ "inline_signing",
29
+ )
27
30
 
28
31
  default_columns = (
29
32
  "name",
30
33
  "description",
31
34
  "status",
35
+ "inline_signing",
32
36
  "use_nsec3",
33
37
  "tags",
34
38
  )
netbox_dns/tables/zone.py CHANGED
@@ -26,7 +26,6 @@ class ZoneTable(TenancyColumnsMixin, NetBoxTable):
26
26
  "description",
27
27
  "soa_rname",
28
28
  "soa_serial",
29
- "inline_signing",
30
29
  "rfc2317_parent_managed",
31
30
  "registry_domain_id",
32
31
  "expiration_date",
@@ -17,6 +17,10 @@
17
17
  <th scope="row">{% trans "Status" %}</th>
18
18
  <td>{% badge object.get_status_display bg_color=object.get_status_color %}</td>
19
19
  </tr>
20
+ <tr>
21
+ <th scope="row">{% trans "Use Inline Signing" %}</th>
22
+ <td>{% checkmark object.inline_signing %}</td>
23
+ </tr>
20
24
  <tr>
21
25
  <th scope="row">{% trans "Key Templates" %}</th>
22
26
  <td>
@@ -104,10 +104,6 @@
104
104
  <th scope="row">{% trans "Policy" %}</th>
105
105
  <td>{{ object.dnssec_policy|linkify }}</td>
106
106
  </tr>
107
- <tr>
108
- <th scope="row">{% trans "Use Inline Signing" %}</th>
109
- <td>{% checkmark object.inline_signing %}</td>
110
- </tr>
111
107
  <tr>
112
108
  <th scope="row">{% trans "Parental Agents" %}</th>
113
109
  <td>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: netbox-plugin-dns
3
- Version: 1.4.1
3
+ Version: 1.4.2
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,16 +1,16 @@
1
- netbox_dns/__init__.py,sha256=XRspLVS99IjahpMWpHVZj2p_-qqFem1zwZVuHNXMV8A,4890
1
+ netbox_dns/__init__.py,sha256=JGlwM9mhwz2vA25xj2Fcg5MPeReDw-EOU9LCS0MAVt4,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
5
5
  netbox_dns/urls.py,sha256=wrse8l5scD-jz_O7WY0YXRlYPzpkL-0-kyAd-wCPtbQ,2596
6
6
  netbox_dns/api/field_serializers.py,sha256=nVZ6d69DWagONDwbYCP2j3cmL-x9lryitF1wThEJxyI,725
7
- netbox_dns/api/nested_serializers.py,sha256=7ViTZBNMEZ7-NAGn5LXnd7AWxt7TbpFdAq1pcCPtTK8,3695
7
+ netbox_dns/api/nested_serializers.py,sha256=jPFLmZDZawasKBM3OxYecjkV5-ZV67_qmSbStyDah4k,3725
8
8
  netbox_dns/api/serializers.py,sha256=OHrpfJkBn6D1y6b3nIxBEFyE50U5p-Aqv4lBojMEFgk,474
9
9
  netbox_dns/api/urls.py,sha256=-kQaei47yZeGbDpQ9RaFaFlFb682ThuPA5h321_2cgM,1000
10
10
  netbox_dns/api/views.py,sha256=w71SRyZue5zPD1C64TIr496nYFA_ARjHTlpSVFTZ76o,4522
11
11
  netbox_dns/api/serializers_/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
12
  netbox_dns/api/serializers_/dnssec_key_template.py,sha256=gZNv8hdpTc_X0rhfuKfUcsLzV_l6CV_tTzElw6tyEGw,1654
13
- netbox_dns/api/serializers_/dnssec_policy.py,sha256=DOGtQDiLLMmH2TvmVp9w-enZtrXygiSwfiREWk2IjH0,4322
13
+ netbox_dns/api/serializers_/dnssec_policy.py,sha256=ajeNPp6ziC_M2HLtZxCUUOk-aOQ4Mj1Knq6W1Z8EL3M,4382
14
14
  netbox_dns/api/serializers_/nameserver.py,sha256=0ItKFCmDVqMbw9i5LandYMZTpJAGClu6lejaWvpLbBY,1288
15
15
  netbox_dns/api/serializers_/prefix.py,sha256=kZ1DjDly6VFZamXSxGa57YC6MfZZcI5S7jmGBkVB2_I,551
16
16
  netbox_dns/api/serializers_/record.py,sha256=wHs86KwLCgeC_7ORw2b0gvlpAustwfBSfbPva1yPb-k,2570
@@ -18,7 +18,7 @@ netbox_dns/api/serializers_/record_template.py,sha256=imRRPkCXQMCpXUUk58kB2KwXC6
18
18
  netbox_dns/api/serializers_/registrar.py,sha256=ul_6SJVqxvTE2ysXBy52U59oTzwmaD781URH1l1OW9o,927
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
- netbox_dns/api/serializers_/zone.py,sha256=JfjhxmfbpJRNzFqnjueFvpJS5ASnbomm1jzJrjYPpqo,6407
21
+ netbox_dns/api/serializers_/zone.py,sha256=NrwIGjxvoYakI7mV9tTFSdQakTeHLcFcVrVr7-qex14,6548
22
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
@@ -27,7 +27,7 @@ netbox_dns/choices/record.py,sha256=Ynw1aDASQEovzIPJbRFRM6F-M9u39iHMe0aj9DZsrfk,
27
27
  netbox_dns/choices/utilities.py,sha256=osvDMxOZnvxx9Jc7zKjkMGNFGxtnhM49q71Q-h61lLA,123
28
28
  netbox_dns/choices/zone.py,sha256=KvyNL_TR_2FXCoH6usrXTRJYRzZ9W1PiDvunutAUYhY,4294
29
29
  netbox_dns/fields/__init__.py,sha256=yUVrNQ7BvoeVRGoiRFmrZxXsp1LIwHLRLl0_5mBIyzk,143
30
- netbox_dns/fields/address.py,sha256=qNLHmpwwJ3TevljG1QsUr_f2h6NrPsK6wr-R-Ti8eZI,1262
30
+ netbox_dns/fields/address.py,sha256=t0BLnGKYyqraiHixEtt6FvpqUixaHoIFTN9YgNufWng,1750
31
31
  netbox_dns/fields/choice_array.py,sha256=qECgwzJ9PVGIbpqC_JVzuSUsV7C3FG03ibv1EUrvZr4,850
32
32
  netbox_dns/fields/ipam.py,sha256=wla-kBm77BpD0LNQhgRZS1RYbVois7WDqPpyQkUT02k,481
33
33
  netbox_dns/fields/network.py,sha256=a5nTzjscRufxgMjVsf5juszSYuTujU50pQ9P7q4qMVs,3740
@@ -35,41 +35,41 @@ netbox_dns/fields/rfc2317.py,sha256=y72PZKlXZ8_6P4eeWZ8IF3gqOMjPxW48gk3AB81XboE,
35
35
  netbox_dns/fields/timeperiod.py,sha256=InK3FVc8gHNQjx101a7HsGfrHxvoG1y6drYwuRjRSIE,941
36
36
  netbox_dns/filtersets/__init__.py,sha256=bKppz_w3X2xNNHOcxZZiIO7zSkDaNTrZJ__k1U7rKik,275
37
37
  netbox_dns/filtersets/dnssec_key_template.py,sha256=dFaNGYdGXghe_uDMedOPxrMGxhDu4gHXwSQ6VLSY7gk,1625
38
- netbox_dns/filtersets/dnssec_policy.py,sha256=FRmHulpWmglf89J6bzQYUVFFxvt0mvp29kp7LHA5080,3071
38
+ netbox_dns/filtersets/dnssec_policy.py,sha256=Z0SOfhKYA0GCgbfTqoDnAqcnzt9AmMZLGGkYD3VO7dc,3101
39
39
  netbox_dns/filtersets/nameserver.py,sha256=4hkFsohhvBptFwY9_LJJN8_8KkMhCPsFujzIlDhlnqw,1251
40
40
  netbox_dns/filtersets/record.py,sha256=7asGcd2zePhnIDAvuVE-aKAo_NNM0Pm06epXzEql4y4,3916
41
41
  netbox_dns/filtersets/record_template.py,sha256=Pc4P479MqfgdUMvBK39ic2nsV_gg4GT_tbdVcCL9wSI,1605
42
42
  netbox_dns/filtersets/registrar.py,sha256=6QrsrWXu19bMa99DzwwXqfNqxpvTG0JwGEpybhOSYps,978
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
- netbox_dns/filtersets/zone.py,sha256=Uzlgo2dGCQhH_S3tI8gVYHi7tMoNS1YK5agbLRkV7bc,7603
45
+ netbox_dns/filtersets/zone.py,sha256=TNSmYWS7ubKkXXsJNH4mDOAlNATQE1eGaivpJxkVykY,8246
46
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
48
  netbox_dns/forms/dnssec_key_template.py,sha256=zWOTdsbfCcjpizOZn6Y8HRewJarFwtlXcW4H0ZyqJVI,6176
49
- netbox_dns/forms/dnssec_policy.py,sha256=_KCGgWZB8yrC2wNFefqaM32cYMFzHsCAdqq83AF9jiw,17139
49
+ netbox_dns/forms/dnssec_policy.py,sha256=U0X6b-zWXBov015CNCxZ2c_2jTaFhxtWpQ4Vw1hhfUI,17736
50
50
  netbox_dns/forms/nameserver.py,sha256=_iQJXbdFrrtMnRT8yZHnOp1Nj1iwxjHIAH_hrvCkrKU,3848
51
51
  netbox_dns/forms/record.py,sha256=wRl3uRY13VK8cF79u69-DDJmHJnZjwuLR60PsUGJ3p0,8493
52
52
  netbox_dns/forms/record_template.py,sha256=5yuY2ppV2diEOdm_IN3QSLLEdWkOkWZOYRtOh0qPY7A,6796
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=fu3WmQKGknEv9z7vjHqRdnBBfPyYQ3rWJZPRP8a4pkQ,30813
56
+ netbox_dns/forms/zone.py,sha256=07UZTpnEYv6gK8G7bXRIsOyvLWQCBWNApVNn_MrIifg,30394
57
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=97vPzKAGzz9tn8qm-kc_1vZHtwc5QMHq-vLkZ42Regg,10213
62
+ netbox_dns/graphql/types.py,sha256=eAuNlN82tdI9U52OvRr1qvxY5Q_hgdoHFuYhLdWxynQ,10245
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
- netbox_dns/graphql/filters/dnssec_policy.py,sha256=hu2_W74PDxN4QLRQTFd-qh_qf55ztoWtShTiVhOuvD8,4656
65
+ netbox_dns/graphql/filters/dnssec_policy.py,sha256=MAnnCU48UhtETcXJjwLdiikczpb5fR3k6wrfZCQKJTI,4737
66
66
  netbox_dns/graphql/filters/nameserver.py,sha256=sDVIrRXBeyscGfQSost4SqrBnBQ_ZIK13GjaXkKAcCw,1050
67
67
  netbox_dns/graphql/filters/record.py,sha256=v3-8zyVrA0Hl4AC9d4SkYAQLHpQ1StIP-ws8xM_5Qb4,3313
68
68
  netbox_dns/graphql/filters/record_template.py,sha256=sCAm-ct3aXjz9XNtAfUhPXaXRRHIaiXq_oQ4oFzxFY8,1819
69
69
  netbox_dns/graphql/filters/registrar.py,sha256=4tv1nlZU41-sOsNXf3-JyZESpAdktsDj7JTr1hv0aG4,1158
70
70
  netbox_dns/graphql/filters/registration_contact.py,sha256=feCw4zZd2UQ9895Gg0PJ4R-oGm90ss5XB6ve3B9JlVg,1402
71
71
  netbox_dns/graphql/filters/view.py,sha256=ozXGNJ0ELri2FAnQXPHDs3--Hznzx4ZF5mH264nr-DI,934
72
- netbox_dns/graphql/filters/zone.py,sha256=2mqPq4jikCWhbGRbIIcKbCXRtA9QiH6rXb5ufk1DAFE,5253
72
+ netbox_dns/graphql/filters/zone.py,sha256=6YuValdVfjYHRGtjmw7uVFdrY_uy7tz0Rd__ODtRvjc,5172
73
73
  netbox_dns/graphql/filters/zone_template.py,sha256=6ZxBN_VPXvBDGXXwcYlkX6wJXx_IlMAZIEDX5-ARO_4,3100
74
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
@@ -109,6 +109,7 @@ netbox_dns/migrations/0023_disable_ptr_false.py,sha256=Wo-d60QmPCcvdVIVShF8L7z-L
109
109
  netbox_dns/migrations/0024_tenancy.py,sha256=3kc5l5_AyfhOI6g6mbCfReUAbSgb2DAv0MDMZqJ-3YQ,1745
110
110
  netbox_dns/migrations/0024_zonetemplate_parental_agents.py,sha256=e1mQ1NwP8eqqfgc74PFSRmnENL5VCLPIFzInePsZd4w,635
111
111
  netbox_dns/migrations/0025_ipam_coupling_cf.py,sha256=7uHujclWrsYw5QMLWft0Po78Ow5Q8MjPuU7moKyQ2qs,620
112
+ netbox_dns/migrations/0025_remove_zone_inline_signing_and_more.py,sha256=jCubcnlrdTbffK-DpRvmJ5CKcg5drGJg13sUG7OTtdU,522
112
113
  netbox_dns/migrations/0026_domain_registration.py,sha256=qUJ1oUGHIGGNWD7QRLnxElbM5eNp7dYNNn_OYIw8Xvo,5796
113
114
  netbox_dns/migrations/0027_alter_registrar_iana_id.py,sha256=QUtRIrqqfkraFmzzeJFZWAEv4PfrOouoHtrV6FRn8Kc,404
114
115
  netbox_dns/migrations/0028_rfc2317_fields.py,sha256=D8r43xxBjYXiL6ycmX8RY5_WG7tRYEDjutOeYM1H56I,1364
@@ -118,21 +119,21 @@ netbox_dns/mixins/__init__.py,sha256=LxTEfpod_RHCyMtnzDljv0_dwqp2z3Q6tqbXW8LTGD8
118
119
  netbox_dns/mixins/object_modification.py,sha256=AR64fU5f7g-scNAj9b54eSoS9dpjyOpqrxXVXPcOhY8,1807
119
120
  netbox_dns/models/__init__.py,sha256=CuwFENIVUv0FNMDlY18Am-mvN5kBGkPOGavCP0cle7c,273
120
121
  netbox_dns/models/dnssec_key_template.py,sha256=AcyD9PLtg1lLZAFlEJ8TugSlglOSIBVihxgmi39zRm4,2738
121
- netbox_dns/models/dnssec_policy.py,sha256=REsE8p04bgJVF8yJuWuUITXpsZmvVlXWyQuJ9I6dEMs,5268
122
+ netbox_dns/models/dnssec_policy.py,sha256=KzdSWLK88ByfdcXhRjMoE2TypT2vSVh_Mh9tcT29PNs,5423
122
123
  netbox_dns/models/nameserver.py,sha256=oVfyc_iWRzxVE2tIhfRb1Vuj2gZmlfFFzEtXj9ZEr6s,3848
123
124
  netbox_dns/models/record.py,sha256=7f4h3ngUvPpQ4IQroTJAWO8wD2fqy1u8j-LuA23PWtM,32761
124
125
  netbox_dns/models/record_template.py,sha256=Qr43_YZm1z3Od1cBdDY9wpNlV-UCzvpn2c6_dDzFzN8,5145
125
126
  netbox_dns/models/registrar.py,sha256=-ozazecvd-oryEoDlOUvTWhEQKKQp3my6YVTEzWlUuI,1747
126
127
  netbox_dns/models/registration_contact.py,sha256=9ehnTjg8KUrUYJKRRu2SaJX-NE5dO4wy90FRPlT2ys4,3620
127
128
  netbox_dns/models/view.py,sha256=pwo7i8gtukIRgAC1A4rm58jcEpIbsSW_IUq6vSv-mRo,4618
128
- netbox_dns/models/zone.py,sha256=zHRCXfRliqhE9lQwfTU5xXHn_8dhd7yOn5L_7NaLhLE,36500
129
+ netbox_dns/models/zone.py,sha256=Ih02tPW6mTHpzIjpIXp69DacpVUYBpOR72DET7uJfbg,36840
129
130
  netbox_dns/models/zone_template.py,sha256=jm7XsBADOWhGYOH-_n9a97CTE6w_BCP3gMEUIO-tfTs,5391
130
131
  netbox_dns/signals/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
131
132
  netbox_dns/signals/dnssec.py,sha256=o4MOEg6ftxoDWFAhDtajkXzb7Nb6KuUHjtx1zNu7C1w,1040
132
133
  netbox_dns/signals/ipam_dnssync.py,sha256=1zhlf4cMcJLlFosX7YzyqVYdFFHV4MFwTz5KCdL8xQc,7730
133
134
  netbox_dns/tables/__init__.py,sha256=tObkTOHw_6kVtEcwdyshN0Ql-8VGhwsgQw7owL_s2lI,273
134
135
  netbox_dns/tables/dnssec_key_template.py,sha256=5Y4S3Q_RtDdUHI4KxY37Trm7uKQCFUcqkC5mrb8Wi_A,1101
135
- netbox_dns/tables/dnssec_policy.py,sha256=6GIhoecku3BjYwx7wsOzzkZ0uEVZk5bA63foJ3_g9sw,3332
136
+ netbox_dns/tables/dnssec_policy.py,sha256=zjM57I5sXWSPlVixwwc8aL9Q64LkDSi2CuW_EmdBCmE,3414
136
137
  netbox_dns/tables/ipam_dnssync.py,sha256=7IK95XlA2ter6gsHqXjXPd6WubpOxrV-O5-UT6R1CKU,330
137
138
  netbox_dns/tables/nameserver.py,sha256=NFFHwwW174x_XskHF9oBllnI22PGV0J78mklrJF_psw,741
138
139
  netbox_dns/tables/record.py,sha256=DRe0voUIlqi3Q4CHDp-xgzCqgnSG9ynBhNPO8vnzHQw,4777
@@ -140,17 +141,17 @@ netbox_dns/tables/record_template.py,sha256=ueNSya2Zyrm_zU1Z-ZxwhsJIfxBtYXXoi2pS
140
141
  netbox_dns/tables/registrar.py,sha256=yI4n0jq7igYwa-zs6YT6YVV2FxkgpfkSAsA_iPzel7A,776
141
142
  netbox_dns/tables/registration_contact.py,sha256=PeXp5l2WC5qIwctNdk_WP9LRDq_7bnoUlSS3OS6-SDs,980
142
143
  netbox_dns/tables/view.py,sha256=BFM50EgudRvcB32hqi0I5qA5nLBfXLzHbt_2q4_KeJA,1318
143
- netbox_dns/tables/zone.py,sha256=0lsfI3N9rY11Cxgr-t0PReyNRSnB10JOh-jMVZ4qEBA,2434
144
+ netbox_dns/tables/zone.py,sha256=SSbfM0x1gVxb0Xfa_BxyraLuIM4ThflWYpdaAbBxw5U,2404
144
145
  netbox_dns/tables/zone_template.py,sha256=90geASGP6jSqKnvx2t-DaSxNZpp7j67lH1t0UzsKZ1Q,1755
145
146
  netbox_dns/templates/netbox_dns/dnsseckeytemplate.html,sha256=dSEyHgUp0k_5JSdR4s4m_7Rom67TqvRIQN0zbQKYfjE,2839
146
- netbox_dns/templates/netbox_dns/dnssecpolicy.html,sha256=dXHAt8ISsSWv-vK_kaJMcAzUBh4TZ2hAmeaYa47u0PU,7694
147
+ netbox_dns/templates/netbox_dns/dnssecpolicy.html,sha256=0UGFd_c9Nckv8iVo7muaUipuCLUaXPlfCA9hjRJsw-U,7894
147
148
  netbox_dns/templates/netbox_dns/nameserver.html,sha256=MawPiuAmjFrbv0zRi-7xkm8vr-dT1tlEno8EcoQ9peU,1714
148
149
  netbox_dns/templates/netbox_dns/record.html,sha256=aFvbIEhhfp0AH5tRDNSgc2nQIymGgnVilk5Q8lCpKKw,7055
149
150
  netbox_dns/templates/netbox_dns/recordtemplate.html,sha256=a29PAUl-KI_I1lxWpVdPp2loJtzgis9DG9erOWrOZM0,3708
150
151
  netbox_dns/templates/netbox_dns/registrar.html,sha256=4kJuj3biiDxQrIMQEQUEmF4iGRE4psr6Fh0CBP1evz8,2308
151
152
  netbox_dns/templates/netbox_dns/registrationcontact.html,sha256=sljVp_MrPSJRc2vJCPFXq9MiWOw4wjbr1kI_YStBntw,3094
152
153
  netbox_dns/templates/netbox_dns/view.html,sha256=1MuzOYNQezRrryNjlklgxErjGTFoVnwqcxf4qceuglw,3320
153
- netbox_dns/templates/netbox_dns/zone.html,sha256=Hx2SL9gk7IKzBv5q45eESQADBPOCgbsW1yGe96-wlik,8262
154
+ netbox_dns/templates/netbox_dns/zone.html,sha256=a9v3tuWCiR_0Bu-6Mw06miQMz7lLBcsOpI3Ywi3Eqzs,8062
154
155
  netbox_dns/templates/netbox_dns/zonetemplate.html,sha256=juPdeCtpZGcCqM-nJT4IVTmwgOtTOEvDek2iiAJ6aQw,4801
155
156
  netbox_dns/templates/netbox_dns/record/managed.html,sha256=uwpxQTxyfAXkWqThLT-T2ZssKNUhXTDDMnLWJSVuDNU,119
156
157
  netbox_dns/templates/netbox_dns/record/related.html,sha256=R59aPhE4CyIZtTH0ncwDyS6_wAe_Y-oZjuN_j4qk8iA,1158
@@ -188,8 +189,8 @@ netbox_dns/views/registration_contact.py,sha256=5bJWjNBisqCkBo6d2TJyyBJlc95WM7Vc
188
189
  netbox_dns/views/view.py,sha256=xLXt7sKrda3FpNXsBSJk8L8P2XhZ1sVb5OOXovCsKEU,3089
189
190
  netbox_dns/views/zone.py,sha256=do8kB6o911D7wCdUbU72SRTaaNhDUG5pCT8WXGhGnWc,7122
190
191
  netbox_dns/views/zone_template.py,sha256=5P9DT3XBRL-TiM5zFhBTMlMusL4bP2jTu3GHxKz5ojc,2553
191
- netbox_plugin_dns-1.4.1.dist-info/licenses/LICENSE,sha256=I3tDu11bZfhFm3EkV4zOD5TmWgLjnUNLEFwrdjniZYs,1112
192
- netbox_plugin_dns-1.4.1.dist-info/METADATA,sha256=Qszj1PDusOulJdpKJsh85YJLZZQ1Hp5k3AuBvHFk0EA,7825
193
- netbox_plugin_dns-1.4.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
194
- netbox_plugin_dns-1.4.1.dist-info/top_level.txt,sha256=sA1Rwl1mRKvMC6XHe2ylZ1GF-Q1NGd08XedK9Y4xZc4,11
195
- netbox_plugin_dns-1.4.1.dist-info/RECORD,,
192
+ netbox_plugin_dns-1.4.2.dist-info/licenses/LICENSE,sha256=I3tDu11bZfhFm3EkV4zOD5TmWgLjnUNLEFwrdjniZYs,1112
193
+ netbox_plugin_dns-1.4.2.dist-info/METADATA,sha256=8qOO-0QaQ8W2CkqmeKRjIC4QZ82ViU58Nd2wB3ZfQ8Q,7825
194
+ netbox_plugin_dns-1.4.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
195
+ netbox_plugin_dns-1.4.2.dist-info/top_level.txt,sha256=sA1Rwl1mRKvMC6XHe2ylZ1GF-Q1NGd08XedK9Y4xZc4,11
196
+ netbox_plugin_dns-1.4.2.dist-info/RECORD,,