netbox-plugin-dns 1.2.11__py3-none-any.whl → 1.3.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 +2 -2
- netbox_dns/api/nested_serializers.py +54 -49
- netbox_dns/api/serializers_/dnssec_key_template.py +22 -13
- netbox_dns/api/serializers_/dnssec_policy.py +89 -40
- netbox_dns/api/serializers_/nameserver.py +25 -13
- netbox_dns/api/serializers_/record.py +45 -37
- netbox_dns/api/serializers_/record_template.py +21 -12
- netbox_dns/api/serializers_/registrar.py +14 -5
- netbox_dns/api/serializers_/registration_contact.py +13 -5
- netbox_dns/api/serializers_/view.py +28 -19
- netbox_dns/api/serializers_/zone.py +87 -63
- netbox_dns/api/serializers_/zone_template.py +40 -34
- netbox_dns/choices/dnssec_key_template.py +4 -0
- netbox_dns/filtersets/dnssec_key_template.py +10 -4
- netbox_dns/filtersets/dnssec_policy.py +1 -0
- netbox_dns/filtersets/nameserver.py +9 -4
- netbox_dns/filtersets/record.py +14 -13
- netbox_dns/filtersets/record_template.py +13 -12
- netbox_dns/filtersets/registrar.py +1 -0
- netbox_dns/filtersets/registration_contact.py +1 -0
- netbox_dns/filtersets/view.py +10 -4
- netbox_dns/filtersets/zone.py +22 -21
- netbox_dns/filtersets/zone_template.py +10 -9
- netbox_dns/forms/dnssec_key_template.py +97 -46
- netbox_dns/forms/dnssec_policy.py +130 -110
- netbox_dns/forms/nameserver.py +71 -36
- netbox_dns/forms/record.py +96 -78
- netbox_dns/forms/record_template.py +87 -59
- netbox_dns/forms/registrar.py +55 -39
- netbox_dns/forms/registration_contact.py +64 -41
- netbox_dns/forms/view.py +98 -51
- netbox_dns/forms/zone.py +259 -250
- netbox_dns/forms/zone_template.py +151 -101
- netbox_dns/graphql/enums.py +41 -0
- netbox_dns/graphql/filter_lookups.py +13 -0
- netbox_dns/graphql/filters/__init__.py +12 -0
- netbox_dns/graphql/filters/dnssec_key_template.py +63 -0
- netbox_dns/graphql/filters/dnssec_policy.py +123 -0
- netbox_dns/graphql/filters/nameserver.py +32 -0
- netbox_dns/graphql/filters/record.py +89 -0
- netbox_dns/graphql/filters/record_template.py +55 -0
- netbox_dns/graphql/filters/registrar.py +30 -0
- netbox_dns/graphql/filters/registration_contact.py +27 -0
- netbox_dns/graphql/filters/view.py +28 -0
- netbox_dns/graphql/filters/zone.py +146 -0
- netbox_dns/graphql/filters/zone_template.py +97 -0
- netbox_dns/models/dnssec_key_template.py +24 -27
- netbox_dns/models/dnssec_policy.py +17 -21
- netbox_dns/models/nameserver.py +26 -30
- netbox_dns/models/record.py +42 -46
- netbox_dns/models/record_template.py +30 -34
- netbox_dns/models/registrar.py +13 -17
- netbox_dns/models/registration_contact.py +33 -37
- netbox_dns/models/view.py +16 -20
- netbox_dns/models/zone.py +75 -78
- netbox_dns/models/zone_template.py +35 -39
- netbox_dns/tables/dnssec_key_template.py +13 -12
- netbox_dns/tables/dnssec_policy.py +18 -15
- netbox_dns/tables/nameserver.py +10 -8
- netbox_dns/tables/record.py +29 -21
- netbox_dns/tables/record_template.py +21 -17
- netbox_dns/tables/registrar.py +15 -9
- netbox_dns/tables/registration_contact.py +15 -9
- netbox_dns/tables/view.py +24 -12
- netbox_dns/tables/zone.py +23 -21
- netbox_dns/tables/zone_template.py +17 -13
- netbox_dns/views/dnssec_key_template.py +0 -9
- netbox_dns/views/dnssec_policy.py +0 -9
- netbox_dns/views/nameserver.py +0 -9
- netbox_dns/views/record.py +0 -9
- netbox_dns/views/record_template.py +0 -3
- netbox_dns/views/registrar.py +0 -3
- netbox_dns/views/registration_contact.py +0 -3
- netbox_dns/views/view.py +0 -9
- netbox_dns/views/zone.py +0 -10
- netbox_dns/views/zone_template.py +0 -4
- {netbox_plugin_dns-1.2.11.dist-info → netbox_plugin_dns-1.3.0.dist-info}/METADATA +4 -2
- {netbox_plugin_dns-1.2.11.dist-info → netbox_plugin_dns-1.3.0.dist-info}/RECORD +81 -69
- netbox_dns/graphql/filters.py +0 -88
- {netbox_plugin_dns-1.2.11.dist-info → netbox_plugin_dns-1.3.0.dist-info}/WHEEL +0 -0
- {netbox_plugin_dns-1.2.11.dist-info → netbox_plugin_dns-1.3.0.dist-info}/licenses/LICENSE +0 -0
- {netbox_plugin_dns-1.2.11.dist-info → netbox_plugin_dns-1.3.0.dist-info}/top_level.txt +0 -0
netbox_dns/forms/zone.py
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
from packaging.version import Version
|
|
2
|
-
|
|
3
1
|
from django import forms
|
|
4
2
|
from django.db import transaction
|
|
5
3
|
from django.conf import settings
|
|
@@ -23,7 +21,6 @@ from utilities.forms.fields import (
|
|
|
23
21
|
CSVModelMultipleChoiceField,
|
|
24
22
|
DynamicModelChoiceField,
|
|
25
23
|
)
|
|
26
|
-
from utilities.release import load_release_data
|
|
27
24
|
from utilities.forms.widgets import BulkEditNullBooleanSelect, DatePicker
|
|
28
25
|
from utilities.forms.rendering import FieldSet
|
|
29
26
|
from utilities.forms import BOOLEAN_WITH_BLANK_CHOICES, add_blank_choice
|
|
@@ -52,8 +49,6 @@ __all__ = (
|
|
|
52
49
|
"ZoneBulkEditForm",
|
|
53
50
|
)
|
|
54
51
|
|
|
55
|
-
QUICK_ADD = Version(load_release_data().version) >= Version("4.2.5")
|
|
56
|
-
|
|
57
52
|
|
|
58
53
|
class RollbackTransaction(Exception):
|
|
59
54
|
pass
|
|
@@ -154,114 +149,59 @@ class ZoneTemplateUpdateMixin:
|
|
|
154
149
|
|
|
155
150
|
|
|
156
151
|
class ZoneForm(ZoneTemplateUpdateMixin, TenancyForm, NetBoxModelForm):
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
required=True,
|
|
160
|
-
label=_("View"),
|
|
161
|
-
quick_add=QUICK_ADD,
|
|
162
|
-
)
|
|
163
|
-
name = forms.CharField(
|
|
164
|
-
required=True,
|
|
165
|
-
label=_("Name"),
|
|
166
|
-
)
|
|
167
|
-
template = DynamicModelChoiceField(
|
|
168
|
-
queryset=ZoneTemplate.objects.all(),
|
|
169
|
-
required=False,
|
|
170
|
-
label=_("Template"),
|
|
171
|
-
)
|
|
172
|
-
status = forms.ChoiceField(
|
|
173
|
-
choices=ZoneStatusChoices,
|
|
174
|
-
required=False,
|
|
175
|
-
label=_("Status"),
|
|
176
|
-
)
|
|
177
|
-
nameservers = DynamicModelMultipleChoiceField(
|
|
178
|
-
queryset=NameServer.objects.all(),
|
|
179
|
-
required=False,
|
|
180
|
-
label=_("Nameservers"),
|
|
181
|
-
quick_add=QUICK_ADD,
|
|
182
|
-
)
|
|
183
|
-
default_ttl = TimePeriodField(
|
|
184
|
-
required=False,
|
|
185
|
-
help_text=_("Default TTL for new records in this zone"),
|
|
186
|
-
validators=[MinValueValidator(1)],
|
|
187
|
-
label=_("Default TTL"),
|
|
188
|
-
)
|
|
189
|
-
description = forms.CharField(
|
|
190
|
-
required=False,
|
|
191
|
-
label=_("Description"),
|
|
192
|
-
)
|
|
193
|
-
soa_ttl = TimePeriodField(
|
|
194
|
-
required=True,
|
|
195
|
-
help_text=_("TTL for the SOA record of the zone"),
|
|
196
|
-
validators=[MinValueValidator(1)],
|
|
197
|
-
label=_("SOA TTL"),
|
|
198
|
-
)
|
|
199
|
-
soa_mname = DynamicModelChoiceField(
|
|
200
|
-
queryset=NameServer.objects.all(),
|
|
201
|
-
help_text=_("Primary nameserver this zone"),
|
|
202
|
-
required=False,
|
|
203
|
-
label=_("SOA MName"),
|
|
204
|
-
quick_add=QUICK_ADD,
|
|
205
|
-
)
|
|
206
|
-
soa_rname = forms.CharField(
|
|
207
|
-
required=False,
|
|
208
|
-
help_text=_("Mailbox of the zone's administrator"),
|
|
209
|
-
label=_("SOA RName"),
|
|
210
|
-
)
|
|
211
|
-
soa_refresh = TimePeriodField(
|
|
212
|
-
required=True,
|
|
213
|
-
help_text=_("Refresh interval for secondary nameservers"),
|
|
214
|
-
validators=[MinValueValidator(1)],
|
|
215
|
-
label=_("SOA Refresh"),
|
|
216
|
-
)
|
|
217
|
-
soa_retry = TimePeriodField(
|
|
218
|
-
required=True,
|
|
219
|
-
help_text=_("Retry interval for secondary nameservers"),
|
|
220
|
-
validators=[MinValueValidator(1)],
|
|
221
|
-
label=_("SOA Retry"),
|
|
222
|
-
)
|
|
223
|
-
soa_expire = TimePeriodField(
|
|
224
|
-
required=True,
|
|
225
|
-
validators=[MinValueValidator(1)],
|
|
226
|
-
help_text=_("Expire time after which the zone is considered unavailable"),
|
|
227
|
-
label=_("SOA Expire"),
|
|
228
|
-
)
|
|
229
|
-
soa_minimum = TimePeriodField(
|
|
230
|
-
required=True,
|
|
231
|
-
help_text=_("Minimum TTL for negative results, e.g. NXRRSET, NXDOMAIN"),
|
|
232
|
-
validators=[MinValueValidator(1)],
|
|
233
|
-
label=_("SOA Minimum TTL"),
|
|
234
|
-
)
|
|
235
|
-
soa_serial_auto = forms.BooleanField(
|
|
236
|
-
required=False,
|
|
237
|
-
help_text=_("Automatically generate the SOA serial number"),
|
|
238
|
-
label=_("Generate SOA Serial"),
|
|
239
|
-
)
|
|
240
|
-
soa_serial = forms.IntegerField(
|
|
241
|
-
required=False,
|
|
242
|
-
validators=[MinValueValidator(1)],
|
|
243
|
-
label=_("SOA Serial"),
|
|
244
|
-
)
|
|
152
|
+
class Meta:
|
|
153
|
+
model = Zone
|
|
245
154
|
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
155
|
+
fields = (
|
|
156
|
+
"name",
|
|
157
|
+
"view",
|
|
158
|
+
"status",
|
|
159
|
+
"template",
|
|
160
|
+
"nameservers",
|
|
161
|
+
"default_ttl",
|
|
162
|
+
"description",
|
|
163
|
+
"soa_ttl",
|
|
164
|
+
"soa_mname",
|
|
165
|
+
"soa_rname",
|
|
166
|
+
"soa_serial_auto",
|
|
167
|
+
"soa_serial",
|
|
168
|
+
"soa_refresh",
|
|
169
|
+
"soa_retry",
|
|
170
|
+
"soa_expire",
|
|
171
|
+
"soa_minimum",
|
|
172
|
+
"rfc2317_prefix",
|
|
173
|
+
"rfc2317_parent_managed",
|
|
174
|
+
"dnssec_policy",
|
|
175
|
+
"inline_signing",
|
|
176
|
+
"parental_agents",
|
|
177
|
+
"registrar",
|
|
178
|
+
"registry_domain_id",
|
|
179
|
+
"expiration_date",
|
|
180
|
+
"domain_status",
|
|
181
|
+
"registrant",
|
|
182
|
+
"admin_c",
|
|
183
|
+
"tech_c",
|
|
184
|
+
"billing_c",
|
|
185
|
+
"tenant_group",
|
|
186
|
+
"tenant",
|
|
187
|
+
"tags",
|
|
188
|
+
)
|
|
251
189
|
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
190
|
+
labels = {
|
|
191
|
+
"soa_serial_auto": _("Generate SOA Serial"),
|
|
192
|
+
"rfc2317_parent_managed": _("RFC2317 Parent Managed"),
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
help_texts = {
|
|
196
|
+
"soa_serial_auto": _("Automatically generate the SOA serial number"),
|
|
197
|
+
"rfc2317_parent_managed": _(
|
|
198
|
+
"IPv4 reverse zone for delegating the RFC2317 PTR records is managed in NetBox DNS"
|
|
199
|
+
),
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
widgets = {
|
|
203
|
+
"expiration_date": DatePicker,
|
|
204
|
+
}
|
|
265
205
|
|
|
266
206
|
fieldsets = (
|
|
267
207
|
FieldSet(
|
|
@@ -308,8 +248,15 @@ class ZoneForm(ZoneTemplateUpdateMixin, TenancyForm, NetBoxModelForm):
|
|
|
308
248
|
"billing_c",
|
|
309
249
|
name=_("Domain Registration"),
|
|
310
250
|
),
|
|
311
|
-
FieldSet(
|
|
312
|
-
|
|
251
|
+
FieldSet(
|
|
252
|
+
"tenant_group",
|
|
253
|
+
"tenant",
|
|
254
|
+
name=_("Tenancy"),
|
|
255
|
+
),
|
|
256
|
+
FieldSet(
|
|
257
|
+
"tags",
|
|
258
|
+
name=_("Tags"),
|
|
259
|
+
),
|
|
313
260
|
)
|
|
314
261
|
|
|
315
262
|
def __init__(self, *args, **kwargs):
|
|
@@ -356,6 +303,96 @@ class ZoneForm(ZoneTemplateUpdateMixin, TenancyForm, NetBoxModelForm):
|
|
|
356
303
|
name__in=default_nameservers
|
|
357
304
|
)
|
|
358
305
|
|
|
306
|
+
view = DynamicModelChoiceField(
|
|
307
|
+
queryset=View.objects.all(),
|
|
308
|
+
required=True,
|
|
309
|
+
label=_("View"),
|
|
310
|
+
)
|
|
311
|
+
name = forms.CharField(
|
|
312
|
+
required=True,
|
|
313
|
+
label=_("Name"),
|
|
314
|
+
)
|
|
315
|
+
template = DynamicModelChoiceField(
|
|
316
|
+
queryset=ZoneTemplate.objects.all(),
|
|
317
|
+
required=False,
|
|
318
|
+
label=_("Template"),
|
|
319
|
+
)
|
|
320
|
+
status = forms.ChoiceField(
|
|
321
|
+
choices=ZoneStatusChoices,
|
|
322
|
+
required=False,
|
|
323
|
+
label=_("Status"),
|
|
324
|
+
)
|
|
325
|
+
nameservers = DynamicModelMultipleChoiceField(
|
|
326
|
+
queryset=NameServer.objects.all(),
|
|
327
|
+
required=False,
|
|
328
|
+
label=_("Nameservers"),
|
|
329
|
+
)
|
|
330
|
+
default_ttl = TimePeriodField(
|
|
331
|
+
required=False,
|
|
332
|
+
help_text=_("Default TTL for new records in this zone"),
|
|
333
|
+
validators=[MinValueValidator(1)],
|
|
334
|
+
label=_("Default TTL"),
|
|
335
|
+
)
|
|
336
|
+
soa_ttl = TimePeriodField(
|
|
337
|
+
required=True,
|
|
338
|
+
help_text=_("TTL for the SOA record of the zone"),
|
|
339
|
+
validators=[MinValueValidator(1)],
|
|
340
|
+
label=_("SOA TTL"),
|
|
341
|
+
)
|
|
342
|
+
soa_mname = DynamicModelChoiceField(
|
|
343
|
+
queryset=NameServer.objects.all(),
|
|
344
|
+
help_text=_("Primary nameserver this zone"),
|
|
345
|
+
required=False,
|
|
346
|
+
label=_("SOA MName"),
|
|
347
|
+
)
|
|
348
|
+
soa_rname = forms.CharField(
|
|
349
|
+
required=False,
|
|
350
|
+
help_text=_("Mailbox of the zone's administrator"),
|
|
351
|
+
label=_("SOA RName"),
|
|
352
|
+
)
|
|
353
|
+
soa_refresh = TimePeriodField(
|
|
354
|
+
required=True,
|
|
355
|
+
help_text=_("Refresh interval for secondary nameservers"),
|
|
356
|
+
validators=[MinValueValidator(1)],
|
|
357
|
+
label=_("SOA Refresh"),
|
|
358
|
+
)
|
|
359
|
+
soa_retry = TimePeriodField(
|
|
360
|
+
required=True,
|
|
361
|
+
help_text=_("Retry interval for secondary nameservers"),
|
|
362
|
+
validators=[MinValueValidator(1)],
|
|
363
|
+
label=_("SOA Retry"),
|
|
364
|
+
)
|
|
365
|
+
soa_expire = TimePeriodField(
|
|
366
|
+
required=True,
|
|
367
|
+
validators=[MinValueValidator(1)],
|
|
368
|
+
help_text=_("Expire time after which the zone is considered unavailable"),
|
|
369
|
+
label=_("SOA Expire"),
|
|
370
|
+
)
|
|
371
|
+
soa_minimum = TimePeriodField(
|
|
372
|
+
required=True,
|
|
373
|
+
help_text=_("Minimum TTL for negative results, e.g. NXRRSET, NXDOMAIN"),
|
|
374
|
+
validators=[MinValueValidator(1)],
|
|
375
|
+
label=_("SOA Minimum TTL"),
|
|
376
|
+
)
|
|
377
|
+
soa_serial = forms.IntegerField(
|
|
378
|
+
required=False,
|
|
379
|
+
validators=[MinValueValidator(1)],
|
|
380
|
+
label=_("SOA Serial"),
|
|
381
|
+
)
|
|
382
|
+
|
|
383
|
+
parental_agents = SimpleArrayField(
|
|
384
|
+
required=False,
|
|
385
|
+
base_field=forms.GenericIPAddressField(),
|
|
386
|
+
label=_("Parental Agents"),
|
|
387
|
+
)
|
|
388
|
+
|
|
389
|
+
rfc2317_prefix = RFC2317NetworkFormField(
|
|
390
|
+
required=False,
|
|
391
|
+
validators=[validate_ipv4, validate_prefix, validate_rfc2317],
|
|
392
|
+
help_text=_("RFC2317 IPv4 prefix with a length of at least 25 bits"),
|
|
393
|
+
label=_("RFC2317 Prefix"),
|
|
394
|
+
)
|
|
395
|
+
|
|
359
396
|
def clean_default_ttl(self):
|
|
360
397
|
return (
|
|
361
398
|
self.cleaned_data["default_ttl"]
|
|
@@ -370,52 +407,16 @@ class ZoneForm(ZoneTemplateUpdateMixin, TenancyForm, NetBoxModelForm):
|
|
|
370
407
|
else:
|
|
371
408
|
return name
|
|
372
409
|
|
|
373
|
-
class Meta:
|
|
374
|
-
model = Zone
|
|
375
|
-
|
|
376
|
-
fields = (
|
|
377
|
-
"name",
|
|
378
|
-
"view",
|
|
379
|
-
"status",
|
|
380
|
-
"template",
|
|
381
|
-
"nameservers",
|
|
382
|
-
"default_ttl",
|
|
383
|
-
"description",
|
|
384
|
-
"soa_ttl",
|
|
385
|
-
"soa_mname",
|
|
386
|
-
"soa_rname",
|
|
387
|
-
"soa_serial_auto",
|
|
388
|
-
"soa_serial",
|
|
389
|
-
"soa_refresh",
|
|
390
|
-
"soa_retry",
|
|
391
|
-
"soa_expire",
|
|
392
|
-
"soa_minimum",
|
|
393
|
-
"rfc2317_prefix",
|
|
394
|
-
"rfc2317_parent_managed",
|
|
395
|
-
"dnssec_policy",
|
|
396
|
-
"inline_signing",
|
|
397
|
-
"parental_agents",
|
|
398
|
-
"registrar",
|
|
399
|
-
"registry_domain_id",
|
|
400
|
-
"expiration_date",
|
|
401
|
-
"domain_status",
|
|
402
|
-
"registrant",
|
|
403
|
-
"admin_c",
|
|
404
|
-
"tech_c",
|
|
405
|
-
"billing_c",
|
|
406
|
-
"tenant_group",
|
|
407
|
-
"tenant",
|
|
408
|
-
"tags",
|
|
409
|
-
)
|
|
410
|
-
widgets = {
|
|
411
|
-
"expiration_date": DatePicker,
|
|
412
|
-
}
|
|
413
|
-
|
|
414
410
|
|
|
415
411
|
class ZoneFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
|
|
416
412
|
model = Zone
|
|
413
|
+
|
|
417
414
|
fieldsets = (
|
|
418
|
-
FieldSet(
|
|
415
|
+
FieldSet(
|
|
416
|
+
"q",
|
|
417
|
+
"filter_id",
|
|
418
|
+
"tag",
|
|
419
|
+
),
|
|
419
420
|
FieldSet(
|
|
420
421
|
"view_id",
|
|
421
422
|
"status",
|
|
@@ -455,7 +456,11 @@ class ZoneFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
|
|
|
455
456
|
"billing_c_id",
|
|
456
457
|
name=_("Registration"),
|
|
457
458
|
),
|
|
458
|
-
FieldSet(
|
|
459
|
+
FieldSet(
|
|
460
|
+
"tenant_group_id",
|
|
461
|
+
"tenant_id",
|
|
462
|
+
name=_("Tenancy"),
|
|
463
|
+
),
|
|
459
464
|
)
|
|
460
465
|
|
|
461
466
|
view_id = DynamicModelMultipleChoiceField(
|
|
@@ -584,6 +589,43 @@ class ZoneFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
|
|
|
584
589
|
|
|
585
590
|
|
|
586
591
|
class ZoneImportForm(ZoneTemplateUpdateMixin, NetBoxModelImportForm):
|
|
592
|
+
class Meta:
|
|
593
|
+
model = Zone
|
|
594
|
+
|
|
595
|
+
fields = (
|
|
596
|
+
"view",
|
|
597
|
+
"name",
|
|
598
|
+
"status",
|
|
599
|
+
"template",
|
|
600
|
+
"nameservers",
|
|
601
|
+
"default_ttl",
|
|
602
|
+
"description",
|
|
603
|
+
"soa_ttl",
|
|
604
|
+
"soa_mname",
|
|
605
|
+
"soa_rname",
|
|
606
|
+
"soa_serial_auto",
|
|
607
|
+
"soa_serial",
|
|
608
|
+
"soa_refresh",
|
|
609
|
+
"soa_retry",
|
|
610
|
+
"soa_expire",
|
|
611
|
+
"soa_minimum",
|
|
612
|
+
"dnssec_policy",
|
|
613
|
+
"inline_signing",
|
|
614
|
+
"parental_agents",
|
|
615
|
+
"rfc2317_prefix",
|
|
616
|
+
"rfc2317_parent_managed",
|
|
617
|
+
"registrar",
|
|
618
|
+
"registry_domain_id",
|
|
619
|
+
"expiration_date",
|
|
620
|
+
"domain_status",
|
|
621
|
+
"registrant",
|
|
622
|
+
"admin_c",
|
|
623
|
+
"tech_c",
|
|
624
|
+
"billing_c",
|
|
625
|
+
"tenant",
|
|
626
|
+
"tags",
|
|
627
|
+
)
|
|
628
|
+
|
|
587
629
|
view = CSVModelChoiceField(
|
|
588
630
|
queryset=View.objects.all(),
|
|
589
631
|
required=False,
|
|
@@ -748,31 +790,64 @@ class ZoneImportForm(ZoneTemplateUpdateMixin, NetBoxModelImportForm):
|
|
|
748
790
|
label=_("Template"),
|
|
749
791
|
)
|
|
750
792
|
|
|
751
|
-
|
|
752
|
-
|
|
793
|
+
def clean_view(self):
|
|
794
|
+
view = self.cleaned_data.get("view")
|
|
795
|
+
if view is None:
|
|
796
|
+
return View.get_default_view()
|
|
753
797
|
|
|
754
|
-
|
|
798
|
+
return view
|
|
799
|
+
|
|
800
|
+
def clean_nameservers(self):
|
|
801
|
+
nameservers = self.cleaned_data.get("nameservers")
|
|
802
|
+
zone_defaults = settings.PLUGINS_CONFIG.get("netbox_dns")
|
|
803
|
+
|
|
804
|
+
if (
|
|
805
|
+
self.data.get("nameservers") is None
|
|
806
|
+
and zone_defaults.get("zone_nameservers") is not None
|
|
807
|
+
):
|
|
808
|
+
nameservers = NameServer.objects.filter(
|
|
809
|
+
name__in=zone_defaults.get("zone_nameservers")
|
|
810
|
+
)
|
|
811
|
+
|
|
812
|
+
return nameservers
|
|
813
|
+
|
|
814
|
+
|
|
815
|
+
class ZoneBulkEditForm(NetBoxModelBulkEditForm):
|
|
816
|
+
model = Zone
|
|
817
|
+
|
|
818
|
+
fieldsets = (
|
|
819
|
+
FieldSet(
|
|
755
820
|
"view",
|
|
756
|
-
"name",
|
|
757
821
|
"status",
|
|
758
|
-
"template",
|
|
759
822
|
"nameservers",
|
|
760
823
|
"default_ttl",
|
|
761
824
|
"description",
|
|
825
|
+
name=_("Attributes"),
|
|
826
|
+
),
|
|
827
|
+
FieldSet(
|
|
762
828
|
"soa_ttl",
|
|
763
829
|
"soa_mname",
|
|
764
830
|
"soa_rname",
|
|
765
|
-
"soa_serial_auto",
|
|
766
|
-
"soa_serial",
|
|
767
831
|
"soa_refresh",
|
|
768
832
|
"soa_retry",
|
|
769
833
|
"soa_expire",
|
|
770
834
|
"soa_minimum",
|
|
835
|
+
"soa_serial_auto",
|
|
836
|
+
"soa_serial",
|
|
837
|
+
name=_("SOA"),
|
|
838
|
+
),
|
|
839
|
+
FieldSet(
|
|
771
840
|
"dnssec_policy",
|
|
772
841
|
"inline_signing",
|
|
773
842
|
"parental_agents",
|
|
843
|
+
name=_("DNSSEC"),
|
|
844
|
+
),
|
|
845
|
+
FieldSet(
|
|
774
846
|
"rfc2317_prefix",
|
|
775
847
|
"rfc2317_parent_managed",
|
|
848
|
+
name=_("RFC2317"),
|
|
849
|
+
),
|
|
850
|
+
FieldSet(
|
|
776
851
|
"registrar",
|
|
777
852
|
"registry_domain_id",
|
|
778
853
|
"expiration_date",
|
|
@@ -781,33 +856,30 @@ class ZoneImportForm(ZoneTemplateUpdateMixin, NetBoxModelImportForm):
|
|
|
781
856
|
"admin_c",
|
|
782
857
|
"tech_c",
|
|
783
858
|
"billing_c",
|
|
859
|
+
name=_("Domain Registration"),
|
|
860
|
+
),
|
|
861
|
+
FieldSet(
|
|
862
|
+
"tenant_group",
|
|
784
863
|
"tenant",
|
|
785
|
-
"
|
|
786
|
-
)
|
|
787
|
-
|
|
788
|
-
def clean_view(self):
|
|
789
|
-
view = self.cleaned_data.get("view")
|
|
790
|
-
if view is None:
|
|
791
|
-
return View.get_default_view()
|
|
792
|
-
|
|
793
|
-
return view
|
|
794
|
-
|
|
795
|
-
def clean_nameservers(self):
|
|
796
|
-
nameservers = self.cleaned_data.get("nameservers")
|
|
797
|
-
zone_defaults = settings.PLUGINS_CONFIG.get("netbox_dns")
|
|
798
|
-
|
|
799
|
-
if (
|
|
800
|
-
self.data.get("nameservers") is None
|
|
801
|
-
and zone_defaults.get("zone_nameservers") is not None
|
|
802
|
-
):
|
|
803
|
-
nameservers = NameServer.objects.filter(
|
|
804
|
-
name__in=zone_defaults.get("zone_nameservers")
|
|
805
|
-
)
|
|
806
|
-
|
|
807
|
-
return nameservers
|
|
864
|
+
name=_("Tenancy"),
|
|
865
|
+
),
|
|
866
|
+
)
|
|
808
867
|
|
|
868
|
+
nullable_fields = (
|
|
869
|
+
"description",
|
|
870
|
+
"nameservers",
|
|
871
|
+
"rfc2317_prefix",
|
|
872
|
+
"registrar",
|
|
873
|
+
"expiration_date",
|
|
874
|
+
"domain_status",
|
|
875
|
+
"registry_domain_id",
|
|
876
|
+
"registrant",
|
|
877
|
+
"admin_c",
|
|
878
|
+
"tech_c",
|
|
879
|
+
"billing_c",
|
|
880
|
+
"tenant",
|
|
881
|
+
)
|
|
809
882
|
|
|
810
|
-
class ZoneBulkEditForm(NetBoxModelBulkEditForm):
|
|
811
883
|
view = DynamicModelChoiceField(
|
|
812
884
|
queryset=View.objects.all(),
|
|
813
885
|
required=False,
|
|
@@ -955,66 +1027,3 @@ class ZoneBulkEditForm(NetBoxModelBulkEditForm):
|
|
|
955
1027
|
required=False,
|
|
956
1028
|
label=_("Tenant"),
|
|
957
1029
|
)
|
|
958
|
-
|
|
959
|
-
model = Zone
|
|
960
|
-
|
|
961
|
-
fieldsets = (
|
|
962
|
-
FieldSet(
|
|
963
|
-
"view",
|
|
964
|
-
"status",
|
|
965
|
-
"nameservers",
|
|
966
|
-
"default_ttl",
|
|
967
|
-
"description",
|
|
968
|
-
name=_("Attributes"),
|
|
969
|
-
),
|
|
970
|
-
FieldSet(
|
|
971
|
-
"soa_ttl",
|
|
972
|
-
"soa_mname",
|
|
973
|
-
"soa_rname",
|
|
974
|
-
"soa_refresh",
|
|
975
|
-
"soa_retry",
|
|
976
|
-
"soa_expire",
|
|
977
|
-
"soa_minimum",
|
|
978
|
-
"soa_serial_auto",
|
|
979
|
-
"soa_serial",
|
|
980
|
-
name=_("SOA"),
|
|
981
|
-
),
|
|
982
|
-
FieldSet(
|
|
983
|
-
"dnssec_policy",
|
|
984
|
-
"inline_signing",
|
|
985
|
-
"parental_agents",
|
|
986
|
-
name=_("DNSSEC"),
|
|
987
|
-
),
|
|
988
|
-
FieldSet(
|
|
989
|
-
"rfc2317_prefix",
|
|
990
|
-
"rfc2317_parent_managed",
|
|
991
|
-
name=_("RFC2317"),
|
|
992
|
-
),
|
|
993
|
-
FieldSet(
|
|
994
|
-
"registrar",
|
|
995
|
-
"registry_domain_id",
|
|
996
|
-
"expiration_date",
|
|
997
|
-
"domain_status",
|
|
998
|
-
"registrant",
|
|
999
|
-
"admin_c",
|
|
1000
|
-
"tech_c",
|
|
1001
|
-
"billing_c",
|
|
1002
|
-
name=_("Domain Registration"),
|
|
1003
|
-
),
|
|
1004
|
-
FieldSet("tenant_group", "tenant", name=_("Tenancy")),
|
|
1005
|
-
)
|
|
1006
|
-
|
|
1007
|
-
nullable_fields = (
|
|
1008
|
-
"description",
|
|
1009
|
-
"nameservers",
|
|
1010
|
-
"rfc2317_prefix",
|
|
1011
|
-
"registrar",
|
|
1012
|
-
"expiration_date",
|
|
1013
|
-
"domain_status",
|
|
1014
|
-
"registry_domain_id",
|
|
1015
|
-
"registrant",
|
|
1016
|
-
"admin_c",
|
|
1017
|
-
"tech_c",
|
|
1018
|
-
"billing_c",
|
|
1019
|
-
"tenant",
|
|
1020
|
-
)
|