netbox-plugin-dns 1.2.9__py3-none-any.whl → 1.3b2__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 +1 -1
- netbox_dns/api/nested_serializers.py +54 -49
- netbox_dns/api/serializers_/dnssec_key_template.py +21 -13
- netbox_dns/api/serializers_/dnssec_policy.py +88 -40
- netbox_dns/api/serializers_/nameserver.py +21 -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 -77
- 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.9.dist-info → netbox_plugin_dns-1.3b2.dist-info}/METADATA +4 -3
- {netbox_plugin_dns-1.2.9.dist-info → netbox_plugin_dns-1.3b2.dist-info}/RECORD +81 -69
- netbox_dns/graphql/filters.py +0 -88
- {netbox_plugin_dns-1.2.9.dist-info → netbox_plugin_dns-1.3b2.dist-info}/WHEEL +0 -0
- {netbox_plugin_dns-1.2.9.dist-info → netbox_plugin_dns-1.3b2.dist-info}/licenses/LICENSE +0 -0
- {netbox_plugin_dns-1.2.9.dist-info → netbox_plugin_dns-1.3b2.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
from typing import Annotated, TYPE_CHECKING
|
|
2
|
+
|
|
3
|
+
import strawberry
|
|
4
|
+
import strawberry_django
|
|
5
|
+
from strawberry.scalars import ID
|
|
6
|
+
from strawberry_django import FilterLookup
|
|
7
|
+
|
|
8
|
+
from netbox.graphql.filter_mixins import NetBoxModelFilterMixin
|
|
9
|
+
from tenancy.graphql.filter_mixins import ContactFilterMixin, TenancyFilterMixin
|
|
10
|
+
|
|
11
|
+
if TYPE_CHECKING:
|
|
12
|
+
from ipam.graphql.filters import IPAddressFilter
|
|
13
|
+
from netbox.graphql.filter_lookups import IntegerLookup
|
|
14
|
+
from .enums import (
|
|
15
|
+
NetBoxDNSRecordStatusEnum,
|
|
16
|
+
NetBoxDNSRecordTypeEnum,
|
|
17
|
+
)
|
|
18
|
+
from .view import NetBoxDNSViewFilter
|
|
19
|
+
from .zone import NetBoxDNSZoneFilter
|
|
20
|
+
|
|
21
|
+
from netbox_dns.models import Record
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
__all__ = ("NetBoxDNSRecordFilter",)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
@strawberry_django.filter(Record, lookups=True)
|
|
28
|
+
class NetBoxDNSRecordFilter(
|
|
29
|
+
ContactFilterMixin, TenancyFilterMixin, NetBoxModelFilterMixin
|
|
30
|
+
):
|
|
31
|
+
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
32
|
+
fqdn: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
33
|
+
description: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
34
|
+
view: (
|
|
35
|
+
Annotated["NetBoxDNSViewFilter", strawberry.lazy("netbox_dns.graphql.filters")]
|
|
36
|
+
| None
|
|
37
|
+
) = strawberry_django.filter_field()
|
|
38
|
+
view_id: ID | None = strawberry_django.filter_field()
|
|
39
|
+
zone: (
|
|
40
|
+
Annotated["NetBoxDNSZoneFilter", strawberry.lazy("netbox_dns.graphql.filters")]
|
|
41
|
+
| None
|
|
42
|
+
) = strawberry_django.filter_field()
|
|
43
|
+
zone_id: ID | None = strawberry_django.filter_field()
|
|
44
|
+
type: (
|
|
45
|
+
Annotated[
|
|
46
|
+
"NetBoxDNSRecordTypeEnum", strawberry.lazy("netbox_dns.graphql.enums")
|
|
47
|
+
]
|
|
48
|
+
| None
|
|
49
|
+
) = strawberry_django.filter_field()
|
|
50
|
+
ttl: (
|
|
51
|
+
Annotated["IntegerLookup", strawberry.lazy("netbox.graphql.filter_lookups")]
|
|
52
|
+
| None
|
|
53
|
+
) = strawberry_django.filter_field()
|
|
54
|
+
value: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
55
|
+
disable_ptr: FilterLookup[bool] | None = strawberry_django.filter_field()
|
|
56
|
+
status: (
|
|
57
|
+
Annotated[
|
|
58
|
+
"NetBoxDNSRecordStatusEnum", strawberry.lazy("netbox_dns.graphql.enums")
|
|
59
|
+
]
|
|
60
|
+
| None
|
|
61
|
+
) = strawberry_django.filter_field()
|
|
62
|
+
managed: FilterLookup[bool] | None = strawberry_django.filter_field()
|
|
63
|
+
address_record: (
|
|
64
|
+
Annotated[
|
|
65
|
+
"NetBoxDNSRecordFilter", strawberry.lazy("netbox_dns.graphql.filters")
|
|
66
|
+
]
|
|
67
|
+
| None
|
|
68
|
+
) = strawberry_django.filter_field()
|
|
69
|
+
address_record_id: ID | None = strawberry_django.filter_field()
|
|
70
|
+
ptr_record: (
|
|
71
|
+
Annotated[
|
|
72
|
+
"NetBoxDNSRecordFilter", strawberry.lazy("netbox_dns.graphql.filters")
|
|
73
|
+
]
|
|
74
|
+
| None
|
|
75
|
+
) = strawberry_django.filter_field()
|
|
76
|
+
ptr_record_id: ID | None = strawberry_django.filter_field()
|
|
77
|
+
rfc2317_cname_record: (
|
|
78
|
+
Annotated[
|
|
79
|
+
"NetBoxDNSRecordFilter", strawberry.lazy("netbox_dns.graphql.filters")
|
|
80
|
+
]
|
|
81
|
+
| None
|
|
82
|
+
) = strawberry_django.filter_field()
|
|
83
|
+
ipam_ip_address: (
|
|
84
|
+
Annotated["IPAddressFilter", strawberry.lazy("ipam.graphql.filters")] | None
|
|
85
|
+
) = strawberry_django.filter_field()
|
|
86
|
+
ipam_ip_address_id: ID | None = strawberry_django.filter_field()
|
|
87
|
+
|
|
88
|
+
ip_address: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
89
|
+
active: FilterLookup[bool] | None = strawberry_django.filter_field()
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
from typing import Annotated, TYPE_CHECKING
|
|
2
|
+
|
|
3
|
+
import strawberry
|
|
4
|
+
import strawberry_django
|
|
5
|
+
from strawberry_django import FilterLookup
|
|
6
|
+
|
|
7
|
+
from netbox.graphql.filter_mixins import NetBoxModelFilterMixin
|
|
8
|
+
from tenancy.graphql.filter_mixins import ContactFilterMixin, TenancyFilterMixin
|
|
9
|
+
|
|
10
|
+
if TYPE_CHECKING:
|
|
11
|
+
from netbox.graphql.filter_lookups import IntegerLookup
|
|
12
|
+
from .enums import (
|
|
13
|
+
NetBoxDNSRecordStatusEnum,
|
|
14
|
+
NetBoxDNSRecordTypeEnum,
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
from netbox_dns.models import RecordTemplate
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
__all__ = ("NetBoxDNSRecordTemplateFilter",)
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
@strawberry_django.filter(RecordTemplate, lookups=True)
|
|
24
|
+
class NetBoxDNSRecordTemplateFilter(
|
|
25
|
+
ContactFilterMixin, TenancyFilterMixin, NetBoxModelFilterMixin
|
|
26
|
+
):
|
|
27
|
+
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
28
|
+
description: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
29
|
+
record_name: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
30
|
+
type: (
|
|
31
|
+
Annotated[
|
|
32
|
+
"NetBoxDNSRecordTypeEnum", strawberry.lazy("netbox_dns.graphql.enums")
|
|
33
|
+
]
|
|
34
|
+
| None
|
|
35
|
+
) = strawberry_django.filter_field()
|
|
36
|
+
status: (
|
|
37
|
+
Annotated[
|
|
38
|
+
"NetBoxDNSRecordStatusEnum", strawberry.lazy("netbox_dns.graphql.enums")
|
|
39
|
+
]
|
|
40
|
+
| None
|
|
41
|
+
) = strawberry_django.filter_field()
|
|
42
|
+
ttl: (
|
|
43
|
+
Annotated["IntegerLookup", strawberry.lazy("netbox.graphql.filter_lookups")]
|
|
44
|
+
| None
|
|
45
|
+
) = strawberry_django.filter_field()
|
|
46
|
+
value: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
47
|
+
disable_ptr: FilterLookup[bool] | None = strawberry_django.filter_field()
|
|
48
|
+
|
|
49
|
+
zone_templates: (
|
|
50
|
+
Annotated[
|
|
51
|
+
"NetBoxDNSRecordTemplateFilter",
|
|
52
|
+
strawberry.lazy("netbox_dns.graphql.filters"),
|
|
53
|
+
]
|
|
54
|
+
| None
|
|
55
|
+
) = strawberry_django.filter_field()
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
from typing import Annotated, TYPE_CHECKING
|
|
2
|
+
|
|
3
|
+
import strawberry
|
|
4
|
+
import strawberry_django
|
|
5
|
+
from strawberry_django import FilterLookup
|
|
6
|
+
|
|
7
|
+
from netbox.graphql.filter_mixins import NetBoxModelFilterMixin
|
|
8
|
+
|
|
9
|
+
if TYPE_CHECKING:
|
|
10
|
+
from netbox.graphql.filter_lookups import IntegerLookup
|
|
11
|
+
|
|
12
|
+
from netbox_dns.models import Registrar
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
__all__ = ("NetBoxDNSRegistrarFilter",)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
@strawberry_django.filter(Registrar, lookups=True)
|
|
19
|
+
class NetBoxDNSRegistrarFilter(NetBoxModelFilterMixin):
|
|
20
|
+
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
21
|
+
description: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
22
|
+
iana_id: (
|
|
23
|
+
Annotated["IntegerLookup", strawberry.lazy("netbox.graphql.filter_lookups")]
|
|
24
|
+
| None
|
|
25
|
+
) = strawberry_django.filter_field()
|
|
26
|
+
address: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
27
|
+
referral_url: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
28
|
+
whois_server: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
29
|
+
abuse_email: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
30
|
+
abuse_phone: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import strawberry_django
|
|
2
|
+
from strawberry_django import FilterLookup
|
|
3
|
+
|
|
4
|
+
from netbox.graphql.filter_mixins import NetBoxModelFilterMixin
|
|
5
|
+
|
|
6
|
+
from netbox_dns.models import RegistrationContact
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
__all__ = ("NetBoxDNSRegistrationContactFilter",)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
@strawberry_django.filter(RegistrationContact, lookups=True)
|
|
13
|
+
class NetBoxDNSRegistrationContactFilter(NetBoxModelFilterMixin):
|
|
14
|
+
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
15
|
+
description: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
16
|
+
contact_id: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
17
|
+
organization: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
18
|
+
street: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
19
|
+
city: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
20
|
+
state_province: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
21
|
+
postal_code: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
22
|
+
country: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
23
|
+
phone: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
24
|
+
phone_ext: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
25
|
+
fax: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
26
|
+
fax_ext: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
27
|
+
email: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
from typing import Annotated, TYPE_CHECKING
|
|
2
|
+
|
|
3
|
+
import strawberry
|
|
4
|
+
import strawberry_django
|
|
5
|
+
from strawberry_django import FilterLookup
|
|
6
|
+
|
|
7
|
+
from netbox.graphql.filter_mixins import NetBoxModelFilterMixin
|
|
8
|
+
from tenancy.graphql.filter_mixins import ContactFilterMixin, TenancyFilterMixin
|
|
9
|
+
|
|
10
|
+
if TYPE_CHECKING:
|
|
11
|
+
from ipam.graphql.filters import PrefixFilter
|
|
12
|
+
|
|
13
|
+
from netbox_dns.models import View
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
__all__ = ("NetBoxDNSViewFilter",)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
@strawberry_django.filter(View, lookups=True)
|
|
20
|
+
class NetBoxDNSViewFilter(
|
|
21
|
+
ContactFilterMixin, TenancyFilterMixin, NetBoxModelFilterMixin
|
|
22
|
+
):
|
|
23
|
+
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
24
|
+
default_view: FilterLookup[bool] | None = strawberry_django.filter_field()
|
|
25
|
+
description: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
26
|
+
prefixes: (
|
|
27
|
+
Annotated["PrefixFilter", strawberry.lazy("ipam.graphql.filters")] | None
|
|
28
|
+
) = strawberry_django.filter_field()
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
from typing import Annotated, TYPE_CHECKING
|
|
2
|
+
|
|
3
|
+
import strawberry
|
|
4
|
+
import strawberry_django
|
|
5
|
+
from strawberry.scalars import ID
|
|
6
|
+
from strawberry_django import FilterLookup
|
|
7
|
+
|
|
8
|
+
from netbox.graphql.filter_mixins import NetBoxModelFilterMixin
|
|
9
|
+
from tenancy.graphql.filter_mixins import ContactFilterMixin, TenancyFilterMixin
|
|
10
|
+
|
|
11
|
+
if TYPE_CHECKING:
|
|
12
|
+
from netbox.graphql.filter_lookups import IntegerLookup
|
|
13
|
+
from .enums import NetBoxDNSZoneStatusEnum
|
|
14
|
+
from .view import NetBoxDNSViewFilter
|
|
15
|
+
from .nameserver import NetBoxDNSNameServerFilter
|
|
16
|
+
from .registrar import NetBoxDNSRegistrarFilter
|
|
17
|
+
from .registration_contact import NetBoxDNSRegistrationContactFilter
|
|
18
|
+
from .dnssec_policy import NetBoxDNSDNSSECPolicyFilter
|
|
19
|
+
|
|
20
|
+
from netbox_dns.models import Zone
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
__all__ = ("NetBoxDNSZoneFilter",)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
@strawberry_django.filter(Zone, lookups=True)
|
|
27
|
+
class NetBoxDNSZoneFilter(
|
|
28
|
+
ContactFilterMixin, TenancyFilterMixin, NetBoxModelFilterMixin
|
|
29
|
+
):
|
|
30
|
+
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
31
|
+
description: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
32
|
+
view: (
|
|
33
|
+
Annotated["NetBoxDNSViewFilter", strawberry.lazy("netbox_dns.graphql.filters")]
|
|
34
|
+
| None
|
|
35
|
+
) = strawberry_django.filter_field()
|
|
36
|
+
view_id: ID | None = strawberry_django.filter_field()
|
|
37
|
+
nameservers: (
|
|
38
|
+
Annotated[
|
|
39
|
+
"NetBoxDNSNameServerFilter", strawberry.lazy("netbox_dns.graphql.filters")
|
|
40
|
+
]
|
|
41
|
+
| None
|
|
42
|
+
) = strawberry_django.filter_field()
|
|
43
|
+
status: (
|
|
44
|
+
Annotated[
|
|
45
|
+
"NetBoxDNSZoneStatusEnum", strawberry.lazy("netbox_dns.graphql.enums")
|
|
46
|
+
]
|
|
47
|
+
| None
|
|
48
|
+
) = strawberry_django.filter_field()
|
|
49
|
+
default_ttl: (
|
|
50
|
+
Annotated["IntegerLookup", strawberry.lazy("netbox.graphql.filter_lookups")]
|
|
51
|
+
| None
|
|
52
|
+
) = strawberry_django.filter_field()
|
|
53
|
+
|
|
54
|
+
soa_ttl: (
|
|
55
|
+
Annotated["IntegerLookup", strawberry.lazy("netbox.graphql.filter_lookups")]
|
|
56
|
+
| None
|
|
57
|
+
) = strawberry_django.filter_field()
|
|
58
|
+
soa_mname: (
|
|
59
|
+
Annotated[
|
|
60
|
+
"NetBoxDNSNameServerFilter", strawberry.lazy("netbox_dns.graphql.filters")
|
|
61
|
+
]
|
|
62
|
+
| None
|
|
63
|
+
) = strawberry_django.filter_field()
|
|
64
|
+
soa_mname_id: ID | None = strawberry_django.filter_field()
|
|
65
|
+
soa_rname: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
66
|
+
soa_serial: (
|
|
67
|
+
Annotated["IntegerLookup", strawberry.lazy("netbox.graphql.filter_lookups")]
|
|
68
|
+
| None
|
|
69
|
+
) = strawberry_django.filter_field()
|
|
70
|
+
soa_refresh: (
|
|
71
|
+
Annotated["IntegerLookup", strawberry.lazy("netbox.graphql.filter_lookups")]
|
|
72
|
+
| None
|
|
73
|
+
) = strawberry_django.filter_field()
|
|
74
|
+
soa_retry: (
|
|
75
|
+
Annotated["IntegerLookup", strawberry.lazy("netbox.graphql.filter_lookups")]
|
|
76
|
+
| None
|
|
77
|
+
) = strawberry_django.filter_field()
|
|
78
|
+
soa_expire: (
|
|
79
|
+
Annotated["IntegerLookup", strawberry.lazy("netbox.graphql.filter_lookups")]
|
|
80
|
+
| None
|
|
81
|
+
) = strawberry_django.filter_field()
|
|
82
|
+
soa_minimum: (
|
|
83
|
+
Annotated["IntegerLookup", strawberry.lazy("netbox.graphql.filter_lookups")]
|
|
84
|
+
| None
|
|
85
|
+
) = strawberry_django.filter_field()
|
|
86
|
+
soa_serial_auto: FilterLookup[bool] | None = strawberry_django.filter_field()
|
|
87
|
+
|
|
88
|
+
dnssec_policy: (
|
|
89
|
+
Annotated[
|
|
90
|
+
"NetBoxDNSDNSSECPolicyFilter", strawberry.lazy("netbox_dns.graphql.filters")
|
|
91
|
+
]
|
|
92
|
+
| None
|
|
93
|
+
)
|
|
94
|
+
inline_signing: FilterLookup[bool] | None = strawberry_django.filter_field()
|
|
95
|
+
|
|
96
|
+
registrar: (
|
|
97
|
+
Annotated[
|
|
98
|
+
"NetBoxDNSRegistrarFilter", strawberry.lazy("netbox_dns.graphql.filters")
|
|
99
|
+
]
|
|
100
|
+
| None
|
|
101
|
+
)
|
|
102
|
+
registrar_id: ID | None = strawberry_django.filter_field()
|
|
103
|
+
registry_domain_id: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
104
|
+
registrant: (
|
|
105
|
+
Annotated[
|
|
106
|
+
"NetBoxDNSRegistrationContactFilter",
|
|
107
|
+
strawberry.lazy("netbox_dns.graphql.filters"),
|
|
108
|
+
]
|
|
109
|
+
| None
|
|
110
|
+
)
|
|
111
|
+
registrant_id: ID | None = strawberry_django.filter_field()
|
|
112
|
+
admin_c: (
|
|
113
|
+
Annotated[
|
|
114
|
+
"NetBoxDNSRegistrationContactFilter",
|
|
115
|
+
strawberry.lazy("netbox_dns.graphql.filters"),
|
|
116
|
+
]
|
|
117
|
+
| None
|
|
118
|
+
)
|
|
119
|
+
admin_c_id: ID | None = strawberry_django.filter_field()
|
|
120
|
+
tech_c: (
|
|
121
|
+
Annotated[
|
|
122
|
+
"NetBoxDNSRegistrationContactFilter",
|
|
123
|
+
strawberry.lazy("netbox_dns.graphql.filters"),
|
|
124
|
+
]
|
|
125
|
+
| None
|
|
126
|
+
)
|
|
127
|
+
tech_c_id: ID | None = strawberry_django.filter_field()
|
|
128
|
+
billing_c: (
|
|
129
|
+
Annotated[
|
|
130
|
+
"NetBoxDNSRegistrationContactFilter",
|
|
131
|
+
strawberry.lazy("netbox_dns.graphql.filters"),
|
|
132
|
+
]
|
|
133
|
+
| None
|
|
134
|
+
)
|
|
135
|
+
billing_c_id: ID | None = strawberry_django.filter_field()
|
|
136
|
+
|
|
137
|
+
rfc2317_prefix: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
138
|
+
rfc2317_parent_zone: (
|
|
139
|
+
Annotated["NetBoxDNSZoneFilter", strawberry.lazy("netbox_dns.graphql.filters")]
|
|
140
|
+
| None
|
|
141
|
+
) = strawberry_django.filter_field()
|
|
142
|
+
rfc2317_parent_zone_id: ID | None = strawberry_django.filter_field()
|
|
143
|
+
rfc2317_parent_managed: FilterLookup[bool] | None = strawberry_django.filter_field()
|
|
144
|
+
|
|
145
|
+
arpa_network: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
146
|
+
active: FilterLookup[bool] | None = strawberry_django.filter_field()
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
from typing import Annotated, TYPE_CHECKING
|
|
2
|
+
|
|
3
|
+
import strawberry
|
|
4
|
+
import strawberry_django
|
|
5
|
+
from strawberry.scalars import ID
|
|
6
|
+
from strawberry_django import FilterLookup
|
|
7
|
+
|
|
8
|
+
from netbox.graphql.filter_mixins import NetBoxModelFilterMixin
|
|
9
|
+
from tenancy.graphql.filter_mixins import ContactFilterMixin, TenancyFilterMixin
|
|
10
|
+
|
|
11
|
+
if TYPE_CHECKING:
|
|
12
|
+
from .enums import NetBoxDNSZoneStatusEnum
|
|
13
|
+
from .nameserver import NetBoxDNSNameServerFilter
|
|
14
|
+
from .record_template import NetBoxDNSRecordTemplateFilter
|
|
15
|
+
from .registrar import NetBoxDNSRegistrarFilter
|
|
16
|
+
from .registration_contact import NetBoxDNSRegistrationContactFilter
|
|
17
|
+
|
|
18
|
+
from netbox_dns.models import ZoneTemplate
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
__all__ = ("NetBoxDNSZoneTemplateFilter",)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
@strawberry_django.filter(ZoneTemplate, lookups=True)
|
|
25
|
+
class NetBoxDNSZoneTemplateFilter(
|
|
26
|
+
ContactFilterMixin, TenancyFilterMixin, NetBoxModelFilterMixin
|
|
27
|
+
):
|
|
28
|
+
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
29
|
+
description: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
30
|
+
nameservers: (
|
|
31
|
+
Annotated[
|
|
32
|
+
"NetBoxDNSNameServerFilter", strawberry.lazy("netbox_dns.graphql.filters")
|
|
33
|
+
]
|
|
34
|
+
| None
|
|
35
|
+
) = strawberry_django.filter_field()
|
|
36
|
+
status: (
|
|
37
|
+
Annotated[
|
|
38
|
+
"NetBoxDNSZoneStatusEnum", strawberry.lazy("netbox_dns.graphql.enums")
|
|
39
|
+
]
|
|
40
|
+
| None
|
|
41
|
+
) = strawberry_django.filter_field()
|
|
42
|
+
|
|
43
|
+
soa_mname: (
|
|
44
|
+
Annotated[
|
|
45
|
+
"NetBoxDNSNameServerFilter", strawberry.lazy("netbox_dns.graphql.filters")
|
|
46
|
+
]
|
|
47
|
+
| None
|
|
48
|
+
) = strawberry_django.filter_field()
|
|
49
|
+
soa_mname_id: ID | None = strawberry_django.filter_field()
|
|
50
|
+
soa_rname: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
51
|
+
|
|
52
|
+
registrar: (
|
|
53
|
+
Annotated[
|
|
54
|
+
"NetBoxDNSRegistrarFilter", strawberry.lazy("netbox_dns.graphql.filters")
|
|
55
|
+
]
|
|
56
|
+
| None
|
|
57
|
+
)
|
|
58
|
+
registrar_id: ID | None = strawberry_django.filter_field()
|
|
59
|
+
registrant: (
|
|
60
|
+
Annotated[
|
|
61
|
+
"NetBoxDNSRegistrationContactFilter",
|
|
62
|
+
strawberry.lazy("netbox_dns.graphql.filters"),
|
|
63
|
+
]
|
|
64
|
+
| None
|
|
65
|
+
)
|
|
66
|
+
registrant_id: ID | None = strawberry_django.filter_field()
|
|
67
|
+
admin_c: (
|
|
68
|
+
Annotated[
|
|
69
|
+
"NetBoxDNSRegistrationContactFilter",
|
|
70
|
+
strawberry.lazy("netbox_dns.graphql.filters"),
|
|
71
|
+
]
|
|
72
|
+
| None
|
|
73
|
+
)
|
|
74
|
+
admin_c_id: ID | None = strawberry_django.filter_field()
|
|
75
|
+
tech_c: (
|
|
76
|
+
Annotated[
|
|
77
|
+
"NetBoxDNSRegistrationContactFilter",
|
|
78
|
+
strawberry.lazy("netbox_dns.graphql.filters"),
|
|
79
|
+
]
|
|
80
|
+
| None
|
|
81
|
+
)
|
|
82
|
+
tech_c_id: ID | None = strawberry_django.filter_field()
|
|
83
|
+
billing_c: (
|
|
84
|
+
Annotated[
|
|
85
|
+
"NetBoxDNSRegistrationContactFilter",
|
|
86
|
+
strawberry.lazy("netbox_dns.graphql.filters"),
|
|
87
|
+
]
|
|
88
|
+
| None
|
|
89
|
+
)
|
|
90
|
+
billing_c_id: ID | None = strawberry_django.filter_field()
|
|
91
|
+
record_templates: (
|
|
92
|
+
Annotated[
|
|
93
|
+
"NetBoxDNSRecordTemplateFilter",
|
|
94
|
+
strawberry.lazy("netbox_dns.graphql.filters"),
|
|
95
|
+
]
|
|
96
|
+
| None
|
|
97
|
+
) = strawberry_django.filter_field()
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
from django.db import models
|
|
2
|
-
from django.urls import reverse
|
|
3
2
|
from django.utils.translation import gettext_lazy as _
|
|
4
3
|
|
|
5
4
|
from netbox.models import NetBoxModel
|
|
@@ -21,6 +20,29 @@ __all__ = (
|
|
|
21
20
|
|
|
22
21
|
|
|
23
22
|
class DNSSECKeyTemplate(ContactsMixin, NetBoxModel):
|
|
23
|
+
class Meta:
|
|
24
|
+
verbose_name = _("DNSSEC Key Template")
|
|
25
|
+
verbose_name_plural = _("DNSSEC Key Templates")
|
|
26
|
+
|
|
27
|
+
unique_together = (
|
|
28
|
+
"name",
|
|
29
|
+
"type",
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
ordering = ("name",)
|
|
33
|
+
|
|
34
|
+
clone_fields = (
|
|
35
|
+
"description",
|
|
36
|
+
"type",
|
|
37
|
+
"lifetime",
|
|
38
|
+
"algorithm",
|
|
39
|
+
"key_size",
|
|
40
|
+
"tenant",
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
def __str__(self):
|
|
44
|
+
return f"{str(self.name)} [{self.type}]"
|
|
45
|
+
|
|
24
46
|
name = models.CharField(
|
|
25
47
|
verbose_name=_("Name"),
|
|
26
48
|
max_length=255,
|
|
@@ -65,32 +87,6 @@ class DNSSECKeyTemplate(ContactsMixin, NetBoxModel):
|
|
|
65
87
|
null=True,
|
|
66
88
|
)
|
|
67
89
|
|
|
68
|
-
clone_fields = (
|
|
69
|
-
"description",
|
|
70
|
-
"type",
|
|
71
|
-
"lifetime",
|
|
72
|
-
"algorithm",
|
|
73
|
-
"key_size",
|
|
74
|
-
"tenant",
|
|
75
|
-
)
|
|
76
|
-
|
|
77
|
-
class Meta:
|
|
78
|
-
verbose_name = _("DNSSEC Key Template")
|
|
79
|
-
verbose_name_plural = _("DNSSEC Key Templates")
|
|
80
|
-
unique_together = (
|
|
81
|
-
"name",
|
|
82
|
-
"type",
|
|
83
|
-
)
|
|
84
|
-
|
|
85
|
-
ordering = ("name",)
|
|
86
|
-
|
|
87
|
-
def __str__(self):
|
|
88
|
-
return f"{str(self.name)} [{self.type}]"
|
|
89
|
-
|
|
90
|
-
# TODO: Remove in version 1.3.0 (NetBox #18555)
|
|
91
|
-
def get_absolute_url(self):
|
|
92
|
-
return reverse("plugins:netbox_dns:dnsseckeytemplate", kwargs={"pk": self.pk})
|
|
93
|
-
|
|
94
90
|
def get_type_color(self):
|
|
95
91
|
return DNSSECKeyTemplateTypeChoices.colors.get(self.type)
|
|
96
92
|
|
|
@@ -108,6 +104,7 @@ class DNSSECKeyTemplate(ContactsMixin, NetBoxModel):
|
|
|
108
104
|
@register_search
|
|
109
105
|
class DNSSECKeyTemplateIndex(SearchIndex):
|
|
110
106
|
model = DNSSECKeyTemplate
|
|
107
|
+
|
|
111
108
|
fields = (
|
|
112
109
|
("name", 100),
|
|
113
110
|
("description", 500),
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
from django.db import models
|
|
2
|
-
from django.urls import reverse
|
|
3
2
|
from django.utils.translation import gettext_lazy as _
|
|
4
3
|
|
|
5
4
|
from netbox.models import NetBoxModel
|
|
@@ -18,6 +17,22 @@ __all__ = (
|
|
|
18
17
|
|
|
19
18
|
|
|
20
19
|
class DNSSECPolicy(ContactsMixin, NetBoxModel):
|
|
20
|
+
class Meta:
|
|
21
|
+
verbose_name = _("DNSSEC Policy")
|
|
22
|
+
verbose_name_plural = _("DNSSEC Policies")
|
|
23
|
+
|
|
24
|
+
ordering = ("name",)
|
|
25
|
+
|
|
26
|
+
clone_fields = (
|
|
27
|
+
"name",
|
|
28
|
+
"key_templates",
|
|
29
|
+
"description",
|
|
30
|
+
"tenant",
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
def __str__(self):
|
|
34
|
+
return str(self.name)
|
|
35
|
+
|
|
21
36
|
name = models.CharField(
|
|
22
37
|
verbose_name=_("Name"),
|
|
23
38
|
max_length=255,
|
|
@@ -149,29 +164,9 @@ class DNSSECPolicy(ContactsMixin, NetBoxModel):
|
|
|
149
164
|
null=True,
|
|
150
165
|
)
|
|
151
166
|
|
|
152
|
-
clone_fields = (
|
|
153
|
-
"name",
|
|
154
|
-
"key_templates",
|
|
155
|
-
"description",
|
|
156
|
-
"tenant",
|
|
157
|
-
)
|
|
158
|
-
|
|
159
|
-
class Meta:
|
|
160
|
-
verbose_name = _("DNSSEC Policy")
|
|
161
|
-
verbose_name_plural = _("DNSSEC Policies")
|
|
162
|
-
|
|
163
|
-
ordering = ("name",)
|
|
164
|
-
|
|
165
|
-
def __str__(self):
|
|
166
|
-
return str(self.name)
|
|
167
|
-
|
|
168
167
|
def get_status_color(self):
|
|
169
168
|
return DNSSECPolicyStatusChoices.colors.get(self.status)
|
|
170
169
|
|
|
171
|
-
# TODO: Remove in version 1.3.0 (NetBox #18555)
|
|
172
|
-
def get_absolute_url(self):
|
|
173
|
-
return reverse("plugins:netbox_dns:dnssecpolicy", kwargs={"pk": self.pk})
|
|
174
|
-
|
|
175
170
|
@property
|
|
176
171
|
def purge_keys_value(self):
|
|
177
172
|
return self.purge_keys if self.purge_keys is not None else 776000
|
|
@@ -197,6 +192,7 @@ class DNSSECPolicy(ContactsMixin, NetBoxModel):
|
|
|
197
192
|
@register_search
|
|
198
193
|
class DNSSECPolicyIndex(SearchIndex):
|
|
199
194
|
model = DNSSECPolicy
|
|
195
|
+
|
|
200
196
|
fields = (
|
|
201
197
|
("name", 100),
|
|
202
198
|
("description", 500),
|