netbox-plugin-dns 0.21.4__py3-none-any.whl → 1.4.7__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.
Files changed (232) hide show
  1. netbox_dns/__init__.py +106 -41
  2. netbox_dns/api/field_serializers.py +25 -0
  3. netbox_dns/api/nested_serializers.py +95 -52
  4. netbox_dns/api/serializers.py +14 -296
  5. netbox_dns/api/serializers_/__init__.py +0 -0
  6. netbox_dns/api/serializers_/dnssec_key_template.py +69 -0
  7. netbox_dns/api/serializers_/dnssec_policy.py +165 -0
  8. netbox_dns/api/serializers_/nameserver.py +56 -0
  9. netbox_dns/api/serializers_/prefix.py +18 -0
  10. netbox_dns/api/serializers_/record.py +105 -0
  11. netbox_dns/api/serializers_/record_template.py +71 -0
  12. netbox_dns/api/serializers_/registrar.py +45 -0
  13. netbox_dns/api/serializers_/registration_contact.py +50 -0
  14. netbox_dns/api/serializers_/view.py +81 -0
  15. netbox_dns/api/serializers_/zone.py +247 -0
  16. netbox_dns/api/serializers_/zone_template.py +157 -0
  17. netbox_dns/api/urls.py +13 -2
  18. netbox_dns/api/views.py +96 -58
  19. netbox_dns/choices/__init__.py +4 -0
  20. netbox_dns/choices/dnssec_key_template.py +67 -0
  21. netbox_dns/choices/dnssec_policy.py +40 -0
  22. netbox_dns/choices/record.py +104 -0
  23. netbox_dns/choices/utilities.py +4 -0
  24. netbox_dns/choices/zone.py +119 -0
  25. netbox_dns/fields/__init__.py +4 -0
  26. netbox_dns/fields/address.py +22 -16
  27. netbox_dns/fields/choice_array.py +33 -0
  28. netbox_dns/fields/ipam.py +15 -0
  29. netbox_dns/fields/network.py +42 -18
  30. netbox_dns/fields/rfc2317.py +97 -0
  31. netbox_dns/fields/timeperiod.py +33 -0
  32. netbox_dns/filters.py +7 -0
  33. netbox_dns/filtersets/__init__.py +12 -0
  34. netbox_dns/filtersets/dnssec_key_template.py +57 -0
  35. netbox_dns/filtersets/dnssec_policy.py +101 -0
  36. netbox_dns/filtersets/nameserver.py +46 -0
  37. netbox_dns/filtersets/record.py +135 -0
  38. netbox_dns/filtersets/record_template.py +59 -0
  39. netbox_dns/{filters → filtersets}/registrar.py +8 -1
  40. netbox_dns/{filters/contact.py → filtersets/registration_contact.py} +9 -3
  41. netbox_dns/filtersets/view.py +45 -0
  42. netbox_dns/filtersets/zone.py +254 -0
  43. netbox_dns/filtersets/zone_template.py +165 -0
  44. netbox_dns/forms/__init__.py +5 -1
  45. netbox_dns/forms/dnssec_key_template.py +250 -0
  46. netbox_dns/forms/dnssec_policy.py +654 -0
  47. netbox_dns/forms/nameserver.py +121 -27
  48. netbox_dns/forms/record.py +215 -104
  49. netbox_dns/forms/record_template.py +285 -0
  50. netbox_dns/forms/registrar.py +108 -31
  51. netbox_dns/forms/registration_contact.py +282 -0
  52. netbox_dns/forms/view.py +331 -20
  53. netbox_dns/forms/zone.py +769 -373
  54. netbox_dns/forms/zone_template.py +463 -0
  55. netbox_dns/graphql/__init__.py +25 -22
  56. netbox_dns/graphql/enums.py +41 -0
  57. netbox_dns/graphql/filter_lookups.py +13 -0
  58. netbox_dns/graphql/filters/__init__.py +12 -0
  59. netbox_dns/graphql/filters/dnssec_key_template.py +63 -0
  60. netbox_dns/graphql/filters/dnssec_policy.py +124 -0
  61. netbox_dns/graphql/filters/nameserver.py +32 -0
  62. netbox_dns/graphql/filters/record.py +89 -0
  63. netbox_dns/graphql/filters/record_template.py +55 -0
  64. netbox_dns/graphql/filters/registrar.py +30 -0
  65. netbox_dns/graphql/filters/registration_contact.py +27 -0
  66. netbox_dns/graphql/filters/view.py +28 -0
  67. netbox_dns/graphql/filters/zone.py +147 -0
  68. netbox_dns/graphql/filters/zone_template.py +97 -0
  69. netbox_dns/graphql/schema.py +89 -7
  70. netbox_dns/graphql/types.py +355 -0
  71. netbox_dns/locale/de/LC_MESSAGES/django.mo +0 -0
  72. netbox_dns/locale/en/LC_MESSAGES/django.mo +0 -0
  73. netbox_dns/locale/fr/LC_MESSAGES/django.mo +0 -0
  74. netbox_dns/management/commands/cleanup_database.py +175 -156
  75. netbox_dns/management/commands/cleanup_rrset_ttl.py +64 -0
  76. netbox_dns/management/commands/rebuild_dnssync.py +23 -0
  77. netbox_dns/management/commands/setup_dnssync.py +140 -0
  78. netbox_dns/migrations/0001_squashed_netbox_dns_0_15.py +0 -27
  79. netbox_dns/migrations/0001_squashed_netbox_dns_0_22.py +557 -0
  80. netbox_dns/migrations/{0013_add_nameserver_zone_record_description.py → 0002_contact_description_registrar_description.py} +4 -9
  81. netbox_dns/migrations/0003_default_view.py +15 -0
  82. netbox_dns/migrations/0004_create_and_assign_default_view.py +26 -0
  83. netbox_dns/migrations/0005_alter_zone_view_not_null.py +18 -0
  84. netbox_dns/migrations/0006_templating.py +172 -0
  85. netbox_dns/migrations/0007_alter_ordering_options.py +25 -0
  86. netbox_dns/migrations/0008_view_prefixes.py +18 -0
  87. netbox_dns/migrations/0009_rename_contact_registrationcontact.py +36 -0
  88. netbox_dns/migrations/0010_view_ip_address_filter.py +18 -0
  89. netbox_dns/migrations/0011_rename_related_fields.py +63 -0
  90. netbox_dns/migrations/0012_natural_ordering.py +88 -0
  91. netbox_dns/migrations/0013_zonetemplate_soa_mname_zonetemplate_soa_rname.py +30 -0
  92. netbox_dns/migrations/0014_alter_unique_constraints_lowercase.py +42 -0
  93. netbox_dns/migrations/0015_dnssec.py +168 -0
  94. netbox_dns/migrations/{0015_add_record_status.py → 0016_dnssec_policy_status.py} +5 -4
  95. netbox_dns/migrations/0017_dnssec_policy_zone_zone_template.py +41 -0
  96. netbox_dns/migrations/0018_zone_domain_status_zone_expiration_date.py +23 -0
  97. netbox_dns/migrations/0019_dnssecpolicy_parental_agents.py +25 -0
  98. netbox_dns/migrations/0020_netbox_3_4.py +1 -1
  99. netbox_dns/migrations/0020_remove_dnssecpolicy_parental_agents_and_more.py +29 -0
  100. netbox_dns/migrations/0021_alter_record_ptr_record.py +25 -0
  101. netbox_dns/migrations/0021_record_ip_address.py +1 -1
  102. netbox_dns/migrations/0022_alter_record_ipam_ip_address.py +26 -0
  103. netbox_dns/migrations/0023_disable_ptr_false.py +27 -0
  104. netbox_dns/migrations/0024_zonetemplate_parental_agents.py +25 -0
  105. netbox_dns/migrations/0025_remove_zone_inline_signing_and_more.py +22 -0
  106. netbox_dns/migrations/0026_alter_dnssecpolicy_nsec3_opt_out.py +18 -0
  107. netbox_dns/migrations/0026_domain_registration.py +1 -1
  108. netbox_dns/migrations/0027_zone_comments.py +18 -0
  109. netbox_dns/migrations/0028_alter_zone_default_ttl_alter_zone_soa_minimum_and_more.py +54 -0
  110. netbox_dns/migrations/0028_rfc2317_fields.py +44 -0
  111. netbox_dns/migrations/0029_alter_registrationcontact_street.py +18 -0
  112. netbox_dns/migrations/0029_record_fqdn.py +30 -0
  113. netbox_dns/mixins/__init__.py +1 -0
  114. netbox_dns/mixins/object_modification.py +57 -0
  115. netbox_dns/models/__init__.py +5 -1
  116. netbox_dns/models/dnssec_key_template.py +114 -0
  117. netbox_dns/models/dnssec_policy.py +203 -0
  118. netbox_dns/models/nameserver.py +61 -30
  119. netbox_dns/models/record.py +781 -234
  120. netbox_dns/models/record_template.py +198 -0
  121. netbox_dns/models/registrar.py +34 -15
  122. netbox_dns/models/{contact.py → registration_contact.py} +72 -43
  123. netbox_dns/models/view.py +129 -9
  124. netbox_dns/models/zone.py +806 -242
  125. netbox_dns/models/zone_template.py +209 -0
  126. netbox_dns/navigation.py +176 -76
  127. netbox_dns/signals/__init__.py +0 -0
  128. netbox_dns/signals/dnssec.py +32 -0
  129. netbox_dns/signals/ipam_dnssync.py +216 -0
  130. netbox_dns/tables/__init__.py +5 -1
  131. netbox_dns/tables/dnssec_key_template.py +49 -0
  132. netbox_dns/tables/dnssec_policy.py +140 -0
  133. netbox_dns/tables/ipam_dnssync.py +12 -0
  134. netbox_dns/tables/nameserver.py +14 -17
  135. netbox_dns/tables/record.py +117 -59
  136. netbox_dns/tables/record_template.py +91 -0
  137. netbox_dns/tables/registrar.py +20 -10
  138. netbox_dns/tables/{contact.py → registration_contact.py} +22 -11
  139. netbox_dns/tables/view.py +47 -3
  140. netbox_dns/tables/zone.py +62 -31
  141. netbox_dns/tables/zone_template.py +78 -0
  142. netbox_dns/template_content.py +124 -38
  143. netbox_dns/templates/netbox_dns/dnsseckeytemplate.html +70 -0
  144. netbox_dns/templates/netbox_dns/dnssecpolicy.html +163 -0
  145. netbox_dns/templates/netbox_dns/nameserver.html +31 -28
  146. netbox_dns/templates/netbox_dns/record/managed.html +2 -1
  147. netbox_dns/templates/netbox_dns/record/related.html +17 -6
  148. netbox_dns/templates/netbox_dns/record.html +140 -93
  149. netbox_dns/templates/netbox_dns/recordtemplate.html +96 -0
  150. netbox_dns/templates/netbox_dns/registrar.html +41 -34
  151. netbox_dns/templates/netbox_dns/registrationcontact.html +76 -0
  152. netbox_dns/templates/netbox_dns/view/button.html +10 -0
  153. netbox_dns/templates/netbox_dns/view/prefix.html +44 -0
  154. netbox_dns/templates/netbox_dns/view/related.html +33 -0
  155. netbox_dns/templates/netbox_dns/view.html +62 -18
  156. netbox_dns/templates/netbox_dns/zone/base.html +6 -3
  157. netbox_dns/templates/netbox_dns/zone/child.html +6 -5
  158. netbox_dns/templates/netbox_dns/zone/child_zone.html +18 -0
  159. netbox_dns/templates/netbox_dns/zone/delegation_record.html +18 -0
  160. netbox_dns/templates/netbox_dns/zone/managed_record.html +1 -1
  161. netbox_dns/templates/netbox_dns/zone/record.html +6 -5
  162. netbox_dns/templates/netbox_dns/zone/registration.html +43 -24
  163. netbox_dns/templates/netbox_dns/zone/rfc2317_child_zone.html +18 -0
  164. netbox_dns/templates/netbox_dns/zone.html +178 -119
  165. netbox_dns/templates/netbox_dns/zonetemplate/child.html +46 -0
  166. netbox_dns/templates/netbox_dns/zonetemplate.html +124 -0
  167. netbox_dns/templatetags/netbox_dns.py +10 -0
  168. netbox_dns/urls.py +50 -210
  169. netbox_dns/utilities/__init__.py +3 -0
  170. netbox_dns/{utilities.py → utilities/conversions.py} +55 -7
  171. netbox_dns/utilities/dns.py +11 -0
  172. netbox_dns/utilities/ipam_dnssync.py +370 -0
  173. netbox_dns/validators/__init__.py +4 -0
  174. netbox_dns/validators/dns_name.py +116 -0
  175. netbox_dns/validators/dns_value.py +147 -0
  176. netbox_dns/validators/dnssec.py +148 -0
  177. netbox_dns/validators/rfc2317.py +28 -0
  178. netbox_dns/views/__init__.py +5 -1
  179. netbox_dns/views/dnssec_key_template.py +78 -0
  180. netbox_dns/views/dnssec_policy.py +146 -0
  181. netbox_dns/views/nameserver.py +34 -15
  182. netbox_dns/views/record.py +156 -15
  183. netbox_dns/views/record_template.py +93 -0
  184. netbox_dns/views/registrar.py +32 -13
  185. netbox_dns/views/registration_contact.py +101 -0
  186. netbox_dns/views/view.py +58 -14
  187. netbox_dns/views/zone.py +130 -33
  188. netbox_dns/views/zone_template.py +82 -0
  189. netbox_plugin_dns-1.4.7.dist-info/METADATA +132 -0
  190. netbox_plugin_dns-1.4.7.dist-info/RECORD +201 -0
  191. {netbox_plugin_dns-0.21.4.dist-info → netbox_plugin_dns-1.4.7.dist-info}/WHEEL +2 -1
  192. {netbox_plugin_dns-0.21.4.dist-info → netbox_plugin_dns-1.4.7.dist-info/licenses}/LICENSE +2 -1
  193. netbox_plugin_dns-1.4.7.dist-info/top_level.txt +1 -0
  194. netbox_dns/filters/__init__.py +0 -6
  195. netbox_dns/filters/nameserver.py +0 -18
  196. netbox_dns/filters/record.py +0 -53
  197. netbox_dns/filters/view.py +0 -18
  198. netbox_dns/filters/zone.py +0 -112
  199. netbox_dns/forms/contact.py +0 -211
  200. netbox_dns/graphql/contact.py +0 -19
  201. netbox_dns/graphql/nameserver.py +0 -19
  202. netbox_dns/graphql/record.py +0 -19
  203. netbox_dns/graphql/registrar.py +0 -19
  204. netbox_dns/graphql/view.py +0 -19
  205. netbox_dns/graphql/zone.py +0 -19
  206. netbox_dns/management/commands/setup_coupling.py +0 -75
  207. netbox_dns/management/commands/update_soa.py +0 -22
  208. netbox_dns/middleware.py +0 -226
  209. netbox_dns/migrations/0001_initial.py +0 -115
  210. netbox_dns/migrations/0002_zone_default_ttl.py +0 -18
  211. netbox_dns/migrations/0003_soa_managed_records.py +0 -112
  212. netbox_dns/migrations/0004_create_ptr_for_a_aaaa_records.py +0 -80
  213. netbox_dns/migrations/0005_update_ns_records.py +0 -41
  214. netbox_dns/migrations/0006_zone_soa_serial_auto.py +0 -29
  215. netbox_dns/migrations/0007_alter_zone_soa_serial_auto.py +0 -17
  216. netbox_dns/migrations/0008_zone_status_names.py +0 -21
  217. netbox_dns/migrations/0009_netbox32.py +0 -71
  218. netbox_dns/migrations/0010_update_soa_records.py +0 -58
  219. netbox_dns/migrations/0011_add_view_model.py +0 -70
  220. netbox_dns/migrations/0012_adjust_zone_and_record.py +0 -17
  221. netbox_dns/migrations/0014_add_view_description.py +0 -16
  222. netbox_dns/migrations/0016_cleanup_ptr_records.py +0 -38
  223. netbox_dns/migrations/0017_alter_record_ttl.py +0 -17
  224. netbox_dns/migrations/0018_zone_arpa_network.py +0 -51
  225. netbox_dns/migrations/0019_update_ns_ttl.py +0 -19
  226. netbox_dns/templates/netbox_dns/contact.html +0 -71
  227. netbox_dns/templates/netbox_dns/related_dns_objects.html +0 -21
  228. netbox_dns/templatetags/view_helpers.py +0 -15
  229. netbox_dns/validators.py +0 -57
  230. netbox_dns/views/contact.py +0 -83
  231. netbox_plugin_dns-0.21.4.dist-info/METADATA +0 -101
  232. netbox_plugin_dns-0.21.4.dist-info/RECORD +0 -110
