netbox-plugin-dns 0.22.8__py3-none-any.whl → 1.0.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 +4 -15
- netbox_dns/api/nested_serializers.py +4 -60
- netbox_dns/api/serializers.py +8 -314
- netbox_dns/api/serializers_/__init__.py +0 -0
- netbox_dns/api/serializers_/contact.py +37 -0
- netbox_dns/api/serializers_/nameserver.py +39 -0
- netbox_dns/api/serializers_/record.py +90 -0
- netbox_dns/api/serializers_/registrar.py +31 -0
- netbox_dns/api/serializers_/view.py +34 -0
- netbox_dns/api/serializers_/zone.py +159 -0
- netbox_dns/api/views.py +13 -13
- netbox_dns/fields/network.py +21 -22
- netbox_dns/fields/rfc2317.py +3 -3
- netbox_dns/{filters → filtersets}/contact.py +2 -1
- netbox_dns/filtersets/nameserver.py +37 -0
- netbox_dns/{filters → filtersets}/record.py +51 -6
- netbox_dns/{filters → filtersets}/registrar.py +2 -1
- netbox_dns/{filters → filtersets}/view.py +2 -2
- netbox_dns/filtersets/zone.py +205 -0
- netbox_dns/forms/contact.py +61 -33
- netbox_dns/forms/nameserver.py +21 -8
- netbox_dns/forms/record.py +65 -38
- netbox_dns/forms/registrar.py +45 -15
- netbox_dns/forms/view.py +23 -9
- netbox_dns/forms/zone.py +182 -188
- netbox_dns/graphql/__init__.py +17 -27
- netbox_dns/graphql/filters.py +49 -0
- netbox_dns/graphql/schema.py +66 -7
- netbox_dns/graphql/types.py +143 -0
- netbox_dns/management/commands/cleanup_database.py +0 -4
- netbox_dns/management/commands/cleanup_rrset_ttl.py +3 -5
- netbox_dns/management/commands/setup_coupling.py +15 -15
- netbox_dns/management/commands/update_soa.py +1 -1
- netbox_dns/migrations/0001_squashed_netbox_dns_0_15.py +0 -27
- netbox_dns/migrations/0001_squashed_netbox_dns_0_22.py +558 -0
- netbox_dns/migrations/{0013_add_nameserver_zone_record_description.py → 0002_contact_description_registrar_description.py} +4 -9
- netbox_dns/migrations/0003_default_view.py +15 -0
- netbox_dns/migrations/0004_create_and_assign_default_view.py +26 -0
- netbox_dns/migrations/0005_alter_zone_view_not_null.py +18 -0
- netbox_dns/migrations/0020_netbox_3_4.py +1 -1
- netbox_dns/models/contact.py +6 -1
- netbox_dns/models/nameserver.py +5 -1
- netbox_dns/models/record.py +32 -34
- netbox_dns/models/registrar.py +5 -1
- netbox_dns/models/view.py +54 -1
- netbox_dns/models/zone.py +68 -54
- netbox_dns/navigation.py +1 -15
- netbox_dns/signals/ipam_coupling.py +3 -9
- netbox_dns/tables/contact.py +1 -0
- netbox_dns/tables/nameserver.py +0 -2
- netbox_dns/tables/registrar.py +1 -0
- netbox_dns/tables/view.py +9 -2
- netbox_dns/template_content.py +4 -8
- netbox_dns/templates/netbox_dns/contact.html +60 -56
- netbox_dns/templates/netbox_dns/nameserver.html +27 -27
- netbox_dns/templates/netbox_dns/record.html +92 -94
- netbox_dns/templates/netbox_dns/registrar.html +38 -36
- netbox_dns/templates/netbox_dns/view.html +25 -21
- netbox_dns/templates/netbox_dns/zone/base.html +5 -3
- netbox_dns/templates/netbox_dns/zone/child.html +3 -3
- netbox_dns/templates/netbox_dns/zone/managed_record.html +1 -1
- netbox_dns/templates/netbox_dns/zone/record.html +3 -3
- netbox_dns/templates/netbox_dns/zone/registration.html +26 -27
- netbox_dns/templates/netbox_dns/zone/rfc2317_child_zone.html +1 -1
- netbox_dns/templates/netbox_dns/zone.html +148 -149
- netbox_dns/urls/__init__.py +17 -0
- netbox_dns/urls/contact.py +51 -0
- netbox_dns/urls/nameserver.py +69 -0
- netbox_dns/urls/record.py +41 -0
- netbox_dns/urls/registrar.py +63 -0
- netbox_dns/urls/view.py +39 -0
- netbox_dns/urls/zone.py +57 -0
- netbox_dns/utilities/__init__.py +1 -6
- netbox_dns/utilities/ipam_coupling.py +2 -7
- netbox_dns/validators/dns_name.py +4 -9
- netbox_dns/validators/rfc2317.py +2 -2
- netbox_dns/views/contact.py +4 -4
- netbox_dns/views/nameserver.py +5 -5
- netbox_dns/views/record.py +14 -29
- netbox_dns/views/registrar.py +4 -4
- netbox_dns/views/view.py +4 -4
- netbox_dns/views/zone.py +7 -8
- {netbox_plugin_dns-0.22.8.dist-info → netbox_plugin_dns-1.0.0.dist-info}/METADATA +27 -13
- netbox_plugin_dns-1.0.0.dist-info/RECORD +112 -0
- netbox_dns/filters/nameserver.py +0 -18
- netbox_dns/filters/zone.py +0 -112
- netbox_dns/graphql/contact.py +0 -19
- netbox_dns/graphql/nameserver.py +0 -19
- netbox_dns/graphql/record.py +0 -19
- netbox_dns/graphql/registrar.py +0 -19
- netbox_dns/graphql/view.py +0 -19
- netbox_dns/graphql/zone.py +0 -19
- netbox_dns/migrations/0001_initial.py +0 -115
- netbox_dns/migrations/0002_zone_default_ttl.py +0 -18
- netbox_dns/migrations/0003_soa_managed_records.py +0 -112
- netbox_dns/migrations/0004_create_ptr_for_a_aaaa_records.py +0 -80
- netbox_dns/migrations/0005_update_ns_records.py +0 -41
- netbox_dns/migrations/0006_zone_soa_serial_auto.py +0 -29
- netbox_dns/migrations/0007_alter_zone_soa_serial_auto.py +0 -17
- netbox_dns/migrations/0008_zone_status_names.py +0 -21
- netbox_dns/migrations/0009_netbox32.py +0 -71
- netbox_dns/migrations/0010_update_soa_records.py +0 -58
- netbox_dns/migrations/0011_add_view_model.py +0 -70
- netbox_dns/migrations/0012_adjust_zone_and_record.py +0 -17
- netbox_dns/migrations/0014_add_view_description.py +0 -16
- netbox_dns/migrations/0015_add_record_status.py +0 -17
- netbox_dns/migrations/0016_cleanup_ptr_records.py +0 -38
- netbox_dns/migrations/0017_alter_record_ttl.py +0 -17
- netbox_dns/migrations/0018_zone_arpa_network.py +0 -51
- netbox_dns/migrations/0019_update_ns_ttl.py +0 -19
- netbox_dns/urls.py +0 -297
- netbox_plugin_dns-0.22.8.dist-info/RECORD +0 -117
- /netbox_dns/{filters → filtersets}/__init__.py +0 -0
- {netbox_plugin_dns-0.22.8.dist-info → netbox_plugin_dns-1.0.0.dist-info}/LICENSE +0 -0
- {netbox_plugin_dns-0.22.8.dist-info → netbox_plugin_dns-1.0.0.dist-info}/WHEEL +0 -0
|
@@ -5,27 +5,31 @@
|
|
|
5
5
|
<div class="col col-md-6">
|
|
6
6
|
<div class="card">
|
|
7
7
|
<h5 class="card-header">View</h5>
|
|
8
|
-
<
|
|
9
|
-
<
|
|
10
|
-
<
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
<
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
8
|
+
<table class="table table-hover attr-table">
|
|
9
|
+
<tr>
|
|
10
|
+
<th scope="row">Name</th>
|
|
11
|
+
<td>{{ object.name }}</td>
|
|
12
|
+
</tr>
|
|
13
|
+
<tr>
|
|
14
|
+
<th scope="row">Default View</th>
|
|
15
|
+
<td>{% checkmark object.default_view %}</td>
|
|
16
|
+
</tr>
|
|
17
|
+
{% if object.description %}
|
|
18
|
+
<tr>
|
|
19
|
+
<th scope="row">Description</th>
|
|
20
|
+
<td style="word-break:break-all;">{{ object.description }}</td>
|
|
21
|
+
</tr>
|
|
22
|
+
{% endif %}
|
|
23
|
+
<tr>
|
|
24
|
+
<th scope="row">Tenant</th>
|
|
25
|
+
<td>
|
|
26
|
+
{% if object.tenant.group %}
|
|
27
|
+
{{ object.tenant.group|linkify }} /
|
|
28
|
+
{% endif %}
|
|
29
|
+
{{ object.tenant|linkify|placeholder }}
|
|
30
|
+
</td>
|
|
31
|
+
</tr>
|
|
32
|
+
</table>
|
|
29
33
|
</div>
|
|
30
34
|
{% include 'inc/panels/custom_fields.html' %}
|
|
31
35
|
</div>
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
{% extends 'generic/object.html' %}
|
|
2
|
+
{% load buttons %}
|
|
2
3
|
{% load helpers %}
|
|
3
4
|
{% load plugins %}
|
|
4
|
-
{% load render_table from django_tables2 %}
|
|
5
5
|
{% load perms %}
|
|
6
6
|
|
|
7
7
|
{% block extra_controls %}
|
|
8
8
|
{% if perms.netbox_dns.add_record %}
|
|
9
|
-
<a href="{% url 'plugins:netbox_dns:record_add' %}?zone={{ object.
|
|
10
|
-
<
|
|
9
|
+
<a href="{% url 'plugins:netbox_dns:record_add' %}?zone={{ object.pk }}&return_url={{ object.get_absolute_url }}">
|
|
10
|
+
<button type="submit" class="btn btn-primary" name="add-record">
|
|
11
|
+
<i class="mdi mdi-plus-thick" aria-hidden="true"></i>Add Record
|
|
12
|
+
</button>
|
|
11
13
|
</a>
|
|
12
14
|
{% endif %}
|
|
13
15
|
{{ block.super }}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
<input type="hidden" name="return_url" value="{% if return_url %}{{ return_url }}{% else %}{{ request.path }}{% if request.GET %}?{{ request.GET.urlencode }}{% endif %}{% endif %}" />
|
|
12
12
|
|
|
13
13
|
<div class="card">
|
|
14
|
-
<div class="
|
|
14
|
+
<div class="htmx-container table-responsive" id="object_list">
|
|
15
15
|
{% include 'htmx/table.html' %}
|
|
16
16
|
</div>
|
|
17
17
|
</div>
|
|
@@ -22,12 +22,12 @@
|
|
|
22
22
|
<div class="bulk-button-group">
|
|
23
23
|
{% block bulk_buttons %}{% endblock %}
|
|
24
24
|
{% if bulk_edit_url and perms.netbox_dns.change_zone %}
|
|
25
|
-
<button type="submit" name="_edit" formaction="{% url bulk_edit_url %}{% if request.GET %}?{{ request.GET.urlencode }}{% endif %}" class="btn btn-warning
|
|
25
|
+
<button type="submit" name="_edit" formaction="{% url bulk_edit_url %}{% if request.GET %}?{{ request.GET.urlencode }}{% endif %}" class="btn btn-warning">
|
|
26
26
|
<i class="mdi mdi-pencil" aria-hidden="true"></i> Edit Selected
|
|
27
27
|
</button>
|
|
28
28
|
{% endif %}
|
|
29
29
|
{% if bulk_delete_url and perms.netbox_dns.delete_zone %}
|
|
30
|
-
<button type="submit" name="_delete" formaction="{% url bulk_delete_url %}{% if request.GET %}?{{ request.GET.urlencode }}{% endif %}" class="btn btn-danger
|
|
30
|
+
<button type="submit" name="_delete" formaction="{% url bulk_delete_url %}{% if request.GET %}?{{ request.GET.urlencode }}{% endif %}" class="btn btn-danger">
|
|
31
31
|
<i class="mdi mdi-trash-can-outline" aria-hidden="true"></i> Delete Selected
|
|
32
32
|
</button>
|
|
33
33
|
{% endif %}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
{% block content %}
|
|
7
7
|
{% include 'inc/table_controls_htmx.html' with table_modal="ManagedRecordTable_config" %}
|
|
8
8
|
<div class="card">
|
|
9
|
-
<div class="
|
|
9
|
+
<div class="htmx-container table-responsive" id="object_list">
|
|
10
10
|
{% include 'htmx/table.html' %}
|
|
11
11
|
</div>
|
|
12
12
|
</div>
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
<input type="hidden" name="return_url" value="{% if return_url %}{{ return_url }}{% else %}{{ request.path }}{% if request.GET %}?{{ request.GET.urlencode }}{% endif %}{% endif %}" />
|
|
12
12
|
|
|
13
13
|
<div class="card">
|
|
14
|
-
<div class="
|
|
14
|
+
<div class="htmx-container table-responsive" id="object_list">
|
|
15
15
|
{% include 'htmx/table.html' %}
|
|
16
16
|
</div>
|
|
17
17
|
</div>
|
|
@@ -22,12 +22,12 @@
|
|
|
22
22
|
<div class="bulk-button-group">
|
|
23
23
|
{% block bulk_buttons %}{% endblock %}
|
|
24
24
|
{% if bulk_edit_url and perms.netbox_dns.change_record %}
|
|
25
|
-
<button type="submit" name="_edit" formaction="{% url bulk_edit_url %}{% if request.GET %}?{{ request.GET.urlencode }}{% endif %}" class="btn btn-warning
|
|
25
|
+
<button type="submit" name="_edit" formaction="{% url bulk_edit_url %}{% if request.GET %}?{{ request.GET.urlencode }}{% endif %}" class="btn btn-warning">
|
|
26
26
|
<i class="mdi mdi-pencil" aria-hidden="true"></i> Edit Selected
|
|
27
27
|
</button>
|
|
28
28
|
{% endif %}
|
|
29
29
|
{% if bulk_delete_url and perms.netbox_dns.delete_record %}
|
|
30
|
-
<button type="submit" name="_delete" formaction="{% url bulk_delete_url %}{% if request.GET %}?{{ request.GET.urlencode }}{% endif %}" class="btn btn-danger
|
|
30
|
+
<button type="submit" name="_delete" formaction="{% url bulk_delete_url %}{% if request.GET %}?{{ request.GET.urlencode }}{% endif %}" class="btn btn-danger">
|
|
31
31
|
<i class="mdi mdi-trash-can-outline" aria-hidden="true"></i> Delete Selected
|
|
32
32
|
</button>
|
|
33
33
|
{% endif %}
|
|
@@ -4,33 +4,32 @@
|
|
|
4
4
|
{% block content %}
|
|
5
5
|
<div class="card">
|
|
6
6
|
<h5 class="card-header">Domain Registration</h5>
|
|
7
|
-
<
|
|
8
|
-
<
|
|
9
|
-
<
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
<
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
<
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
<
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
<
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
<
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
</table>
|
|
7
|
+
<table class="table table-hover attr-table">
|
|
8
|
+
<tr>
|
|
9
|
+
<th scope="row">Registrar</th>
|
|
10
|
+
<td>{{ object.registrar|linkify|placeholder }}</td>
|
|
11
|
+
</tr>
|
|
12
|
+
<tr>
|
|
13
|
+
<th scope="row">Registry Domain ID</th>
|
|
14
|
+
<td>{{ object.registry_domain_id|placeholder }}</td>
|
|
15
|
+
</tr>
|
|
16
|
+
<tr>
|
|
17
|
+
<th scope="row">Registrant</th>
|
|
18
|
+
<td>{{ object.registrant|linkify|placeholder }}</td>
|
|
19
|
+
</tr>
|
|
20
|
+
<tr>
|
|
21
|
+
<th scope="row">Administrative Contact</th>
|
|
22
|
+
<td>{{ object.admin_c|linkify|placeholder }}</td>
|
|
23
|
+
</tr>
|
|
24
|
+
<tr>
|
|
25
|
+
<th scope="row">Technical Contact</th>
|
|
26
|
+
<td>{{ object.tech_c|linkify|placeholder }}</td>
|
|
27
|
+
</tr>
|
|
28
|
+
<tr>
|
|
29
|
+
<th scope="row">Billing Contact</th>
|
|
30
|
+
<td>{{ object.billing_c|linkify|placeholder }}</td>
|
|
31
|
+
</tr>
|
|
32
|
+
</table>
|
|
34
33
|
</div>
|
|
35
34
|
</div>
|
|
36
35
|
{% endblock %}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
{% block content %}
|
|
7
7
|
{% include 'inc/table_controls_htmx.html' with table_modal="RFC2317ChildZoneTable_config" %}
|
|
8
8
|
<div class="card">
|
|
9
|
-
<div class="
|
|
9
|
+
<div class="htmx-container table-responsive" id="object_list">
|
|
10
10
|
{% include 'htmx/table.html' %}
|
|
11
11
|
</div>
|
|
12
12
|
</div>
|
|
@@ -9,95 +9,97 @@
|
|
|
9
9
|
<h5 class="card-header">
|
|
10
10
|
Zone
|
|
11
11
|
</h5>
|
|
12
|
-
<
|
|
13
|
-
<
|
|
14
|
-
<
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
<
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
<
|
|
26
|
-
<
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
<
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
<
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
</
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
<
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
12
|
+
<table class="table table-hover attr-table">
|
|
13
|
+
<tr>
|
|
14
|
+
<th scope="row">Name</th>
|
|
15
|
+
<td>{{ object.name }}</td>
|
|
16
|
+
</tr>
|
|
17
|
+
{% if unicode_name %}
|
|
18
|
+
<tr>
|
|
19
|
+
<th scope="row">IDN</th>
|
|
20
|
+
<td>{{ unicode_name }}</td>
|
|
21
|
+
</tr>
|
|
22
|
+
{% endif %}
|
|
23
|
+
<tr>
|
|
24
|
+
<th scope="row">View</th>
|
|
25
|
+
<td>
|
|
26
|
+
<a href="{% url 'plugins:netbox_dns:view' pk=object.view.pk %}">
|
|
27
|
+
{{ object.view }}
|
|
28
|
+
</a>
|
|
29
|
+
</td>
|
|
30
|
+
</tr>
|
|
31
|
+
{% if object.description %}
|
|
32
|
+
<tr>
|
|
33
|
+
<th scope="row">Description</th>
|
|
34
|
+
<td style="word-break:break-all;">{{ object.description }}</td>
|
|
35
|
+
</tr>
|
|
36
|
+
{% endif %}
|
|
37
|
+
<tr>
|
|
38
|
+
<th scope="row">Tenant</th>
|
|
39
|
+
<td>
|
|
40
|
+
{% if object.tenant.group %}
|
|
41
|
+
{{ object.tenant.group|linkify }} /
|
|
42
|
+
{% endif %}
|
|
43
|
+
{{ object.tenant|linkify|placeholder }}
|
|
44
|
+
</td>
|
|
45
|
+
</tr>
|
|
46
|
+
<tr>
|
|
47
|
+
<th scope="row">Status</th>
|
|
48
|
+
<td>{% badge object.get_status_display bg_color=object.get_status_color %}</td>
|
|
49
|
+
</tr>
|
|
50
|
+
<tr>
|
|
51
|
+
<th scope="row">Nameservers</th>
|
|
52
|
+
<td>
|
|
53
|
+
<table>
|
|
54
|
+
{% for nameserver in object.nameservers.all %}
|
|
55
|
+
<tr>
|
|
56
|
+
<td>
|
|
57
|
+
<a href="{% url 'plugins:netbox_dns:nameserver' pk=nameserver.pk %}">
|
|
58
|
+
{{ nameserver }}
|
|
59
|
+
</a>
|
|
60
|
+
</td>
|
|
61
|
+
</tr>
|
|
62
|
+
{% endfor %}
|
|
63
|
+
</table>
|
|
64
|
+
</td>
|
|
65
|
+
{% if nameserver_warnings %}
|
|
66
|
+
<tr>
|
|
67
|
+
<th class="text-warning" scope="row">Warnings</th>
|
|
68
|
+
<td>
|
|
69
|
+
<table>
|
|
70
|
+
{% for warning in nameserver_warnings %}
|
|
71
|
+
<tr>
|
|
72
|
+
<td class="text-warning">{{ warning }}</td>
|
|
73
|
+
</tr>
|
|
74
|
+
{% endfor %}
|
|
75
|
+
</table>
|
|
76
|
+
</td>
|
|
77
|
+
</tr>
|
|
78
|
+
{% endif %}
|
|
79
|
+
{% if nameserver_errors %}
|
|
80
|
+
<tr>
|
|
81
|
+
<th class="text-danger" scope="row">Errors</th>
|
|
82
|
+
<td>
|
|
83
|
+
<table>
|
|
84
|
+
{% for error in nameserver_errors %}
|
|
85
|
+
<tr>
|
|
86
|
+
<td class="text-danger">{{ error }}</td>
|
|
87
|
+
</tr>
|
|
88
|
+
{% endfor %}
|
|
89
|
+
</table>
|
|
90
|
+
</td>
|
|
91
|
+
</tr>
|
|
92
|
+
{% endif %}
|
|
93
|
+
</tr>
|
|
94
|
+
<tr>
|
|
95
|
+
<th scope="row">Default TTL</th>
|
|
96
|
+
<td>{{ object.default_ttl }}</td>
|
|
97
|
+
</tr>
|
|
98
|
+
<tr>
|
|
99
|
+
<th scope="row">Description</th>
|
|
100
|
+
<td>{{ object.description }}</td>
|
|
101
|
+
</tr>
|
|
102
|
+
</table>
|
|
101
103
|
</div>
|
|
102
104
|
|
|
103
105
|
{% include 'inc/panels/tags.html' %}
|
|
@@ -106,70 +108,67 @@
|
|
|
106
108
|
<div class="col col-md-6">
|
|
107
109
|
<div class="card">
|
|
108
110
|
<h5 class="card-header">Zone SOA</h5>
|
|
109
|
-
<
|
|
110
|
-
<
|
|
111
|
-
<
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
<
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
<
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
<
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
<
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
<
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
<
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
<
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
<
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
</table>
|
|
151
|
-
</div>
|
|
111
|
+
<table class="table table-hover attr-table">
|
|
112
|
+
<tr>
|
|
113
|
+
<th scope="row">TTL</th>
|
|
114
|
+
<td>{{ object.soa_ttl }}</td>
|
|
115
|
+
</tr>
|
|
116
|
+
<tr>
|
|
117
|
+
<th scope="row">MName</th>
|
|
118
|
+
<td><a href="{% url 'plugins:netbox_dns:nameserver' pk=object.soa_mname.pk %}">{{ object.soa_mname }}</a></td>
|
|
119
|
+
</tr>
|
|
120
|
+
<tr>
|
|
121
|
+
<th scope="row">RName</th>
|
|
122
|
+
<td>{{ object.soa_rname }}</td>
|
|
123
|
+
</tr>
|
|
124
|
+
{% if object.soa_serial_auto %}
|
|
125
|
+
<tr>
|
|
126
|
+
<th scope="row">Serial (auto-generated)</th>
|
|
127
|
+
<td>{{ object.soa_serial }}</td>
|
|
128
|
+
</tr>
|
|
129
|
+
{% else %}
|
|
130
|
+
<tr>
|
|
131
|
+
<th scope="row">Serial</th>
|
|
132
|
+
<td>{{ object.soa_serial }}</td>
|
|
133
|
+
</tr>
|
|
134
|
+
{% endif %}
|
|
135
|
+
<tr>
|
|
136
|
+
<th scope="row">Refresh</th>
|
|
137
|
+
<td>{{ object.soa_refresh }}</td>
|
|
138
|
+
</tr>
|
|
139
|
+
<tr>
|
|
140
|
+
<th scope="row">Retry</th>
|
|
141
|
+
<td>{{ object.soa_retry }}</td>
|
|
142
|
+
</tr>
|
|
143
|
+
<tr>
|
|
144
|
+
<th scope="row">Expire</th>
|
|
145
|
+
<td>{{ object.soa_expire }}</td>
|
|
146
|
+
</tr>
|
|
147
|
+
<tr>
|
|
148
|
+
<th scope="row">Minimum TTL</th>
|
|
149
|
+
<td>{{ object.soa_minimum }}</td>
|
|
150
|
+
</tr>
|
|
151
|
+
</table>
|
|
152
152
|
</div>
|
|
153
153
|
{% if object.rfc2317_prefix %}
|
|
154
154
|
<div class="card">
|
|
155
155
|
<h5 class="card-header">RFC2317</h5>
|
|
156
|
-
<
|
|
157
|
-
<
|
|
158
|
-
<
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
<
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
<
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
</table>
|
|
156
|
+
<table class="table table-hover soa-table">
|
|
157
|
+
<tr>
|
|
158
|
+
<th scope="row">Prefix</th>
|
|
159
|
+
<td>{{ object.rfc2317_prefix }}</td>
|
|
160
|
+
</tr>
|
|
161
|
+
<tr>
|
|
162
|
+
<th scope="row">Parent Managed</th>
|
|
163
|
+
<td>{% checkmark object.rfc2317_parent_managed %}</td>
|
|
164
|
+
</tr>
|
|
165
|
+
{% if object.rfc2317_parent_managed %}
|
|
166
|
+
<tr>
|
|
167
|
+
<th scope="row">Parent Zone</th>
|
|
168
|
+
<td><a href="{% url 'plugins:netbox_dns:zone' pk=object.rfc2317_parent_zone.pk %}">{{ object.rfc2317_parent_zone }}</a></td>
|
|
169
|
+
</tr>
|
|
170
|
+
{% endif %}
|
|
171
|
+
</table>
|
|
173
172
|
</div>
|
|
174
173
|
</div>
|
|
175
174
|
{% endif %}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
from .contact import contact_urlpatterns
|
|
2
|
+
from .nameserver import nameserver_urlpatterns
|
|
3
|
+
from .record import record_urlpatterns
|
|
4
|
+
from .registrar import registrar_urlpatterns
|
|
5
|
+
from .view import view_urlpatterns
|
|
6
|
+
from .zone import zone_urlpatterns
|
|
7
|
+
|
|
8
|
+
app_name = "netbox_dns"
|
|
9
|
+
|
|
10
|
+
urlpatterns = (
|
|
11
|
+
contact_urlpatterns
|
|
12
|
+
+ nameserver_urlpatterns
|
|
13
|
+
+ record_urlpatterns
|
|
14
|
+
+ registrar_urlpatterns
|
|
15
|
+
+ view_urlpatterns
|
|
16
|
+
+ zone_urlpatterns
|
|
17
|
+
)
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
from django.urls import path
|
|
2
|
+
|
|
3
|
+
from netbox.views.generic import ObjectChangeLogView, ObjectJournalView
|
|
4
|
+
|
|
5
|
+
from netbox_dns.models import Contact
|
|
6
|
+
from netbox_dns.views import (
|
|
7
|
+
ContactListView,
|
|
8
|
+
ContactView,
|
|
9
|
+
ContactDeleteView,
|
|
10
|
+
ContactEditView,
|
|
11
|
+
ContactBulkImportView,
|
|
12
|
+
ContactBulkEditView,
|
|
13
|
+
ContactBulkDeleteView,
|
|
14
|
+
ContactZoneListView,
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
contact_urlpatterns = [
|
|
18
|
+
path("contacts/", ContactListView.as_view(), name="contact_list"),
|
|
19
|
+
path("contacts/add/", ContactEditView.as_view(), name="contact_add"),
|
|
20
|
+
path("contacts/import/", ContactBulkImportView.as_view(), name="contact_import"),
|
|
21
|
+
path("contacts/edit/", ContactBulkEditView.as_view(), name="contact_bulk_edit"),
|
|
22
|
+
path(
|
|
23
|
+
"contacts/delete/",
|
|
24
|
+
ContactBulkDeleteView.as_view(),
|
|
25
|
+
name="contact_bulk_delete",
|
|
26
|
+
),
|
|
27
|
+
path("contacts/<int:pk>/", ContactView.as_view(), name="contact"),
|
|
28
|
+
path("contacts/<int:pk>/edit/", ContactEditView.as_view(), name="contact_edit"),
|
|
29
|
+
path(
|
|
30
|
+
"contacts/<int:pk>/delete/",
|
|
31
|
+
ContactDeleteView.as_view(),
|
|
32
|
+
name="contact_delete",
|
|
33
|
+
),
|
|
34
|
+
path(
|
|
35
|
+
"contacts/<int:pk>/zones/",
|
|
36
|
+
ContactZoneListView.as_view(),
|
|
37
|
+
name="contact_zones",
|
|
38
|
+
),
|
|
39
|
+
path(
|
|
40
|
+
"contacts/<int:pk>/journal/",
|
|
41
|
+
ObjectJournalView.as_view(),
|
|
42
|
+
name="contact_journal",
|
|
43
|
+
kwargs={"model": Contact},
|
|
44
|
+
),
|
|
45
|
+
path(
|
|
46
|
+
"contacts/<int:pk>/changelog/",
|
|
47
|
+
ObjectChangeLogView.as_view(),
|
|
48
|
+
name="contact_changelog",
|
|
49
|
+
kwargs={"model": Contact},
|
|
50
|
+
),
|
|
51
|
+
]
|