netbox-plugin-dns 1.2.5__py3-none-any.whl → 1.2.7b2__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 +15 -1
- netbox_dns/api/serializers.py +3 -0
- netbox_dns/api/serializers_/dnssec_key_template.py +46 -0
- netbox_dns/api/serializers_/dnssec_policy.py +83 -0
- netbox_dns/api/serializers_/zone.py +10 -0
- netbox_dns/api/serializers_/zone_template.py +13 -4
- netbox_dns/api/urls.py +4 -0
- netbox_dns/api/views.py +18 -0
- netbox_dns/choices/__init__.py +2 -0
- netbox_dns/choices/dnssec_key_template.py +63 -0
- netbox_dns/choices/dnssec_policy.py +40 -0
- netbox_dns/choices/record.py +2 -25
- netbox_dns/choices/utilities.py +26 -0
- netbox_dns/fields/__init__.py +2 -0
- netbox_dns/fields/choice_array.py +20 -0
- netbox_dns/fields/timeperiod.py +31 -0
- netbox_dns/filtersets/__init__.py +3 -0
- netbox_dns/filtersets/dnssec_key_template.py +51 -0
- netbox_dns/filtersets/dnssec_policy.py +73 -0
- netbox_dns/filtersets/zone.py +23 -4
- netbox_dns/filtersets/zone_template.py +11 -0
- netbox_dns/forms/__init__.py +2 -0
- netbox_dns/forms/dnssec_key_template.py +188 -0
- netbox_dns/forms/dnssec_policy.py +563 -0
- netbox_dns/forms/record.py +12 -6
- netbox_dns/forms/record_template.py +9 -3
- netbox_dns/forms/zone.py +70 -22
- netbox_dns/forms/zone_template.py +29 -0
- netbox_dns/graphql/__init__.py +7 -3
- netbox_dns/graphql/filters.py +16 -0
- netbox_dns/graphql/schema.py +20 -0
- netbox_dns/graphql/types.py +67 -3
- netbox_dns/locale/de/LC_MESSAGES/django.mo +0 -0
- netbox_dns/locale/fr/LC_MESSAGES/django.mo +0 -0
- netbox_dns/migrations/0015_dnssec.py +168 -0
- netbox_dns/migrations/0016_dnssec_policy_status.py +18 -0
- netbox_dns/migrations/0017_dnssec_policy_zone_zone_template.py +41 -0
- netbox_dns/models/__init__.py +2 -0
- netbox_dns/models/dnssec_key_template.py +114 -0
- netbox_dns/models/dnssec_policy.py +201 -0
- netbox_dns/models/zone.py +29 -16
- netbox_dns/models/zone_template.py +16 -6
- netbox_dns/navigation.py +49 -0
- netbox_dns/signals/dnssec.py +32 -0
- netbox_dns/tables/__init__.py +2 -0
- netbox_dns/tables/dnssec_key_template.py +48 -0
- netbox_dns/tables/dnssec_policy.py +131 -0
- netbox_dns/tables/zone.py +17 -1
- netbox_dns/tables/zone_template.py +4 -0
- netbox_dns/templates/netbox_dns/dnsseckeytemplate.html +70 -0
- netbox_dns/templates/netbox_dns/dnssecpolicy.html +155 -0
- netbox_dns/templates/netbox_dns/zone.html +16 -0
- netbox_dns/templates/netbox_dns/zonetemplate/child.html +46 -0
- netbox_dns/templates/netbox_dns/zonetemplate.html +12 -0
- netbox_dns/urls.py +16 -0
- netbox_dns/validators/__init__.py +1 -0
- netbox_dns/validators/dnssec.py +146 -0
- netbox_dns/views/__init__.py +2 -0
- netbox_dns/views/dnssec_key_template.py +87 -0
- netbox_dns/views/dnssec_policy.py +153 -0
- {netbox_plugin_dns-1.2.5.dist-info → netbox_plugin_dns-1.2.7b2.dist-info}/METADATA +2 -2
- {netbox_plugin_dns-1.2.5.dist-info → netbox_plugin_dns-1.2.7b2.dist-info}/RECORD +65 -39
- {netbox_plugin_dns-1.2.5.dist-info → netbox_plugin_dns-1.2.7b2.dist-info}/WHEEL +1 -1
- {netbox_plugin_dns-1.2.5.dist-info → netbox_plugin_dns-1.2.7b2.dist-info}/LICENSE +0 -0
- {netbox_plugin_dns-1.2.5.dist-info → netbox_plugin_dns-1.2.7b2.dist-info}/top_level.txt +0 -0
netbox_dns/urls.py
CHANGED
|
@@ -69,4 +69,20 @@ urlpatterns = (
|
|
|
69
69
|
"zones/<int:pk>/",
|
|
70
70
|
include(get_model_urls("netbox_dns", "zone")),
|
|
71
71
|
),
|
|
72
|
+
path(
|
|
73
|
+
"dnsseckeytemplates/",
|
|
74
|
+
include(get_model_urls("netbox_dns", "dnsseckeytemplate", detail=False)),
|
|
75
|
+
),
|
|
76
|
+
path(
|
|
77
|
+
"dnsseckeytemplates/<int:pk>/",
|
|
78
|
+
include(get_model_urls("netbox_dns", "dnsseckeytemplate")),
|
|
79
|
+
),
|
|
80
|
+
path(
|
|
81
|
+
"dnssecpolicies/",
|
|
82
|
+
include(get_model_urls("netbox_dns", "dnssecpolicy", detail=False)),
|
|
83
|
+
),
|
|
84
|
+
path(
|
|
85
|
+
"dnssecpolicies/<int:pk>/",
|
|
86
|
+
include(get_model_urls("netbox_dns", "dnssecpolicy")),
|
|
87
|
+
),
|
|
72
88
|
)
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
from django.core.exceptions import ValidationError
|
|
2
|
+
from django.utils.translation import gettext_lazy as _
|
|
3
|
+
|
|
4
|
+
from netbox_dns.choices import (
|
|
5
|
+
DNSSECKeyTemplateTypeChoices,
|
|
6
|
+
DNSSECKeyTemplateAlgorithmChoices,
|
|
7
|
+
DNSSECKeyTemplateKeySizeChoices,
|
|
8
|
+
)
|
|
9
|
+
|
|
10
|
+
__all__ = (
|
|
11
|
+
"validate_key_template",
|
|
12
|
+
"validate_key_template_assignment",
|
|
13
|
+
"validate_key_template_lifetime",
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def validate_key_template(key_template):
|
|
18
|
+
if key_template.key_size is None:
|
|
19
|
+
return
|
|
20
|
+
|
|
21
|
+
if key_template.key_size not in DNSSECKeyTemplateKeySizeChoices.values():
|
|
22
|
+
raise ValidationError(
|
|
23
|
+
{
|
|
24
|
+
"key_size": _("{key_size} is not a supported key size.").format(
|
|
25
|
+
key_size=key_template.key_size
|
|
26
|
+
)
|
|
27
|
+
}
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
if key_template.algorithm != DNSSECKeyTemplateAlgorithmChoices.RSASHA256:
|
|
31
|
+
raise ValidationError(
|
|
32
|
+
{
|
|
33
|
+
"key_size": _(
|
|
34
|
+
"Specifying the key size is not supported for algorithm {algorithm}."
|
|
35
|
+
).format(algorithm=key_template.algorithm)
|
|
36
|
+
}
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def validate_key_template_assignment(key_templates):
|
|
41
|
+
if key_templates is None:
|
|
42
|
+
return
|
|
43
|
+
|
|
44
|
+
csk = key_templates.filter(type=DNSSECKeyTemplateTypeChoices.TYPE_CSK)
|
|
45
|
+
ksk = key_templates.filter(type=DNSSECKeyTemplateTypeChoices.TYPE_KSK)
|
|
46
|
+
zsk = key_templates.filter(type=DNSSECKeyTemplateTypeChoices.TYPE_ZSK)
|
|
47
|
+
|
|
48
|
+
if csk and (ksk or zsk):
|
|
49
|
+
raise ValidationError(
|
|
50
|
+
{
|
|
51
|
+
"key_templates": _(
|
|
52
|
+
"Specifying a CSK together with any other key template type is not allowed."
|
|
53
|
+
)
|
|
54
|
+
}
|
|
55
|
+
)
|
|
56
|
+
|
|
57
|
+
if any(
|
|
58
|
+
(
|
|
59
|
+
csk.count() > 1,
|
|
60
|
+
ksk.count() > 1,
|
|
61
|
+
zsk.count() > 1,
|
|
62
|
+
)
|
|
63
|
+
):
|
|
64
|
+
raise ValidationError(
|
|
65
|
+
{
|
|
66
|
+
"key_templates": _(
|
|
67
|
+
"At most one key template per type (CSK, KSK and ZSK) is allowed."
|
|
68
|
+
)
|
|
69
|
+
}
|
|
70
|
+
)
|
|
71
|
+
|
|
72
|
+
if (ksk and zsk) and (ksk.first().algorithm != zsk.first().algorithm):
|
|
73
|
+
raise ValidationError(
|
|
74
|
+
{"key_templates": _("KSK and ZSK must use the same algorithm.")}
|
|
75
|
+
)
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
def validate_key_template_lifetime(key_template, policy, raise_exception=True):
|
|
79
|
+
key_lifetime = key_template.lifetime
|
|
80
|
+
|
|
81
|
+
if not key_lifetime:
|
|
82
|
+
return
|
|
83
|
+
|
|
84
|
+
dnskey_ttl = policy.get_effective_value("dnskey_ttl")
|
|
85
|
+
publish_safety = policy.get_effective_value("publish_safety")
|
|
86
|
+
zone_propagation_delay = policy.get_effective_value("zone_propagation_delay")
|
|
87
|
+
max_zone_ttl = policy.get_effective_value("max_zone_ttl")
|
|
88
|
+
retire_safety = policy.get_effective_value("retire_safety")
|
|
89
|
+
|
|
90
|
+
validation_errors = []
|
|
91
|
+
|
|
92
|
+
if (
|
|
93
|
+
dnskey_ttl is not None
|
|
94
|
+
and publish_safety is not None
|
|
95
|
+
and zone_propagation_delay is not None
|
|
96
|
+
and key_lifetime < (dnskey_ttl + publish_safety + zone_propagation_delay)
|
|
97
|
+
):
|
|
98
|
+
validation_errors.append(
|
|
99
|
+
_(
|
|
100
|
+
"Key Lifetime is less than DNSKEY TTL + Publish Safety + Zone Propagation Delay."
|
|
101
|
+
)
|
|
102
|
+
)
|
|
103
|
+
|
|
104
|
+
if (
|
|
105
|
+
max_zone_ttl is not None
|
|
106
|
+
and retire_safety is not None
|
|
107
|
+
and zone_propagation_delay is not None
|
|
108
|
+
and key_lifetime < (max_zone_ttl + retire_safety + zone_propagation_delay)
|
|
109
|
+
):
|
|
110
|
+
validation_errors.append(
|
|
111
|
+
_(
|
|
112
|
+
"Key Lifetime is less than Max Zone TTL + Retire Safety + Zone Propagation Delay."
|
|
113
|
+
)
|
|
114
|
+
)
|
|
115
|
+
|
|
116
|
+
if key_template.type == DNSSECKeyTemplateTypeChoices.TYPE_ZSK:
|
|
117
|
+
signatures_validity = policy.get_effective_value("signatures_validity")
|
|
118
|
+
signatures_refresh = policy.get_effective_value("signatures_refresh")
|
|
119
|
+
|
|
120
|
+
if (
|
|
121
|
+
signatures_validity is not None
|
|
122
|
+
and signatures_validity is not None
|
|
123
|
+
and key_lifetime < signatures_validity - signatures_refresh
|
|
124
|
+
):
|
|
125
|
+
validation_errors.append(
|
|
126
|
+
_("Key Lifetime is less than Signatures Validity - Signatures Refresh.")
|
|
127
|
+
)
|
|
128
|
+
else:
|
|
129
|
+
parent_ds_ttl = policy.get_effective_value("parent_ds_ttl")
|
|
130
|
+
parent_propagation_delay = policy.get_effective_value(
|
|
131
|
+
"parent_propagation_delay"
|
|
132
|
+
)
|
|
133
|
+
|
|
134
|
+
if (
|
|
135
|
+
parent_ds_ttl is not None
|
|
136
|
+
and retire_safety is not None
|
|
137
|
+
and parent_propagation_delay is not None
|
|
138
|
+
and parent_ds_ttl < retire_safety + parent_propagation_delay
|
|
139
|
+
):
|
|
140
|
+
validation_errors.append(
|
|
141
|
+
_(
|
|
142
|
+
"Key Lifetime is less than Parent DS TTL + Retire Safety + Parent Propagation Delay."
|
|
143
|
+
)
|
|
144
|
+
)
|
|
145
|
+
|
|
146
|
+
return validation_errors
|
netbox_dns/views/__init__.py
CHANGED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
from netbox.views import generic
|
|
2
|
+
from utilities.views import register_model_view
|
|
3
|
+
from tenancy.views import ObjectContactsView
|
|
4
|
+
|
|
5
|
+
from netbox_dns.filtersets import DNSSECKeyTemplateFilterSet
|
|
6
|
+
from netbox_dns.forms import (
|
|
7
|
+
DNSSECKeyTemplateImportForm,
|
|
8
|
+
DNSSECKeyTemplateFilterForm,
|
|
9
|
+
DNSSECKeyTemplateForm,
|
|
10
|
+
DNSSECKeyTemplateBulkEditForm,
|
|
11
|
+
)
|
|
12
|
+
from netbox_dns.models import DNSSECKeyTemplate
|
|
13
|
+
from netbox_dns.tables import DNSSECKeyTemplateTable, DNSSECPolicyDisplayTable
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
__all__ = (
|
|
17
|
+
"DNSSECKeyTemplateView",
|
|
18
|
+
"DNSSECKeyTemplateListView",
|
|
19
|
+
"DNSSECKeyTemplateEditView",
|
|
20
|
+
"DNSSECKeyTemplateDeleteView",
|
|
21
|
+
"DNSSECKeyTemplateBulkEditView",
|
|
22
|
+
"DNSSECKeyTemplateBulkImportView",
|
|
23
|
+
"DNSSECKeyTemplateBulkDeleteView",
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
@register_model_view(DNSSECKeyTemplate, "list", path="", detail=False)
|
|
28
|
+
class DNSSECKeyTemplateListView(generic.ObjectListView):
|
|
29
|
+
queryset = DNSSECKeyTemplate.objects.all()
|
|
30
|
+
filterset = DNSSECKeyTemplateFilterSet
|
|
31
|
+
filterset_form = DNSSECKeyTemplateFilterForm
|
|
32
|
+
table = DNSSECKeyTemplateTable
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
@register_model_view(DNSSECKeyTemplate)
|
|
36
|
+
class DNSSECKeyTemplateView(generic.ObjectView):
|
|
37
|
+
queryset = DNSSECKeyTemplate.objects.prefetch_related("policies")
|
|
38
|
+
|
|
39
|
+
def get_extra_context(self, request, instance):
|
|
40
|
+
if instance.policies.exists():
|
|
41
|
+
return {
|
|
42
|
+
"policy_table": DNSSECPolicyDisplayTable(data=instance.policies.all())
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
return {}
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
@register_model_view(DNSSECKeyTemplate, "add", detail=False)
|
|
49
|
+
@register_model_view(DNSSECKeyTemplate, "edit")
|
|
50
|
+
class DNSSECKeyTemplateEditView(generic.ObjectEditView):
|
|
51
|
+
queryset = DNSSECKeyTemplate.objects.all()
|
|
52
|
+
form = DNSSECKeyTemplateForm
|
|
53
|
+
default_return_url = "plugins:netbox_dns:dnsseckeytemplate_list"
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
@register_model_view(DNSSECKeyTemplate, "delete")
|
|
57
|
+
class DNSSECKeyTemplateDeleteView(generic.ObjectDeleteView):
|
|
58
|
+
queryset = DNSSECKeyTemplate.objects.all()
|
|
59
|
+
default_return_url = "plugins:netbox_dns:dnsseckeytemplate_list"
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
@register_model_view(DNSSECKeyTemplate, "bulk_import", detail=False)
|
|
63
|
+
class DNSSECKeyTemplateBulkImportView(generic.BulkImportView):
|
|
64
|
+
queryset = DNSSECKeyTemplate.objects.all()
|
|
65
|
+
model_form = DNSSECKeyTemplateImportForm
|
|
66
|
+
table = DNSSECKeyTemplateTable
|
|
67
|
+
default_return_url = "plugins:netbox_dns:dnsseckeytemplate_list"
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
@register_model_view(DNSSECKeyTemplate, "bulk_edit", path="edit", detail=False)
|
|
71
|
+
class DNSSECKeyTemplateBulkEditView(generic.BulkEditView):
|
|
72
|
+
queryset = DNSSECKeyTemplate.objects.all()
|
|
73
|
+
filterset = DNSSECKeyTemplateFilterSet
|
|
74
|
+
table = DNSSECKeyTemplateTable
|
|
75
|
+
form = DNSSECKeyTemplateBulkEditForm
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
@register_model_view(DNSSECKeyTemplate, "bulk_delete", path="delete", detail=False)
|
|
79
|
+
class DNSSECKeyTemplateBulkDeleteView(generic.BulkDeleteView):
|
|
80
|
+
queryset = DNSSECKeyTemplate.objects.all()
|
|
81
|
+
filterset = DNSSECKeyTemplateFilterSet
|
|
82
|
+
table = DNSSECKeyTemplateTable
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
@register_model_view(DNSSECKeyTemplate, "contacts")
|
|
86
|
+
class DNSSECKeyTemplateContactsView(ObjectContactsView):
|
|
87
|
+
queryset = DNSSECKeyTemplate.objects.all()
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
from django.utils.translation import gettext_lazy as _
|
|
2
|
+
|
|
3
|
+
from netbox.views import generic
|
|
4
|
+
from utilities.views import ViewTab, register_model_view
|
|
5
|
+
from tenancy.views import ObjectContactsView
|
|
6
|
+
|
|
7
|
+
from netbox_dns.filtersets import (
|
|
8
|
+
DNSSECPolicyFilterSet,
|
|
9
|
+
ZoneFilterSet,
|
|
10
|
+
ZoneTemplateFilterSet,
|
|
11
|
+
)
|
|
12
|
+
from netbox_dns.forms import (
|
|
13
|
+
DNSSECPolicyImportForm,
|
|
14
|
+
DNSSECPolicyFilterForm,
|
|
15
|
+
DNSSECPolicyForm,
|
|
16
|
+
DNSSECPolicyBulkEditForm,
|
|
17
|
+
)
|
|
18
|
+
from netbox_dns.models import DNSSECPolicy, Zone, ZoneTemplate
|
|
19
|
+
from netbox_dns.tables import (
|
|
20
|
+
DNSSECPolicyTable,
|
|
21
|
+
ZoneDisplayTable,
|
|
22
|
+
ZoneTemplateDisplayTable,
|
|
23
|
+
)
|
|
24
|
+
from netbox_dns.validators import validate_key_template_lifetime
|
|
25
|
+
from netbox_dns.choices import DNSSECKeyTemplateTypeChoices
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
__all__ = (
|
|
29
|
+
"DNSSECPolicyView",
|
|
30
|
+
"DNSSECPolicyListView",
|
|
31
|
+
"DNSSECPolicyEditView",
|
|
32
|
+
"DNSSECPolicyDeleteView",
|
|
33
|
+
"DNSSECPolicyBulkEditView",
|
|
34
|
+
"DNSSECPolicyBulkImportView",
|
|
35
|
+
"DNSSECPolicyBulkDeleteView",
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
@register_model_view(DNSSECPolicy, "list", path="", detail=False)
|
|
40
|
+
class DNSSECPolicyListView(generic.ObjectListView):
|
|
41
|
+
queryset = DNSSECPolicy.objects.all()
|
|
42
|
+
filterset = DNSSECPolicyFilterSet
|
|
43
|
+
filterset_form = DNSSECPolicyFilterForm
|
|
44
|
+
table = DNSSECPolicyTable
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
@register_model_view(DNSSECPolicy)
|
|
48
|
+
class DNSSECPolicyView(generic.ObjectView):
|
|
49
|
+
queryset = DNSSECPolicy.objects.prefetch_related("key_templates")
|
|
50
|
+
|
|
51
|
+
def get_extra_context(self, request, instance):
|
|
52
|
+
context = {}
|
|
53
|
+
|
|
54
|
+
key_errors = {
|
|
55
|
+
key_template.pk: validate_key_template_lifetime(key_template, instance)
|
|
56
|
+
for key_template in instance.key_templates.all()
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
context["key_template_errors"] = key_errors
|
|
60
|
+
|
|
61
|
+
if not instance.key_templates.filter(
|
|
62
|
+
type__in=(
|
|
63
|
+
DNSSECKeyTemplateTypeChoices.TYPE_ZSK,
|
|
64
|
+
DNSSECKeyTemplateTypeChoices.TYPE_CSK,
|
|
65
|
+
)
|
|
66
|
+
).exists():
|
|
67
|
+
context["policy_warning"] = _(
|
|
68
|
+
"No key for signing zones (CSK or ZSK) is assigned."
|
|
69
|
+
)
|
|
70
|
+
|
|
71
|
+
return context
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
@register_model_view(DNSSECPolicy, "add", detail=False)
|
|
75
|
+
@register_model_view(DNSSECPolicy, "edit")
|
|
76
|
+
class DNSSECPolicyEditView(generic.ObjectEditView):
|
|
77
|
+
queryset = DNSSECPolicy.objects.all()
|
|
78
|
+
form = DNSSECPolicyForm
|
|
79
|
+
default_return_url = "plugins:netbox_dns:dnssecpolicy_list"
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
@register_model_view(DNSSECPolicy, "delete")
|
|
83
|
+
class DNSSECPolicyDeleteView(generic.ObjectDeleteView):
|
|
84
|
+
queryset = DNSSECPolicy.objects.all()
|
|
85
|
+
default_return_url = "plugins:netbox_dns:dnssecpolicy_list"
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
@register_model_view(DNSSECPolicy, "bulk_import", detail=False)
|
|
89
|
+
class DNSSECPolicyBulkImportView(generic.BulkImportView):
|
|
90
|
+
queryset = DNSSECPolicy.objects.all()
|
|
91
|
+
model_form = DNSSECPolicyImportForm
|
|
92
|
+
table = DNSSECPolicyTable
|
|
93
|
+
default_return_url = "plugins:netbox_dns:dnssecpolicy_list"
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
@register_model_view(DNSSECPolicy, "bulk_edit", path="edit", detail=False)
|
|
97
|
+
class DNSSECPolicyBulkEditView(generic.BulkEditView):
|
|
98
|
+
queryset = DNSSECPolicy.objects.all()
|
|
99
|
+
filterset = DNSSECPolicyFilterSet
|
|
100
|
+
table = DNSSECPolicyTable
|
|
101
|
+
form = DNSSECPolicyBulkEditForm
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
@register_model_view(DNSSECPolicy, "bulk_delete", path="delete", detail=False)
|
|
105
|
+
class DNSSECPolicyBulkDeleteView(generic.BulkDeleteView):
|
|
106
|
+
queryset = DNSSECPolicy.objects.all()
|
|
107
|
+
filterset = DNSSECPolicyFilterSet
|
|
108
|
+
table = DNSSECPolicyTable
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
@register_model_view(DNSSECPolicy, "contacts")
|
|
112
|
+
class DNSSECPolicyContactsView(ObjectContactsView):
|
|
113
|
+
queryset = DNSSECPolicy.objects.all()
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
@register_model_view(DNSSECPolicy, "zones")
|
|
117
|
+
class DNSSECPolicyZoneListView(generic.ObjectChildrenView):
|
|
118
|
+
queryset = DNSSECPolicy.objects.all()
|
|
119
|
+
child_model = Zone
|
|
120
|
+
table = ZoneDisplayTable
|
|
121
|
+
filterset = ZoneFilterSet
|
|
122
|
+
template_name = "netbox_dns/zone/child.html"
|
|
123
|
+
hide_if_empty = True
|
|
124
|
+
|
|
125
|
+
tab = ViewTab(
|
|
126
|
+
label=_("Zones"),
|
|
127
|
+
permission="netbox_dns.view_zones",
|
|
128
|
+
badge=lambda obj: obj.zones.count(),
|
|
129
|
+
hide_if_empty=True,
|
|
130
|
+
)
|
|
131
|
+
|
|
132
|
+
def get_children(self, request, parent):
|
|
133
|
+
return parent.zones.restrict(request.user, "view")
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
@register_model_view(DNSSECPolicy, "zonetemplates")
|
|
137
|
+
class DNSSECPolicyZoneTemplateListView(generic.ObjectChildrenView):
|
|
138
|
+
queryset = DNSSECPolicy.objects.all()
|
|
139
|
+
child_model = ZoneTemplate
|
|
140
|
+
table = ZoneTemplateDisplayTable
|
|
141
|
+
filterset = ZoneTemplateFilterSet
|
|
142
|
+
template_name = "netbox_dns/zonetemplate/child.html"
|
|
143
|
+
hide_if_empty = True
|
|
144
|
+
|
|
145
|
+
tab = ViewTab(
|
|
146
|
+
label=_("Zone Templates"),
|
|
147
|
+
permission="netbox_dns.view_zonetemplates",
|
|
148
|
+
badge=lambda obj: obj.zone_templates.count(),
|
|
149
|
+
hide_if_empty=True,
|
|
150
|
+
)
|
|
151
|
+
|
|
152
|
+
def get_children(self, request, parent):
|
|
153
|
+
return parent.zone_templates.restrict(request.user, "view")
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: netbox-plugin-dns
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.7b2
|
|
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
|
|
@@ -8,7 +8,7 @@ Project-URL: Documentation, https://github.com/peteeckel/netbox-plugin-dns/blob/
|
|
|
8
8
|
Project-URL: Repository, https://github.com/peteeckel/netbox-plugin-dns
|
|
9
9
|
Project-URL: Issues, https://github.com/peteeckel/netbox-plugin-dns/issues
|
|
10
10
|
Keywords: netbox,netbox-plugin,dns
|
|
11
|
-
Classifier: Development Status ::
|
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
|
12
12
|
Requires-Python: >=3.10
|
|
13
13
|
Description-Content-Type: text/markdown
|
|
14
14
|
License-File: LICENSE
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
netbox_dns/__init__.py,sha256=
|
|
1
|
+
netbox_dns/__init__.py,sha256=p7_4AWAau8aG1UBylTcxA3jToayAQMW9XOZJJ16ZecA,3765
|
|
2
2
|
netbox_dns/apps.py,sha256=JCW5eS-AQBUubDJve1DjP-IRFKTFGQh1NLGWzJpC5MI,151
|
|
3
|
-
netbox_dns/navigation.py,sha256=
|
|
3
|
+
netbox_dns/navigation.py,sha256=u90MwWBySg1Z9yfZEdvUctYWEkab5z1Y3019J7U_-3g,7741
|
|
4
4
|
netbox_dns/template_content.py,sha256=T06L7-m4eGrLMeGsCvPpQLAGfn3S2FL7z0Cd1hhbisY,4225
|
|
5
|
-
netbox_dns/urls.py,sha256=
|
|
5
|
+
netbox_dns/urls.py,sha256=B00wVs22LOx9VC5boyvL-jo84MiVd_g3FPFCpTDQAgQ,2424
|
|
6
6
|
netbox_dns/api/nested_serializers.py,sha256=RfwT96Kd-E25oTPxnYVMZX04ZGCSww15c1TmPG8zZk4,3251
|
|
7
|
-
netbox_dns/api/serializers.py,sha256=
|
|
8
|
-
netbox_dns/api/urls.py,sha256
|
|
9
|
-
netbox_dns/api/views.py,sha256=
|
|
7
|
+
netbox_dns/api/serializers.py,sha256=OHrpfJkBn6D1y6b3nIxBEFyE50U5p-Aqv4lBojMEFgk,474
|
|
8
|
+
netbox_dns/api/urls.py,sha256=-kQaei47yZeGbDpQ9RaFaFlFb682ThuPA5h321_2cgM,1000
|
|
9
|
+
netbox_dns/api/views.py,sha256=w71SRyZue5zPD1C64TIr496nYFA_ARjHTlpSVFTZ76o,4522
|
|
10
10
|
netbox_dns/api/serializers_/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
11
|
+
netbox_dns/api/serializers_/dnssec_key_template.py,sha256=nWbEj1FGygDWhrJmEd4BlFg7SiLEHcutceCIfCCNfGg,1139
|
|
12
|
+
netbox_dns/api/serializers_/dnssec_policy.py,sha256=IapAT7fI2mSvail_rkXL7c1ZHVgVnlmmgqChpQNoLbw,2466
|
|
11
13
|
netbox_dns/api/serializers_/nameserver.py,sha256=DMkUaLNDt3UtpAD6JDHfo1NMngHWRqHh2-xQeOPlfFM,1171
|
|
12
14
|
netbox_dns/api/serializers_/prefix.py,sha256=kZ1DjDly6VFZamXSxGa57YC6MfZZcI5S7jmGBkVB2_I,551
|
|
13
15
|
netbox_dns/api/serializers_/record.py,sha256=gpfANXhAcPylFWmWpCfwSEHrYy3b9Wl07PIyM4sPKM0,2408
|
|
@@ -15,40 +17,50 @@ netbox_dns/api/serializers_/record_template.py,sha256=WAHua_O7v8IB7QL_hOPWjItMtA
|
|
|
15
17
|
netbox_dns/api/serializers_/registrar.py,sha256=xLIaeBJ5ckV1Jf-uyCTFcvsLlsRMlpDtIg6q79vXZic,842
|
|
16
18
|
netbox_dns/api/serializers_/registration_contact.py,sha256=3IGWW5xB9XEBGApCGZCZIxpCmy1Y5jQUbA4GzmtaCik,1024
|
|
17
19
|
netbox_dns/api/serializers_/view.py,sha256=nnWeQugoqMdn-NGGC7ykbVPwmBrcBma_ZKwdDxUgJ24,1809
|
|
18
|
-
netbox_dns/api/serializers_/zone.py,sha256=
|
|
19
|
-
netbox_dns/api/serializers_/zone_template.py,sha256=
|
|
20
|
-
netbox_dns/choices/__init__.py,sha256=
|
|
21
|
-
netbox_dns/choices/
|
|
20
|
+
netbox_dns/api/serializers_/zone.py,sha256=ARUvmQpMOlJlS5Zo5_ItL855oxK0bSnZFvnTL-ENaow,5675
|
|
21
|
+
netbox_dns/api/serializers_/zone_template.py,sha256=gYlP6wBSVoTZ-DVxJHzGz2fyLdcyibTYR1O9czEKl_k,4374
|
|
22
|
+
netbox_dns/choices/__init__.py,sha256=K3JfawICeoUny8O_Dqexr7DOxwyg3QqijZ4DO6j5yP8,106
|
|
23
|
+
netbox_dns/choices/dnssec_key_template.py,sha256=I1EeEBT1wqOU7CT8CozSjH-Q7JL0udoze9qBoFj_-b4,1403
|
|
24
|
+
netbox_dns/choices/dnssec_policy.py,sha256=s6kz8gTiAuyTzn4piGbl2K9mVG-zga8n1rqZD26l72A,843
|
|
25
|
+
netbox_dns/choices/record.py,sha256=PRS9crKoEZdFXTo6RRqXoFztfx9u3TZPsxq0T4Qdwj0,1423
|
|
26
|
+
netbox_dns/choices/utilities.py,sha256=CV-77-iHKbgSOCDwrTTzsrIpZOq4cBnIf3rhvI0_5qs,711
|
|
22
27
|
netbox_dns/choices/zone.py,sha256=Vblm5RUtNtPNkULh8U1NxBMme1iHPllD6B6LkQkWZW4,621
|
|
23
|
-
netbox_dns/fields/__init__.py,sha256=
|
|
28
|
+
netbox_dns/fields/__init__.py,sha256=yUVrNQ7BvoeVRGoiRFmrZxXsp1LIwHLRLl0_5mBIyzk,143
|
|
24
29
|
netbox_dns/fields/address.py,sha256=qNLHmpwwJ3TevljG1QsUr_f2h6NrPsK6wr-R-Ti8eZI,1262
|
|
30
|
+
netbox_dns/fields/choice_array.py,sha256=hRKZrdjQqxe4yZzmSlXrHgfCiJrT0FiCVqRddEO8IRc,588
|
|
25
31
|
netbox_dns/fields/ipam.py,sha256=wla-kBm77BpD0LNQhgRZS1RYbVois7WDqPpyQkUT02k,481
|
|
26
32
|
netbox_dns/fields/network.py,sha256=a5nTzjscRufxgMjVsf5juszSYuTujU50pQ9P7q4qMVs,3740
|
|
27
33
|
netbox_dns/fields/rfc2317.py,sha256=y72PZKlXZ8_6P4eeWZ8IF3gqOMjPxW48gk3AB81XboE,2642
|
|
28
|
-
netbox_dns/
|
|
34
|
+
netbox_dns/fields/timeperiod.py,sha256=QEdrmczeZWpBCuZubFrWxiHtm973qneGMM2LvtIosqM,901
|
|
35
|
+
netbox_dns/filtersets/__init__.py,sha256=bKppz_w3X2xNNHOcxZZiIO7zSkDaNTrZJ__k1U7rKik,275
|
|
36
|
+
netbox_dns/filtersets/dnssec_key_template.py,sha256=qu1c2MzBKEflcU-QkWrGGf6aU8iYDgfeKPCcxxfdRkY,1565
|
|
37
|
+
netbox_dns/filtersets/dnssec_policy.py,sha256=dezuuqC9ZzSL0fmEC8qCXLerQ0jbxggiYBuI-QlwcmQ,2239
|
|
29
38
|
netbox_dns/filtersets/nameserver.py,sha256=7hk9Wh4v4-IHP44rQC4nhdvpYbDYNYYf-XZp6Yo72xE,1203
|
|
30
39
|
netbox_dns/filtersets/record.py,sha256=Ao2666F6z435TXD_hV2dgItI0sWXlS-jyQ1TQZEL8Yc,3913
|
|
31
40
|
netbox_dns/filtersets/record_template.py,sha256=wir5s2QWfDnw0M1wWnzJs9im5ok4l5cTbWPMBSM8aEg,1604
|
|
32
41
|
netbox_dns/filtersets/registrar.py,sha256=Wh_l-IXRHnJhW7Pyokp3czQZISDKzXnWeSQKp512Drc,977
|
|
33
42
|
netbox_dns/filtersets/registration_contact.py,sha256=903sOcHPRCI0dVzqn1i0pn5VPr_4YpHPh5QE2-akR-Y,1139
|
|
34
43
|
netbox_dns/filtersets/view.py,sha256=IlQz3k2J_N6eSbT9op0KOu3sKLrn-HTsJCcrIqoYgyY,1047
|
|
35
|
-
netbox_dns/filtersets/zone.py,sha256=
|
|
36
|
-
netbox_dns/filtersets/zone_template.py,sha256=
|
|
37
|
-
netbox_dns/forms/__init__.py,sha256=
|
|
44
|
+
netbox_dns/filtersets/zone.py,sha256=LeFmuuRjUv105_gDMkxvuR1i7OABgptBl-zO8u7jUTQ,6833
|
|
45
|
+
netbox_dns/filtersets/zone_template.py,sha256=bbbdc3-420GWR9DrL1MOV8InL1DztKA7I0N4tnr5hXk,4737
|
|
46
|
+
netbox_dns/forms/__init__.py,sha256=tObkTOHw_6kVtEcwdyshN0Ql-8VGhwsgQw7owL_s2lI,273
|
|
47
|
+
netbox_dns/forms/dnssec_key_template.py,sha256=7GAnYZrDe4VW_GYJY0zHwEjG0ecV6Qh317dbSpeKU3I,5217
|
|
48
|
+
netbox_dns/forms/dnssec_policy.py,sha256=yDVdM7qPRVbFaz14CaT8-ns0zdpwF4YJ2jA0AruZIuQ,15603
|
|
38
49
|
netbox_dns/forms/nameserver.py,sha256=GJe3ece4yIGwMtLZ6wQihBrJu1dk_ZSiwX-vSU0fRa0,3397
|
|
39
|
-
netbox_dns/forms/record.py,sha256=
|
|
40
|
-
netbox_dns/forms/record_template.py,sha256=
|
|
50
|
+
netbox_dns/forms/record.py,sha256=wkl3YpbKfq0bH6U8atNYrYwrV-kNPRqG1PRQG3X1eHA,8389
|
|
51
|
+
netbox_dns/forms/record_template.py,sha256=BdcDkQ5VPER3-nBKq6R1MINOG__H8yGa4uqdIqoLZuU,6474
|
|
41
52
|
netbox_dns/forms/registrar.py,sha256=GaRH3w5zlhrpwy_U0pxlrl1DrAEaMB78MUlnGxBRwZI,3949
|
|
42
53
|
netbox_dns/forms/registration_contact.py,sha256=IhNAqElY7hOdpDG0jwWMdy3y2mB43xmjUhj3lsgJ3SE,5906
|
|
43
54
|
netbox_dns/forms/view.py,sha256=GacwKHXSDvxQEs-d3ys7rietqA_MzpSd0XjWaSsIbU0,10339
|
|
44
|
-
netbox_dns/forms/zone.py,sha256=
|
|
45
|
-
netbox_dns/forms/zone_template.py,sha256=
|
|
46
|
-
netbox_dns/graphql/__init__.py,sha256=
|
|
47
|
-
netbox_dns/graphql/filters.py,sha256=
|
|
48
|
-
netbox_dns/graphql/schema.py,sha256=
|
|
49
|
-
netbox_dns/graphql/types.py,sha256=
|
|
50
|
-
netbox_dns/locale/de/LC_MESSAGES/django.mo,sha256=
|
|
55
|
+
netbox_dns/forms/zone.py,sha256=0KKRDGAMzGhxzgaqb2ENLtsV9jft_MnA2qR8RT-lYSo,27518
|
|
56
|
+
netbox_dns/forms/zone_template.py,sha256=Xi7GbYytVekKRrNjG-60uhthFGeOP1a1l3gxD_0ENuM,11001
|
|
57
|
+
netbox_dns/graphql/__init__.py,sha256=0xg_5d1PPFTadBOZo752t5sfZeLFrqs2jM51Rbf8ti4,652
|
|
58
|
+
netbox_dns/graphql/filters.py,sha256=Cyi8_Jz_5cMZfwsiZaAqsdWQM7Hsp-TmoZkvXOa_-S8,2237
|
|
59
|
+
netbox_dns/graphql/schema.py,sha256=KlbJmlfQEqZhvb6-cYmq94mrMFcQoCh3MldaUD5eVV4,2904
|
|
60
|
+
netbox_dns/graphql/types.py,sha256=LIXmzn2QbWU9PzS8Fa2X2hy7GqMiGz50HeNfAOfWzUA,10161
|
|
61
|
+
netbox_dns/locale/de/LC_MESSAGES/django.mo,sha256=9NILKyHatRicFKDt1chIXIcPAi0oki5jmtZYJR27pLs,24329
|
|
51
62
|
netbox_dns/locale/en/LC_MESSAGES/django.mo,sha256=GDnSZkfHs3yjtTsll7dksEEej4B50F8pc9RGytZNubM,393
|
|
63
|
+
netbox_dns/locale/fr/LC_MESSAGES/django.mo,sha256=Gvhfvo0LWlW7ga03q3m8QhbzpgYmCzKp_lida5ABcnc,25024
|
|
52
64
|
netbox_dns/management/commands/cleanup_database.py,sha256=1-tAl0Sht80qaNZyfFyUW19Eh9gBUuc7GdbHN4aemGU,5935
|
|
53
65
|
netbox_dns/management/commands/cleanup_rrset_ttl.py,sha256=UFRURLBcFeGHUS2lrYFv7UWIebjI72aG1EUQJt0XsXw,2046
|
|
54
66
|
netbox_dns/management/commands/rebuild_dnssync.py,sha256=Tcl385u6kJTX47SvSyRzKm1RIx4nYRYCMcKr3uVnV60,1246
|
|
@@ -69,6 +81,9 @@ netbox_dns/migrations/0011_rename_related_fields.py,sha256=j9lI-QBmTSzOrAxDl02Sd
|
|
|
69
81
|
netbox_dns/migrations/0012_natural_ordering.py,sha256=h5XVSmRwisUqz5OJzkBW41dwHIBlu08zqG2-1mxiiw4,2725
|
|
70
82
|
netbox_dns/migrations/0013_zonetemplate_soa_mname_zonetemplate_soa_rname.py,sha256=Y6TdD_dUZ-Pb1kuRR3l3kSwObn_Cpcmp3tm75qSkc5g,795
|
|
71
83
|
netbox_dns/migrations/0014_alter_unique_constraints_lowercase.py,sha256=Ueesv7uoB2ZQ1-7kG_qsMlPv0mn3mdDeI8OoAKIschM,1409
|
|
84
|
+
netbox_dns/migrations/0015_dnssec.py,sha256=PRS8wjN3_h-M17gOHagM-5pkZuuS5nlaJjlIqzKr5f8,6716
|
|
85
|
+
netbox_dns/migrations/0016_dnssec_policy_status.py,sha256=MAGTAz95WYkp2PR1Q1EQehEvAYgL1V-ksMa3wlKHgGE,384
|
|
86
|
+
netbox_dns/migrations/0017_dnssec_policy_zone_zone_template.py,sha256=m36a08UMLzs2l-IpKY1nXdspcbGouCQWMG15m19s8kE,1162
|
|
72
87
|
netbox_dns/migrations/0020_netbox_3_4.py,sha256=UMcHdn8ZAuQjUaM_3rEGpktYrM0TuvhccD7Jt7WQnPs,1271
|
|
73
88
|
netbox_dns/migrations/0021_record_ip_address.py,sha256=EqdhWXmq7aiK4X79xTRUZng3zFncCl-8JoO65HqlJKw,3244
|
|
74
89
|
netbox_dns/migrations/0022_search.py,sha256=KW1ffEZ4-0dppGQ_KD1EN7iw8eQJOnDco-xfJFRZqKQ,172
|
|
@@ -82,18 +97,23 @@ netbox_dns/migrations/0029_record_fqdn.py,sha256=UAAU38ekKQyiYDOJlcrz6Qbk4bqZfSH
|
|
|
82
97
|
netbox_dns/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
83
98
|
netbox_dns/mixins/__init__.py,sha256=LxTEfpod_RHCyMtnzDljv0_dwqp2z3Q6tqbXW8LTGD8,35
|
|
84
99
|
netbox_dns/mixins/object_modification.py,sha256=AR64fU5f7g-scNAj9b54eSoS9dpjyOpqrxXVXPcOhY8,1807
|
|
85
|
-
netbox_dns/models/__init__.py,sha256=
|
|
100
|
+
netbox_dns/models/__init__.py,sha256=CuwFENIVUv0FNMDlY18Am-mvN5kBGkPOGavCP0cle7c,273
|
|
101
|
+
netbox_dns/models/dnssec_key_template.py,sha256=h6YniKfLx1ILAbvko6Mps-bhsI743uHIOiLgtfStZTI,2790
|
|
102
|
+
netbox_dns/models/dnssec_policy.py,sha256=KV9_iFKmoURA5gelOAzNKIuO9iUFmhw8c_kwsyapKSU,5395
|
|
86
103
|
netbox_dns/models/nameserver.py,sha256=ivZpIVfgQLdDhrtqYPi-zRbygVgl3aff2FMsq1M3qA8,4044
|
|
87
104
|
netbox_dns/models/record.py,sha256=ot2f5LVxj4ZjNanE29y-30iUK4YZS7-0-37ds3hWtjo,29716
|
|
88
105
|
netbox_dns/models/record_template.py,sha256=kt-_sMFSMKmuKU8voVqz1-Lh7Wi7lPcA2ExPFQYLoxM,5345
|
|
89
106
|
netbox_dns/models/registrar.py,sha256=L5tbO8rtOa0VCs_y90nHYLKSRKBnnUhh_6sxZ3Mm2kk,1942
|
|
90
107
|
netbox_dns/models/registration_contact.py,sha256=O7T1clUjuilZnDjvhJKaHZdmNEF4aLg2h8K5p4llWOs,3825
|
|
91
108
|
netbox_dns/models/view.py,sha256=gQvKNr_FmhG2EMz2T8kWbdK4b8CyqI-Qc67-Dgrx2SI,4808
|
|
92
|
-
netbox_dns/models/zone.py,sha256=
|
|
93
|
-
netbox_dns/models/zone_template.py,sha256
|
|
109
|
+
netbox_dns/models/zone.py,sha256=i0wA5NFc15BSV_yIl6HMzIWhAqiEL7RpxNCQdfxGV9A,33847
|
|
110
|
+
netbox_dns/models/zone_template.py,sha256=-5lk8MtetHjsjlfEwVJ00qIpAx7Cnd1JvjBtPVHEcX4,5246
|
|
94
111
|
netbox_dns/signals/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
112
|
+
netbox_dns/signals/dnssec.py,sha256=o4MOEg6ftxoDWFAhDtajkXzb7Nb6KuUHjtx1zNu7C1w,1040
|
|
95
113
|
netbox_dns/signals/ipam_dnssync.py,sha256=1zhlf4cMcJLlFosX7YzyqVYdFFHV4MFwTz5KCdL8xQc,7730
|
|
96
|
-
netbox_dns/tables/__init__.py,sha256=
|
|
114
|
+
netbox_dns/tables/__init__.py,sha256=tObkTOHw_6kVtEcwdyshN0Ql-8VGhwsgQw7owL_s2lI,273
|
|
115
|
+
netbox_dns/tables/dnssec_key_template.py,sha256=PplAhtgQa5MqVJtfRyHA7M1QppWKP_XN5NZGld5szEc,1100
|
|
116
|
+
netbox_dns/tables/dnssec_policy.py,sha256=l18S9eMwZH5YFcZIRnW4piJ6pmXCI1KzJIkgepuhxs0,3329
|
|
97
117
|
netbox_dns/tables/ipam_dnssync.py,sha256=7IK95XlA2ter6gsHqXjXPd6WubpOxrV-O5-UT6R1CKU,330
|
|
98
118
|
netbox_dns/tables/nameserver.py,sha256=Ue1ZTygkgifWbQxvnpIG4PIC2qIWfVZaX_g8OIrRd6Q,739
|
|
99
119
|
netbox_dns/tables/record.py,sha256=domOGxacF_2LT84k1qBdTgNKQl4kXVsIR8IM8JwZMns,4299
|
|
@@ -101,16 +121,18 @@ netbox_dns/tables/record_template.py,sha256=HJEOK3VYVCKWhExs775Nb4KAvHPE7IqQEzne
|
|
|
101
121
|
netbox_dns/tables/registrar.py,sha256=XQtJj0c4O4gpCdUp903GSD0tIuARmJw13Nwosw9pTFU,727
|
|
102
122
|
netbox_dns/tables/registration_contact.py,sha256=n_FKE90j6KNgPKRVq1WXg4vnOzFE238oXsi_NYVAU9M,931
|
|
103
123
|
netbox_dns/tables/view.py,sha256=gsuWQWAk3RstNIKzBDOHNHR2D3ykX6WigYLMj0VhQFs,1148
|
|
104
|
-
netbox_dns/tables/zone.py,sha256=
|
|
105
|
-
netbox_dns/tables/zone_template.py,sha256=
|
|
124
|
+
netbox_dns/tables/zone.py,sha256=A8aEqXRTJ9asVxpVHBymx3F1nmkDPyIfDLcNLHMXTSM,2283
|
|
125
|
+
netbox_dns/tables/zone_template.py,sha256=TU45sNYPHxs1xJTKj57e1s-jxLENCOAgE6S6lconWMc,1751
|
|
126
|
+
netbox_dns/templates/netbox_dns/dnsseckeytemplate.html,sha256=dSEyHgUp0k_5JSdR4s4m_7Rom67TqvRIQN0zbQKYfjE,2839
|
|
127
|
+
netbox_dns/templates/netbox_dns/dnssecpolicy.html,sha256=dXHAt8ISsSWv-vK_kaJMcAzUBh4TZ2hAmeaYa47u0PU,7694
|
|
106
128
|
netbox_dns/templates/netbox_dns/nameserver.html,sha256=MawPiuAmjFrbv0zRi-7xkm8vr-dT1tlEno8EcoQ9peU,1714
|
|
107
129
|
netbox_dns/templates/netbox_dns/record.html,sha256=1KBT4xDooTX9kt1cUoPD2-6QnMizPmbItA0JAAgRzfw,6550
|
|
108
130
|
netbox_dns/templates/netbox_dns/recordtemplate.html,sha256=a29PAUl-KI_I1lxWpVdPp2loJtzgis9DG9erOWrOZM0,3708
|
|
109
131
|
netbox_dns/templates/netbox_dns/registrar.html,sha256=4kJuj3biiDxQrIMQEQUEmF4iGRE4psr6Fh0CBP1evz8,2308
|
|
110
132
|
netbox_dns/templates/netbox_dns/registrationcontact.html,sha256=sljVp_MrPSJRc2vJCPFXq9MiWOw4wjbr1kI_YStBntw,3094
|
|
111
133
|
netbox_dns/templates/netbox_dns/view.html,sha256=1MuzOYNQezRrryNjlklgxErjGTFoVnwqcxf4qceuglw,3320
|
|
112
|
-
netbox_dns/templates/netbox_dns/zone.html,sha256=
|
|
113
|
-
netbox_dns/templates/netbox_dns/zonetemplate.html,sha256=
|
|
134
|
+
netbox_dns/templates/netbox_dns/zone.html,sha256=5PaCQgZ_6dtD-XzzJsqkcI21vjWn_mB22gKHBpBvgS8,7540
|
|
135
|
+
netbox_dns/templates/netbox_dns/zonetemplate.html,sha256=a3QD0O_8CW2MUBnU_nXGweGhCwo5pYDVlwJHzovC1RU,4344
|
|
114
136
|
netbox_dns/templates/netbox_dns/record/managed.html,sha256=uwpxQTxyfAXkWqThLT-T2ZssKNUhXTDDMnLWJSVuDNU,119
|
|
115
137
|
netbox_dns/templates/netbox_dns/record/related.html,sha256=R59aPhE4CyIZtTH0ncwDyS6_wAe_Y-oZjuN_j4qk8iA,1158
|
|
116
138
|
netbox_dns/templates/netbox_dns/view/button.html,sha256=EMOB5x78XpyfN1qi-pY1CKKKLjyHo9rFUa4Uhq6rFMc,322
|
|
@@ -124,17 +146,21 @@ netbox_dns/templates/netbox_dns/zone/managed_record.html,sha256=LOchMAJyfMZIICE6
|
|
|
124
146
|
netbox_dns/templates/netbox_dns/zone/record.html,sha256=Y_gg9EUIqjSYxmIZKufAK8jyg9A54J-BoewNxUBoO1Y,2238
|
|
125
147
|
netbox_dns/templates/netbox_dns/zone/registration.html,sha256=PqniHrO-LnXstIKyjn3fJk69ysjfrrt3U4kZAJqidXI,1265
|
|
126
148
|
netbox_dns/templates/netbox_dns/zone/rfc2317_child_zone.html,sha256=rWlmb3zRQbLYQ_1dsa0twwu6y1dRj2tfFVEERH07p-s,517
|
|
149
|
+
netbox_dns/templates/netbox_dns/zonetemplate/child.html,sha256=S8BMNOZkfs8SM_4yfKR8_RnQXG47FHCe7rf2quDTc_Y,2247
|
|
127
150
|
netbox_dns/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
128
151
|
netbox_dns/templatetags/netbox_dns.py,sha256=DND1DMPzv636Rak3M6Hor_Vw6pjqUfSTquofIw4dIsA,223
|
|
129
152
|
netbox_dns/utilities/__init__.py,sha256=cSGf-nGaRWx9b-Xrh3dLMJYoWNsZ6FF-qdmV4F1uOgg,74
|
|
130
153
|
netbox_dns/utilities/conversions.py,sha256=eKA17FSU-Us3cfda9DAgtZgmr3r2o5UbJ_1giD3LLvE,2713
|
|
131
154
|
netbox_dns/utilities/dns.py,sha256=UBiyQe8thiOTnKOmU9e2iRHHnGF9toVLe4efU623kX4,322
|
|
132
155
|
netbox_dns/utilities/ipam_dnssync.py,sha256=_yuHoah_QN-opsZB51yGCkwjkij7nrmTgKHUZ-bQrBI,9625
|
|
133
|
-
netbox_dns/validators/__init__.py,sha256=
|
|
156
|
+
netbox_dns/validators/__init__.py,sha256=X0hPZlC3VZcXMcvXKZ2_5LSoEJdXPNSBr4QtEIFSBJ0,94
|
|
134
157
|
netbox_dns/validators/dns_name.py,sha256=Sil68Av49jfZPzgFMV_1qEcLnuuAWXmbxfAJPDXUsGg,3766
|
|
135
158
|
netbox_dns/validators/dns_value.py,sha256=-mc62mth-hlbPUPe_RlCR7vo1KSD6_gQDXiE8rjB-Cc,5206
|
|
159
|
+
netbox_dns/validators/dnssec.py,sha256=3_go92FfrDM6zb-0DZQtaOTqmqGu5bTlywuS6xkp4f4,4707
|
|
136
160
|
netbox_dns/validators/rfc2317.py,sha256=uKkwxpakiFFKdYA0qy8WSlEnbFwJD4MDw6gGV4F6skg,706
|
|
137
|
-
netbox_dns/views/__init__.py,sha256=
|
|
161
|
+
netbox_dns/views/__init__.py,sha256=tObkTOHw_6kVtEcwdyshN0Ql-8VGhwsgQw7owL_s2lI,273
|
|
162
|
+
netbox_dns/views/dnssec_key_template.py,sha256=TfBtODl7EzGvmC2NVDLd-P1zMalLCjClb9pKgPzIsBk,3050
|
|
163
|
+
netbox_dns/views/dnssec_policy.py,sha256=cAuV-Ng0lpwHeXwBbBK9PMeBfmpwFmr1l4lQi2vSHPQ,4766
|
|
138
164
|
netbox_dns/views/nameserver.py,sha256=6lHg8fqBjc_SoITzFj1FiRARpPF7nSn9knAZxe9x5Rg,3932
|
|
139
165
|
netbox_dns/views/record.py,sha256=6tOTC7BbQ5XOC7wr94LjFMR3epOi47HP5qIETNvj5sE,6715
|
|
140
166
|
netbox_dns/views/record_template.py,sha256=CbSyckBvyEvcZCeZgK3q0fJsa1_5HbwUflh_iM7JjH0,3134
|
|
@@ -143,8 +169,8 @@ netbox_dns/views/registration_contact.py,sha256=c9KrNkfFNsb55pL74A5rN1CNx32M82V6
|
|
|
143
169
|
netbox_dns/views/view.py,sha256=VfrKaLC9D_KNZNmRyFVohRlmMlMbtblAuPgNg0LNyf8,3421
|
|
144
170
|
netbox_dns/views/zone.py,sha256=W66Miyaf4RKW-8z5wMrerrtmHclhht3h-lPqTWFpiOw,7163
|
|
145
171
|
netbox_dns/views/zone_template.py,sha256=IIW1lr6RQmhShtqJu6A6LnHdxdBrkkZQHxIDSTqQeyc,2705
|
|
146
|
-
netbox_plugin_dns-1.2.
|
|
147
|
-
netbox_plugin_dns-1.2.
|
|
148
|
-
netbox_plugin_dns-1.2.
|
|
149
|
-
netbox_plugin_dns-1.2.
|
|
150
|
-
netbox_plugin_dns-1.2.
|
|
172
|
+
netbox_plugin_dns-1.2.7b2.dist-info/LICENSE,sha256=I3tDu11bZfhFm3EkV4zOD5TmWgLjnUNLEFwrdjniZYs,1112
|
|
173
|
+
netbox_plugin_dns-1.2.7b2.dist-info/METADATA,sha256=8N_qhe9Z9UKIyFYI_ejC_24g7RfygkpBqiZnBJ23_ms,7625
|
|
174
|
+
netbox_plugin_dns-1.2.7b2.dist-info/WHEEL,sha256=52BFRY2Up02UkjOa29eZOS2VxUrpPORXg1pkohGGUS8,91
|
|
175
|
+
netbox_plugin_dns-1.2.7b2.dist-info/top_level.txt,sha256=sA1Rwl1mRKvMC6XHe2ylZ1GF-Q1NGd08XedK9Y4xZc4,11
|
|
176
|
+
netbox_plugin_dns-1.2.7b2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|