@@ -0,0 +1,172 @@
1
+ # Generated by Django 5.0.7 on 2024-07-12 11:38
2
+
3
+ import django.db.models.deletion
4
+ import taggit.managers
5
+ import utilities.json
6
+ from django.db import migrations, models
7
+
8
+
9
+ class Migration(migrations.Migration):
10
+
11
+ dependencies = [
12
+ ("extras", "0115_convert_dashboard_widgets"),
13
+ ("netbox_dns", "0005_alter_zone_view_not_null"),
14
+ ("tenancy", "0015_contactassignment_rename_content_type"),
15
+ ]
16
+
17
+ operations = [
18
+ migrations.CreateModel(
19
+ name="RecordTemplate",
20
+ fields=[
21
+ (
22
+ "id",
23
+ models.BigAutoField(
24
+ auto_created=True, primary_key=True, serialize=False
25
+ ),
26
+ ),
27
+ ("created", models.DateTimeField(auto_now_add=True, null=True)),
28
+ ("last_updated", models.DateTimeField(auto_now=True, null=True)),
29
+ (
30
+ "custom_field_data",
31
+ models.JSONField(
32
+ blank=True,
33
+ default=dict,
34
+ encoder=utilities.json.CustomFieldJSONEncoder,
35
+ ),
36
+ ),
37
+ ("name", models.CharField(max_length=200, unique=True)),
38
+ ("record_name", models.CharField(max_length=255)),
39
+ ("description", models.CharField(blank=True, max_length=200)),
40
+ ("type", models.CharField()),
41
+ ("value", models.CharField(max_length=65535)),
42
+ ("status", models.CharField(default="active")),
43
+ ("ttl", models.PositiveIntegerField(blank=True, null=True)),
44
+ ("disable_ptr", models.BooleanField(default=False)),
45
+ (
46
+ "tags",
47
+ taggit.managers.TaggableManager(
48
+ through="extras.TaggedItem", to="extras.Tag"
49
+ ),
50
+ ),
51
+ (
52
+ "tenant",
53
+ models.ForeignKey(
54
+ blank=True,
55
+ null=True,
56
+ on_delete=django.db.models.deletion.PROTECT,
57
+ related_name="+",
58
+ to="tenancy.tenant",
59
+ ),
60
+ ),
61
+ ],
62
+ options={
63
+ "ordering": ["name"],
64
+ },
65
+ ),
66
+ migrations.CreateModel(
67
+ name="ZoneTemplate",
68
+ fields=[
69
+ (
70
+ "id",
71
+ models.BigAutoField(
72
+ auto_created=True, primary_key=True, serialize=False
73
+ ),
74
+ ),
75
+ ("created", models.DateTimeField(auto_now_add=True, null=True)),
76
+ ("last_updated", models.DateTimeField(auto_now=True, null=True)),
77
+ (
78
+ "custom_field_data",
79
+ models.JSONField(
80
+ blank=True,
81
+ default=dict,
82
+ encoder=utilities.json.CustomFieldJSONEncoder,
83
+ ),
84
+ ),
85
+ ("name", models.CharField(max_length=200, unique=True)),
86
+ ("description", models.CharField(blank=True, max_length=200)),
87
+ (
88
+ "admin_c",
89
+ models.ForeignKey(
90
+ blank=True,
91
+ null=True,
92
+ on_delete=django.db.models.deletion.SET_NULL,
93
+ related_name="+",
94
+ to="netbox_dns.contact",
95
+ ),
96
+ ),
97
+ (
98
+ "billing_c",
99
+ models.ForeignKey(
100
+ blank=True,
101
+ null=True,
102
+ on_delete=django.db.models.deletion.SET_NULL,
103
+ related_name="+",
104
+ to="netbox_dns.contact",
105
+ ),
106
+ ),
107
+ (
108
+ "nameservers",
109
+ models.ManyToManyField(
110
+ blank=True, related_name="+", to="netbox_dns.nameserver"
111
+ ),
112
+ ),
113
+ (
114
+ "record_templates",
115
+ models.ManyToManyField(
116
+ blank=True,
117
+ related_name="zone_templates",
118
+ to="netbox_dns.recordtemplate",
119
+ ),
120
+ ),
121
+ (
122
+ "registrant",
123
+ models.ForeignKey(
124
+ blank=True,
125
+ null=True,
126
+ on_delete=django.db.models.deletion.SET_NULL,
127
+ related_name="+",
128
+ to="netbox_dns.contact",
129
+ ),
130
+ ),
131
+ (
132
+ "registrar",
133
+ models.ForeignKey(
134
+ blank=True,
135
+ null=True,
136
+ on_delete=django.db.models.deletion.SET_NULL,
137
+ related_name="+",
138
+ to="netbox_dns.registrar",
139
+ ),
140
+ ),
141
+ (
142
+ "tags",
143
+ taggit.managers.TaggableManager(
144
+ through="extras.TaggedItem", to="extras.Tag"
145
+ ),
146
+ ),
147
+ (
148
+ "tech_c",
149
+ models.ForeignKey(
150
+ blank=True,
151
+ null=True,
152
+ on_delete=django.db.models.deletion.SET_NULL,
153
+ related_name="+",
154
+ to="netbox_dns.contact",
155
+ ),
156
+ ),
157
+ (
158
+ "tenant",
159
+ models.ForeignKey(
160
+ blank=True,
161
+ null=True,
162
+ on_delete=django.db.models.deletion.SET_NULL,
163
+ related_name="+",
164
+ to="tenancy.tenant",
165
+ ),
166
+ ),
167
+ ],
168
+ options={
169
+ "ordering": ["name"],
170
+ },
171
+ ),
172
+ ]
@@ -0,0 +1,25 @@
1
+ # Generated by Django 5.0.7 on 2024-08-27 09:29
2
+
3
+ from django.db import migrations
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+
8
+ dependencies = [
9
+ ("netbox_dns", "0006_templating"),
10
+ ]
11
+
12
+ operations = [
13
+ migrations.AlterModelOptions(
14
+ name="record",
15
+ options={"ordering": ("fqdn", "zone", "name", "type", "value", "status")},
16
+ ),
17
+ migrations.AlterModelOptions(
18
+ name="recordtemplate",
19
+ options={"ordering": ("name",)},
20
+ ),
21
+ migrations.AlterModelOptions(
22
+ name="zonetemplate",
23
+ options={"ordering": ("name",)},
24
+ ),
25
+ ]
@@ -0,0 +1,18 @@
1
+ from django.db import migrations, models
2
+
3
+
4
+ class Migration(migrations.Migration):
5
+ dependencies = [
6
+ ("ipam", "0067_ipaddress_index_host"),
7
+ ("netbox_dns", "0007_alter_ordering_options"),
8
+ ]
9
+
10
+ operations = [
11
+ migrations.AddField(
12
+ model_name="view",
13
+ name="prefixes",
14
+ field=models.ManyToManyField(
15
+ blank=True, related_name="netbox_dns_views", to="ipam.prefix"
16
+ ),
17
+ ),
18
+ ]
@@ -0,0 +1,36 @@
1
+ from django.db import migrations, connection
2
+
3
+
4
+ def remove_object_changes(apps, schema_editor):
5
+ if "objectchange" in apps.all_models.get("core"):
6
+ with connection.cursor() as cursor:
7
+ cursor.execute(
8
+ "DELETE FROM core_objectchange WHERE changed_object_type_id in (SELECT id FROM django_content_type WHERE app_label='netbox_dns' AND model='contact')"
9
+ )
10
+
11
+
12
+ class Migration(migrations.Migration):
13
+
14
+ dependencies = [
15
+ ("netbox_dns", "0008_view_prefixes"),
16
+ ]
17
+
18
+ operations = [
19
+ migrations.RenameModel(
20
+ old_name="Contact",
21
+ new_name="RegistrationContact",
22
+ ),
23
+ migrations.RunSQL(
24
+ "ALTER TABLE netbox_dns_contact_id_seq RENAME TO netbox_dns_registrationcontact_id_seq"
25
+ ),
26
+ migrations.RunSQL(
27
+ "ALTER INDEX netbox_dns_contact_pkey RENAME TO netbox_dns_registrationcontact_pkey"
28
+ ),
29
+ migrations.RunSQL(
30
+ "ALTER INDEX netbox_dns_contact_contact_id_50e9d89d_like RENAME TO netbox_dns_registrationcontact_contact_id_6ff98464_like"
31
+ ),
32
+ migrations.RunSQL(
33
+ "ALTER INDEX netbox_dns_contact_contact_id_key RENAME TO netbox_dns_contact_registrationcontact_id_key"
34
+ ),
35
+ migrations.RunPython(remove_object_changes),
36
+ ]
@@ -0,0 +1,18 @@
1
+ # Generated by Django 5.0.9 on 2024-09-18 13:12
2
+
3
+ from django.db import migrations, models
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+
8
+ dependencies = [
9
+ ("netbox_dns", "0009_rename_contact_registrationcontact"),
10
+ ]
11
+
12
+ operations = [
13
+ migrations.AddField(
14
+ model_name="view",
15
+ name="ip_address_filter",
16
+ field=models.JSONField(blank=True, null=True),
17
+ ),
18
+ ]
@@ -0,0 +1,63 @@
1
+ # Generated by Django 5.0.9 on 2024-11-11 08:09
2
+
3
+ import django.db.models.deletion
4
+ from django.db import migrations, models
5
+
6
+
7
+ class Migration(migrations.Migration):
8
+
9
+ dependencies = [
10
+ ("netbox_dns", "0010_view_ip_address_filter"),
11
+ ]
12
+
13
+ operations = [
14
+ migrations.AlterField(
15
+ model_name="record",
16
+ name="zone",
17
+ field=models.ForeignKey(
18
+ on_delete=django.db.models.deletion.CASCADE,
19
+ related_name="records",
20
+ to="netbox_dns.zone",
21
+ ),
22
+ ),
23
+ migrations.AlterField(
24
+ model_name="zone",
25
+ name="registrant",
26
+ field=models.ForeignKey(
27
+ blank=True,
28
+ null=True,
29
+ on_delete=django.db.models.deletion.SET_NULL,
30
+ related_name="registrant_zones",
31
+ to="netbox_dns.registrationcontact",
32
+ ),
33
+ ),
34
+ migrations.AlterField(
35
+ model_name="zone",
36
+ name="registrar",
37
+ field=models.ForeignKey(
38
+ blank=True,
39
+ null=True,
40
+ on_delete=django.db.models.deletion.SET_NULL,
41
+ related_name="zones",
42
+ to="netbox_dns.registrar",
43
+ ),
44
+ ),
45
+ migrations.AlterField(
46
+ model_name="zone",
47
+ name="soa_mname",
48
+ field=models.ForeignKey(
49
+ on_delete=django.db.models.deletion.PROTECT,
50
+ related_name="soa_zones",
51
+ to="netbox_dns.nameserver",
52
+ ),
53
+ ),
54
+ migrations.AlterField(
55
+ model_name="zone",
56
+ name="view",
57
+ field=models.ForeignKey(
58
+ on_delete=django.db.models.deletion.PROTECT,
59
+ related_name="zones",
60
+ to="netbox_dns.view",
61
+ ),
62
+ ),
63
+ ]
@@ -0,0 +1,88 @@
1
+ # Generated by Django 5.1.3 on 2024-12-02 16:26
2
+
3
+ from django.db import migrations, models
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+
8
+ dependencies = [
9
+ ("netbox_dns", "0011_rename_related_fields"),
10
+ ]
11
+
12
+ operations = [
13
+ migrations.AlterField(
14
+ model_name="nameserver",
15
+ name="name",
16
+ field=models.CharField(
17
+ db_collation="natural_sort", max_length=255, unique=True
18
+ ),
19
+ ),
20
+ migrations.AlterField(
21
+ model_name="record",
22
+ name="fqdn",
23
+ field=models.CharField(
24
+ blank=True,
25
+ db_collation="natural_sort",
26
+ default=None,
27
+ max_length=255,
28
+ null=True,
29
+ ),
30
+ ),
31
+ migrations.AlterField(
32
+ model_name="record",
33
+ name="name",
34
+ field=models.CharField(db_collation="natural_sort", max_length=255),
35
+ ),
36
+ migrations.AlterField(
37
+ model_name="recordtemplate",
38
+ name="name",
39
+ field=models.CharField(
40
+ db_collation="natural_sort", max_length=200, unique=True
41
+ ),
42
+ ),
43
+ migrations.AlterField(
44
+ model_name="recordtemplate",
45
+ name="record_name",
46
+ field=models.CharField(db_collation="natural_sort", max_length=255),
47
+ ),
48
+ migrations.AlterField(
49
+ model_name="registrar",
50
+ name="name",
51
+ field=models.CharField(
52
+ db_collation="natural_sort", max_length=255, unique=True
53
+ ),
54
+ ),
55
+ migrations.AlterField(
56
+ model_name="registrationcontact",
57
+ name="contact_id",
58
+ field=models.CharField(
59
+ db_collation="natural_sort", max_length=50, unique=True
60
+ ),
61
+ ),
62
+ migrations.AlterField(
63
+ model_name="registrationcontact",
64
+ name="name",
65
+ field=models.CharField(
66
+ blank=True, db_collation="natural_sort", max_length=100
67
+ ),
68
+ ),
69
+ migrations.AlterField(
70
+ model_name="view",
71
+ name="name",
72
+ field=models.CharField(
73
+ db_collation="natural_sort", max_length=255, unique=True
74
+ ),
75
+ ),
76
+ migrations.AlterField(
77
+ model_name="zone",
78
+ name="name",
79
+ field=models.CharField(db_collation="natural_sort", max_length=255),
80
+ ),
81
+ migrations.AlterField(
82
+ model_name="zonetemplate",
83
+ name="name",
84
+ field=models.CharField(
85
+ db_collation="natural_sort", max_length=200, unique=True
86
+ ),
87
+ ),
88
+ ]
@@ -0,0 +1,30 @@
1
+ # Generated by Django 5.1.5 on 2025-02-17 11:37
2
+
3
+ import django.db.models.deletion
4
+ from django.db import migrations, models
5
+
6
+
7
+ class Migration(migrations.Migration):
8
+
9
+ dependencies = [
10
+ ("netbox_dns", "0012_natural_ordering"),
11
+ ]
12
+
13
+ operations = [
14
+ migrations.AddField(
15
+ model_name="zonetemplate",
16
+ name="soa_mname",
17
+ field=models.ForeignKey(
18
+ blank=True,
19
+ null=True,
20
+ on_delete=django.db.models.deletion.PROTECT,
21
+ related_name="+",
22
+ to="netbox_dns.nameserver",
23
+ ),
24
+ ),
25
+ migrations.AddField(
26
+ model_name="zonetemplate",
27
+ name="soa_rname",
28
+ field=models.CharField(blank=True, max_length=255),
29
+ ),
30
+ ]
@@ -0,0 +1,42 @@
1
+ # Generated by Django 5.1.6 on 2025-02-27 19:36
2
+
3
+ import django.db.models.functions.text
4
+ from django.db import migrations, models
5
+
6
+
7
+ class Migration(migrations.Migration):
8
+
9
+ dependencies = [
10
+ ("extras", "0122_charfield_null_choices"),
11
+ ("netbox_dns", "0013_zonetemplate_soa_mname_zonetemplate_soa_rname"),
12
+ ("tenancy", "0017_natural_ordering"),
13
+ ]
14
+
15
+ operations = [
16
+ migrations.AlterUniqueTogether(
17
+ name="zone",
18
+ unique_together=set(),
19
+ ),
20
+ migrations.AlterField(
21
+ model_name="nameserver",
22
+ name="name",
23
+ field=models.CharField(db_collation="natural_sort", max_length=255),
24
+ ),
25
+ migrations.AddConstraint(
26
+ model_name="nameserver",
27
+ constraint=models.UniqueConstraint(
28
+ django.db.models.functions.text.Lower("name"),
29
+ name="name_unique_ci",
30
+ violation_error_message="There is already a nameserver with this name",
31
+ ),
32
+ ),
33
+ migrations.AddConstraint(
34
+ model_name="zone",
35
+ constraint=models.UniqueConstraint(
36
+ django.db.models.functions.text.Lower("name"),
37
+ models.F("view"),
38
+ name="name_view_unique_ci",
39
+ violation_error_message="There is already a zone with the same name in this view",
40
+ ),
41
+ ),
42
+ ]
@@ -0,0 +1,168 @@
1
+ # Generated by Django 5.1.6 on 2025-03-04 12:09
2
+
3
+ import django.db.models.deletion
4
+ import netbox_dns.fields.choice_array
5
+ import taggit.managers
6
+ import utilities.json
7
+ from django.db import migrations, models
8
+
9
+
10
+ class Migration(migrations.Migration):
11
+
12
+ dependencies = [
13
+ ("extras", "0122_charfield_null_choices"),
14
+ ("netbox_dns", "0014_alter_unique_constraints_lowercase"),
15
+ ("tenancy", "0017_natural_ordering"),
16
+ ]
17
+
18
+ operations = [
19
+ migrations.CreateModel(
20
+ name="DNSSECKeyTemplate",
21
+ fields=[
22
+ (
23
+ "id",
24
+ models.BigAutoField(
25
+ auto_created=True, primary_key=True, serialize=False
26
+ ),
27
+ ),
28
+ ("created", models.DateTimeField(auto_now_add=True, null=True)),
29
+ ("last_updated", models.DateTimeField(auto_now=True, null=True)),
30
+ (
31
+ "custom_field_data",
32
+ models.JSONField(
33
+ blank=True,
34
+ default=dict,
35
+ encoder=utilities.json.CustomFieldJSONEncoder,
36
+ ),
37
+ ),
38
+ ("name", models.CharField(max_length=255)),
39
+ ("description", models.CharField(blank=True, max_length=200)),
40
+ ("type", models.CharField(max_length=3)),
41
+ ("lifetime", models.PositiveIntegerField(blank=True, null=True)),
42
+ ("algorithm", models.CharField()),
43
+ ("key_size", models.PositiveIntegerField(blank=True, null=True)),
44
+ (
45
+ "tags",
46
+ taggit.managers.TaggableManager(
47
+ through="extras.TaggedItem", to="extras.Tag"
48
+ ),
49
+ ),
50
+ (
51
+ "tenant",
52
+ models.ForeignKey(
53
+ blank=True,
54
+ null=True,
55
+ on_delete=django.db.models.deletion.PROTECT,
56
+ related_name="netbox_dns_dnssec_key_templates",
57
+ to="tenancy.tenant",
58
+ ),
59
+ ),
60
+ ],
61
+ options={
62
+ "verbose_name": "DNSSEC Key Template",
63
+ "verbose_name_plural": "DNSSEC Key Templates",
64
+ "ordering": ("name",),
65
+ "unique_together": {("name", "type")},
66
+ },
67
+ ),
68
+ migrations.CreateModel(
69
+ name="DNSSECPolicy",
70
+ fields=[
71
+ (
72
+ "id",
73
+ models.BigAutoField(
74
+ auto_created=True, primary_key=True, serialize=False
75
+ ),
76
+ ),
77
+ ("created", models.DateTimeField(auto_now_add=True, null=True)),
78
+ ("last_updated", models.DateTimeField(auto_now=True, null=True)),
79
+ (
80
+ "custom_field_data",
81
+ models.JSONField(
82
+ blank=True,
83
+ default=dict,
84
+ encoder=utilities.json.CustomFieldJSONEncoder,
85
+ ),
86
+ ),
87
+ ("name", models.CharField(max_length=255, unique=True)),
88
+ ("description", models.CharField(blank=True, max_length=200)),
89
+ ("dnskey_ttl", models.PositiveIntegerField(blank=True, null=True)),
90
+ ("purge_keys", models.PositiveIntegerField(blank=True, null=True)),
91
+ ("publish_safety", models.PositiveIntegerField(blank=True, null=True)),
92
+ ("retire_safety", models.PositiveIntegerField(blank=True, null=True)),
93
+ (
94
+ "signatures_jitter",
95
+ models.PositiveIntegerField(blank=True, null=True),
96
+ ),
97
+ (
98
+ "signatures_refresh",
99
+ models.PositiveIntegerField(blank=True, null=True),
100
+ ),
101
+ (
102
+ "signatures_validity",
103
+ models.PositiveIntegerField(blank=True, null=True),
104
+ ),
105
+ (
106
+ "signatures_validity_dnskey",
107
+ models.PositiveIntegerField(blank=True, null=True),
108
+ ),
109
+ ("max_zone_ttl", models.PositiveIntegerField(blank=True, null=True)),
110
+ (
111
+ "zone_propagation_delay",
112
+ models.PositiveIntegerField(blank=True, null=True),
113
+ ),
114
+ ("create_cdnskey", models.BooleanField(default=True)),
115
+ (
116
+ "cds_digest_types",
117
+ netbox_dns.fields.choice_array.ChoiceArrayField(
118
+ base_field=models.CharField(),
119
+ blank=True,
120
+ default=list,
121
+ null=True,
122
+ size=None,
123
+ ),
124
+ ),
125
+ ("parent_ds_ttl", models.PositiveIntegerField(blank=True, null=True)),
126
+ (
127
+ "parent_propagation_delay",
128
+ models.PositiveIntegerField(blank=True, null=True),
129
+ ),
130
+ ("use_nsec3", models.BooleanField(default=True)),
131
+ (
132
+ "nsec3_iterations",
133
+ models.PositiveIntegerField(blank=True, null=True),
134
+ ),
135
+ ("nsec3_opt_out", models.BooleanField(default=False)),
136
+ ("nsec3_salt_size", models.PositiveIntegerField(blank=True, null=True)),
137
+ (
138
+ "key_templates",
139
+ models.ManyToManyField(
140
+ blank=True,
141
+ related_name="policies",
142
+ to="netbox_dns.dnsseckeytemplate",
143
+ ),
144
+ ),
145
+ (
146
+ "tags",
147
+ taggit.managers.TaggableManager(
148
+ through="extras.TaggedItem", to="extras.Tag"
149
+ ),
150
+ ),
151
+ (
152
+ "tenant",
153
+ models.ForeignKey(
154
+ blank=True,
155
+ null=True,
156
+ on_delete=django.db.models.deletion.PROTECT,
157
+ related_name="netbox_dns_dnssec_policy",
158
+ to="tenancy.tenant",
159
+ ),
160
+ ),
161
+ ],
162
+ options={
163
+ "verbose_name": "DNSSEC Policy",
164
+ "verbose_name_plural": "DNSSEC Policies",
165
+ "ordering": ("name",),
166
+ },
167
+ ),
168
+ ]
@@ -1,17 +1,18 @@
1
- # Generated by Django 4.0.3 on 2022-07-28 15:48
1
+ # Generated by Django 5.1.7 on 2025-03-09 18:23
2
2
 
3
3
  from django.db import migrations, models
4
4
 
5
5
 
6
6
  class Migration(migrations.Migration):
7
+
7
8
  dependencies = [
8
- ("netbox_dns", "0001_initial"),
9
+ ("netbox_dns", "0015_dnssec"),
9
10
  ]
10
11
 
11
12
  operations = [
12
13
  migrations.AddField(
13
- model_name="record",
14
+ model_name="dnssecpolicy",
14
15
  name="status",
15
- field=models.CharField(default="active", max_length=50),
16
+ field=models.CharField(default="active"),
16
17
  ),
17
18
  ]