netbox-plugin-dns 0.22.9__py3-none-any.whl → 1.0b1__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.

Files changed (103) hide show
  1. netbox_dns/__init__.py +3 -14
  2. netbox_dns/api/nested_serializers.py +4 -60
  3. netbox_dns/api/serializers.py +8 -314
  4. netbox_dns/api/serializers_/__init__.py +0 -0
  5. netbox_dns/api/serializers_/contact.py +37 -0
  6. netbox_dns/api/serializers_/nameserver.py +39 -0
  7. netbox_dns/api/serializers_/record.py +90 -0
  8. netbox_dns/api/serializers_/registrar.py +31 -0
  9. netbox_dns/api/serializers_/view.py +29 -0
  10. netbox_dns/api/serializers_/zone.py +170 -0
  11. netbox_dns/api/views.py +13 -13
  12. netbox_dns/fields/network.py +1 -1
  13. netbox_dns/fields/rfc2317.py +1 -1
  14. netbox_dns/{filters → filtersets}/contact.py +2 -1
  15. netbox_dns/filtersets/nameserver.py +37 -0
  16. netbox_dns/{filters → filtersets}/record.py +51 -6
  17. netbox_dns/{filters → filtersets}/registrar.py +2 -1
  18. netbox_dns/{filters → filtersets}/view.py +2 -2
  19. netbox_dns/filtersets/zone.py +205 -0
  20. netbox_dns/forms/contact.py +61 -33
  21. netbox_dns/forms/nameserver.py +21 -8
  22. netbox_dns/forms/record.py +35 -36
  23. netbox_dns/forms/registrar.py +45 -15
  24. netbox_dns/forms/view.py +19 -8
  25. netbox_dns/forms/zone.py +112 -87
  26. netbox_dns/graphql/__init__.py +17 -27
  27. netbox_dns/graphql/filters.py +49 -0
  28. netbox_dns/graphql/schema.py +66 -7
  29. netbox_dns/graphql/types.py +146 -0
  30. netbox_dns/management/commands/cleanup_database.py +0 -4
  31. netbox_dns/management/commands/cleanup_rrset_ttl.py +3 -5
  32. netbox_dns/management/commands/setup_coupling.py +15 -15
  33. netbox_dns/management/commands/update_soa.py +1 -1
  34. netbox_dns/migrations/0001_squashed_netbox_dns_0_15.py +0 -27
  35. netbox_dns/migrations/0001_squashed_netbox_dns_0_22.py +556 -0
  36. netbox_dns/migrations/{0013_add_nameserver_zone_record_description.py → 0002_contact_description_registrar_description.py} +4 -9
  37. netbox_dns/migrations/0020_netbox_3_4.py +1 -1
  38. netbox_dns/models/contact.py +6 -1
  39. netbox_dns/models/nameserver.py +3 -3
  40. netbox_dns/models/record.py +8 -15
  41. netbox_dns/models/registrar.py +5 -1
  42. netbox_dns/models/view.py +1 -1
  43. netbox_dns/models/zone.py +6 -9
  44. netbox_dns/navigation.py +1 -15
  45. netbox_dns/signals/ipam_coupling.py +3 -8
  46. netbox_dns/tables/contact.py +1 -0
  47. netbox_dns/tables/nameserver.py +0 -2
  48. netbox_dns/tables/registrar.py +1 -0
  49. netbox_dns/template_content.py +3 -7
  50. netbox_dns/templates/netbox_dns/contact.html +60 -56
  51. netbox_dns/templates/netbox_dns/nameserver.html +27 -27
  52. netbox_dns/templates/netbox_dns/record.html +92 -94
  53. netbox_dns/templates/netbox_dns/registrar.html +38 -36
  54. netbox_dns/templates/netbox_dns/view.html +21 -21
  55. netbox_dns/templates/netbox_dns/zone/base.html +5 -3
  56. netbox_dns/templates/netbox_dns/zone/child.html +3 -3
  57. netbox_dns/templates/netbox_dns/zone/managed_record.html +1 -1
  58. netbox_dns/templates/netbox_dns/zone/record.html +3 -3
  59. netbox_dns/templates/netbox_dns/zone/registration.html +26 -27
  60. netbox_dns/templates/netbox_dns/zone/rfc2317_child_zone.html +1 -1
  61. netbox_dns/templates/netbox_dns/zone.html +150 -149
  62. netbox_dns/utilities/__init__.py +1 -6
  63. netbox_dns/utilities/ipam_coupling.py +2 -7
  64. netbox_dns/validators/dns_name.py +4 -9
  65. netbox_dns/validators/rfc2317.py +2 -2
  66. netbox_dns/views/contact.py +4 -4
  67. netbox_dns/views/nameserver.py +5 -5
  68. netbox_dns/views/record.py +19 -12
  69. netbox_dns/views/registrar.py +4 -4
  70. netbox_dns/views/view.py +4 -4
  71. netbox_dns/views/zone.py +7 -8
  72. {netbox_plugin_dns-0.22.9.dist-info → netbox_plugin_dns-1.0b1.dist-info}/METADATA +5 -7
  73. netbox_plugin_dns-1.0b1.dist-info/RECORD +103 -0
  74. netbox_dns/filters/nameserver.py +0 -18
  75. netbox_dns/filters/zone.py +0 -112
  76. netbox_dns/graphql/contact.py +0 -19
  77. netbox_dns/graphql/nameserver.py +0 -19
  78. netbox_dns/graphql/record.py +0 -19
  79. netbox_dns/graphql/registrar.py +0 -19
  80. netbox_dns/graphql/view.py +0 -19
  81. netbox_dns/graphql/zone.py +0 -19
  82. netbox_dns/migrations/0001_initial.py +0 -115
  83. netbox_dns/migrations/0002_zone_default_ttl.py +0 -18
  84. netbox_dns/migrations/0003_soa_managed_records.py +0 -112
  85. netbox_dns/migrations/0004_create_ptr_for_a_aaaa_records.py +0 -80
  86. netbox_dns/migrations/0005_update_ns_records.py +0 -41
  87. netbox_dns/migrations/0006_zone_soa_serial_auto.py +0 -29
  88. netbox_dns/migrations/0007_alter_zone_soa_serial_auto.py +0 -17
  89. netbox_dns/migrations/0008_zone_status_names.py +0 -21
  90. netbox_dns/migrations/0009_netbox32.py +0 -71
  91. netbox_dns/migrations/0010_update_soa_records.py +0 -58
  92. netbox_dns/migrations/0011_add_view_model.py +0 -70
  93. netbox_dns/migrations/0012_adjust_zone_and_record.py +0 -17
  94. netbox_dns/migrations/0014_add_view_description.py +0 -16
  95. netbox_dns/migrations/0015_add_record_status.py +0 -17
  96. netbox_dns/migrations/0016_cleanup_ptr_records.py +0 -38
  97. netbox_dns/migrations/0017_alter_record_ttl.py +0 -17
  98. netbox_dns/migrations/0018_zone_arpa_network.py +0 -51
  99. netbox_dns/migrations/0019_update_ns_ttl.py +0 -19
  100. netbox_plugin_dns-0.22.9.dist-info/RECORD +0 -117
  101. /netbox_dns/{filters → filtersets}/__init__.py +0 -0
  102. {netbox_plugin_dns-0.22.9.dist-info → netbox_plugin_dns-1.0b1.dist-info}/LICENSE +0 -0
  103. {netbox_plugin_dns-0.22.9.dist-info → netbox_plugin_dns-1.0b1.dist-info}/WHEEL +0 -0
netbox_dns/views/zone.py CHANGED
@@ -3,7 +3,7 @@ from dns import name as dns_name
3
3
  from netbox.views import generic
4
4
  from utilities.views import ViewTab, register_model_view
5
5
 
6
- from netbox_dns.filters import ZoneFilter, RecordFilter
6
+ from netbox_dns.filtersets import ZoneFilterSet, RecordFilterSet
7
7
  from netbox_dns.forms import (
8
8
  ZoneImportForm,
9
9
  ZoneForm,
@@ -20,7 +20,7 @@ from netbox_dns.tables import (
20
20
 
21
21
  class ZoneListView(generic.ObjectListView):
22
22
  queryset = Zone.objects.all().prefetch_related("view", "tags")
23
- filterset = ZoneFilter
23
+ filterset = ZoneFilterSet
24
24
  filterset_form = ZoneFilterForm
25
25
  table = ZoneTable
26
26
 
@@ -75,7 +75,7 @@ class ZoneBulkEditView(generic.BulkEditView):
75
75
  queryset = Zone.objects.all().prefetch_related(
76
76
  "view", "tags", "nameservers", "soa_mname"
77
77
  )
78
- filterset = ZoneFilter
78
+ filterset = ZoneFilterSet
79
79
  table = ZoneTable
80
80
  form = ZoneBulkEditForm
81
81
  default_return_url = "plugins:netbox_dns:zone_list"
@@ -109,7 +109,7 @@ class ZoneRecordListView(generic.ObjectChildrenView):
109
109
  queryset = Zone.objects.all()
110
110
  child_model = Record
111
111
  table = RecordTable
112
- filterset = RecordFilter
112
+ filterset = RecordFilterSet
113
113
  template_name = "netbox_dns/zone/record.html"
114
114
  hide_if_empty = True
115
115
 
@@ -131,9 +131,9 @@ class ZoneManagedRecordListView(generic.ObjectChildrenView):
131
131
  queryset = Zone.objects.all()
132
132
  child_model = Record
133
133
  table = ManagedRecordTable
134
- filterset = RecordFilter
134
+ filterset = RecordFilterSet
135
135
  template_name = "netbox_dns/zone/managed_record.html"
136
- actions = ("changelog",)
136
+ actions = {"changelog": {"view"}}
137
137
 
138
138
  tab = ViewTab(
139
139
  label="Managed Records",
@@ -153,9 +153,8 @@ class ZoneRFC2317ChildZoneListView(generic.ObjectChildrenView):
153
153
  queryset = Zone.objects.all()
154
154
  child_model = Zone
155
155
  table = ZoneTable
156
- filterset = ZoneFilter
156
+ filterset = ZoneFilterSet
157
157
  template_name = "netbox_dns/zone/rfc2317_child_zone.html"
158
- actions = ("changelog",)
159
158
 
160
159
  tab = ViewTab(
161
160
  label="RFC2317 Child Zones",
@@ -1,18 +1,16 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: netbox-plugin-dns
3
- Version: 0.22.9
3
+ Version: 1.0b1
4
4
  Summary: NetBox DNS is a NetBox plugin for managing DNS data.
5
5
  Home-page: https://github.com/peteeckel/netbox-plugin-dns
6
6
  License: MIT
7
7
  Keywords: netbox,netbox-plugin,dns
8
8
  Author: Peter Eckel
9
9
  Author-email: pete@netbox-dns.org
10
- Requires-Python: >=3.8,<4.0
11
- Classifier: Development Status :: 5 - Production/Stable
10
+ Requires-Python: >=3.10,<4.0
11
+ Classifier: Development Status :: 4 - Beta
12
12
  Classifier: License :: OSI Approved :: MIT License
13
13
  Classifier: Programming Language :: Python :: 3
14
- Classifier: Programming Language :: Python :: 3.8
15
- Classifier: Programming Language :: Python :: 3.9
16
14
  Classifier: Programming Language :: Python :: 3.10
17
15
  Classifier: Programming Language :: Python :: 3.11
18
16
  Classifier: Programming Language :: Python :: 3.12
@@ -49,8 +47,8 @@ NetBox DNS is using the standardized NetBox plugin interface, so it also takes a
49
47
 
50
48
  ## Requirements
51
49
 
52
- * NetBox 3.5.0 or higher
53
- * Python 3.8 or higher
50
+ * NetBox 4.0.0 or higher
51
+ * Python 3.10 or higher
54
52
 
55
53
  ## Installation & Configuration
56
54
 
@@ -0,0 +1,103 @@
1
+ netbox_dns/__init__.py,sha256=UCoJy3Ru9spDUyac_WRlNF7XOblh3aSkO-ZTnksGOV4,1053
2
+ netbox_dns/api/nested_serializers.py,sha256=kkTU4Hylkbam9-lIniv8E0nTQwE1bz8D_GzIEOUy0Mw,2145
3
+ netbox_dns/api/serializers.py,sha256=C4-TP1luq9QjEHjPS5cW7u2flAEdIFjghpVd_sa5S_Y,249
4
+ netbox_dns/api/serializers_/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
+ netbox_dns/api/serializers_/contact.py,sha256=dH4rSmJQWy3B2GcZhF86OtaUxJRl_pF7eVRXw_TdU3E,929
6
+ netbox_dns/api/serializers_/nameserver.py,sha256=Y1Ou6wAFddL28bIR10kYdHMHucbFGD7Q1M71L1z-gzY,1093
7
+ netbox_dns/api/serializers_/record.py,sha256=USnaNU5Mj6Uxo-qqOtBn_y1hj6UO1UcdCbj_9emDHfQ,2284
8
+ netbox_dns/api/serializers_/registrar.py,sha256=hnd6yzxd3wtIaUFkaeVyJ9q63M3IFdq_JftJj8KMIEQ,805
9
+ netbox_dns/api/serializers_/view.py,sha256=cCeaTBiAAVBvPd8hBAl_XIW6O3FpwXNh0dcY-vX1H_I,798
10
+ netbox_dns/api/serializers_/zone.py,sha256=tiEcYfScWP0FtR0E3oQKWxkJSAE6MEGawFHFG3OpTEk,4759
11
+ netbox_dns/api/urls.py,sha256=R9VmmWtdrjvr35i5d_SfZK2lGn6JzmPuWEKTQlZ8MJo,575
12
+ netbox_dns/api/views.py,sha256=NI6ge3aCum394G0YN3mVSTQdFPB5kMOPdWRMR05aDO8,3566
13
+ netbox_dns/apps.py,sha256=JCW5eS-AQBUubDJve1DjP-IRFKTFGQh1NLGWzJpC5MI,151
14
+ netbox_dns/fields/__init__.py,sha256=egA6gLQ4SPYacECcYU4Vl_P7TbzLOMRfaX6rw3k26YA,69
15
+ netbox_dns/fields/address.py,sha256=qklRDbZJVK20t2OIxGBoo9VVeuVTWvWkf2gHaZMnoAI,1494
16
+ netbox_dns/fields/network.py,sha256=wKAuqopoJTXr6kOZ2X65VWhLNygLsFUmy4WR6ScSWWo,3606
17
+ netbox_dns/fields/rfc2317.py,sha256=ODlg5UXzTZ5m1R0J8G89UgcMdYRg4Ka0INPKDY_I250,2518
18
+ netbox_dns/filtersets/__init__.py,sha256=Aw8HrCTjaJfu5JSwJsQRHfOUz4zKwAmZNByT9q6BrFU,136
19
+ netbox_dns/filtersets/contact.py,sha256=OHwaV0nUhOchNN4etXviqo6eJVnXs0o8W0rwXBhRpx8,1057
20
+ netbox_dns/filtersets/nameserver.py,sha256=mX-0iCndZZo-_YiYqMT89JY7lYRvrdB2CMo5kIXXJWg,1110
21
+ netbox_dns/filtersets/record.py,sha256=Xop2yRT_UJcLvnk9DmKSekOt2a3NTFcCaIAKLskPx4M,3687
22
+ netbox_dns/filtersets/registrar.py,sha256=CzugumDLbFtkMaURLupMciKgV6VWHCzr1duXWQUGUKA,941
23
+ netbox_dns/filtersets/view.py,sha256=KhM0xB4hEBSAE9LYsoOjsPdsxswlPsRnBuQ85yYv51E,505
24
+ netbox_dns/filtersets/zone.py,sha256=DZLO1m0WKrZ6vxiq8mNE9m82ni8asAOZ1xSe9gULVYE,6564
25
+ netbox_dns/forms/__init__.py,sha256=Aw8HrCTjaJfu5JSwJsQRHfOUz4zKwAmZNByT9q6BrFU,136
26
+ netbox_dns/forms/contact.py,sha256=zC6DY5x05RmuIkURlnL3QwdmVeWLSbw5XqQ568RVUOM,5220
27
+ netbox_dns/forms/nameserver.py,sha256=x3vmPQfiGLvIayOhTq--wC7pp24pOuVLArosUZOXpc4,2361
28
+ netbox_dns/forms/record.py,sha256=3obkPtQCreDkO0OCZFc2JfFz7RtD5cKvKwtYc_2c2u0,6272
29
+ netbox_dns/forms/registrar.py,sha256=Z1V03Vk5k1KeMioQeNbBIo3LbFlh4LYiHIw72I4hN34,3638
30
+ netbox_dns/forms/view.py,sha256=yWq0dtCc0P8Zxk6geX0O3w-vPJtgoXNADRvAaYNiqc0,1932
31
+ netbox_dns/forms/zone.py,sha256=0KsQdVD5OCmF3lXQa99cc8rEqML4W1OjvzjcDUxu__g,22627
32
+ netbox_dns/graphql/__init__.py,sha256=B9FHsY2Nntz4Vg9EtKbYB_gyzPCIM76CMQSGbf0Q9ek,358
33
+ netbox_dns/graphql/filters.py,sha256=Kwjrn0SaxaeqhxzjFb6isXYVvL_IXOwUpNsQd_c-ffY,1257
34
+ netbox_dns/graphql/schema.py,sha256=2CHe93vQQgFhl5cQTYCJp3JikK_QnBok8xi5UFvPmac,1915
35
+ netbox_dns/graphql/types.py,sha256=Md-OZgih9GFomQuqwOK-sIHyNGET8iMAkQ8s9cryC2A,4207
36
+ netbox_dns/management/commands/cleanup_database.py,sha256=HbfhYONCv1xlAbGP4e4Yv9IIoB0U-R8wAnyOjYMvxM0,5960
37
+ netbox_dns/management/commands/cleanup_rrset_ttl.py,sha256=LKRDlprPsCXFppH1FTkW0hg1XVJriQmL94W-VzEBFHs,2029
38
+ netbox_dns/management/commands/setup_coupling.py,sha256=1cUxDvHoX1UebgyCsbrLqIccuXhE8tkvyhW8dofIyr4,4556
39
+ netbox_dns/management/commands/update_soa.py,sha256=Rj_Xk-qpwkAVRubVnM5OqSTwgzi93E0PqjwGb3rYjf0,660
40
+ netbox_dns/migrations/0001_squashed_netbox_dns_0_15.py,sha256=3U0810NWSHPu2dTSHpfzlleDgwMS04FhJ_CkO76SDaw,10283
41
+ netbox_dns/migrations/0001_squashed_netbox_dns_0_22.py,sha256=Fs4V6fi3D_1tn2GdUhkMVrvO9pqffCHCKH7ce38-3cE,20243
42
+ netbox_dns/migrations/0002_contact_description_registrar_description.py,sha256=ZrI-L3jJ5GzdVx21pomgM4waE-njixHQjl_grjsGr0I,583
43
+ netbox_dns/migrations/0020_netbox_3_4.py,sha256=UMcHdn8ZAuQjUaM_3rEGpktYrM0TuvhccD7Jt7WQnPs,1271
44
+ netbox_dns/migrations/0021_record_ip_address.py,sha256=k72KACwnaCkgXLMgrex_lZCB1xd614llxRBeBBuJTYU,3243
45
+ netbox_dns/migrations/0022_search.py,sha256=KW1ffEZ4-0dppGQ_KD1EN7iw8eQJOnDco-xfJFRZqKQ,172
46
+ netbox_dns/migrations/0023_alter_record_value.py,sha256=4_4v8YZzU8_jadJqIUUjH6SIhNTeALWhclozTqYDmv0,378
47
+ netbox_dns/migrations/0024_tenancy.py,sha256=3kc5l5_AyfhOI6g6mbCfReUAbSgb2DAv0MDMZqJ-3YQ,1745
48
+ netbox_dns/migrations/0025_ipam_coupling_cf.py,sha256=7uHujclWrsYw5QMLWft0Po78Ow5Q8MjPuU7moKyQ2qs,620
49
+ netbox_dns/migrations/0026_domain_registration.py,sha256=qUJ1oUGHIGGNWD7QRLnxElbM5eNp7dYNNn_OYIw8Xvo,5796
50
+ netbox_dns/migrations/0027_alter_registrar_iana_id.py,sha256=QUtRIrqqfkraFmzzeJFZWAEv4PfrOouoHtrV6FRn8Kc,404
51
+ netbox_dns/migrations/0028_rfc2317_fields.py,sha256=D8r43xxBjYXiL6ycmX8RY5_WG7tRYEDjutOeYM1H56I,1364
52
+ netbox_dns/migrations/0029_record_fqdn.py,sha256=UAAU38ekKQyiYDOJlcrz6Qbk4bqZfSHZyAHUZFFQrOw,808
53
+ netbox_dns/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
54
+ netbox_dns/models/__init__.py,sha256=Q7UIEe2vGh18AZN4er6CykciwXPQGgUq0L-9718wZqU,182
55
+ netbox_dns/models/contact.py,sha256=xXmNGuM6k1U98jO3mMmp93PXamh1YZQ270JOcy0FFnE,2958
56
+ netbox_dns/models/nameserver.py,sha256=LuE0VNwu3jM-IKf6ubq4kWHZpCAmTPdhGhz3btYtE0U,3021
57
+ netbox_dns/models/record.py,sha256=YiWYeB3IaGfmm88OVlU3N1ezc753QAKCB2TVgT4Zxp0,23740
58
+ netbox_dns/models/registrar.py,sha256=yidjVCq7WPECsHLKQRRCSzGbvG2jIXu8lqAKox0SU5Q,1502
59
+ netbox_dns/models/view.py,sha256=-CniIpddvoGAQQSS8y5R6Oq6IuPU_mGSi8J-3WLtYNU,920
60
+ netbox_dns/models/zone.py,sha256=8V7cJPhX3mWsmhWNH3Jc7-6cRPTeLXxb4CdOeo2YNOk,26519
61
+ netbox_dns/navigation.py,sha256=ykZJE5X-sqlnaTIU_pRzsio8Ux8zZVLH-iNsC2QqIxs,4062
62
+ netbox_dns/signals/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
63
+ netbox_dns/signals/ipam_coupling.py,sha256=yBKICUcueJvzWCpUICEA0BYxf3WwaD2ZVNCb2bFRBEQ,5595
64
+ netbox_dns/tables/__init__.py,sha256=Aw8HrCTjaJfu5JSwJsQRHfOUz4zKwAmZNByT9q6BrFU,136
65
+ netbox_dns/tables/contact.py,sha256=guT_wC3NJMYbVbXeMOg6nqmmmDcnjfbRI-SkjFDEYdU,774
66
+ netbox_dns/tables/nameserver.py,sha256=8BfXzDXNuhZHEyHjGlL4EA1LYx7XU3EPGHlby0k33II,767
67
+ netbox_dns/tables/record.py,sha256=VwBWMiZN_Lkl9SXfJLzd8-7TM1CKetwE7azhScF4r7I,3162
68
+ netbox_dns/tables/registrar.py,sha256=6C8XpxvR9O7IoVK0RD5RoZgXjkm-ORSBeKP6KbwcjHA,648
69
+ netbox_dns/tables/view.py,sha256=r9CLS96m-KojX3OYZ-k45FbVseHO20nPxRzlKrRrLio,501
70
+ netbox_dns/tables/zone.py,sha256=4TlTB7lVsztZJ41aetkqr6PWosjZP-xc2sB9gDnw0z8,1886
71
+ netbox_dns/template_content.py,sha256=0Az-YtDweyjX10NylMxk3Fv1_VIigCzY-Es48QSQRvA,3805
72
+ netbox_dns/templates/netbox_dns/contact.html,sha256=fMHAQyLXIxohKoCTxFEnKetl9UVXeQgjasfpv_JONaw,2855
73
+ netbox_dns/templates/netbox_dns/nameserver.html,sha256=DpTdetQVV_jKThDbi62LvbhiCay-1QxR-yiJEiPFm4w,1554
74
+ netbox_dns/templates/netbox_dns/record/managed.html,sha256=G6LPG1koUGuzUiwYdv1okdVa4sKaofiQegDBnsFL0kA,89
75
+ netbox_dns/templates/netbox_dns/record/related.html,sha256=Aqor8uGcuHQTHjlX-Xmni2Yp4N7lOBrMOqQiszrQOC0,742
76
+ netbox_dns/templates/netbox_dns/record.html,sha256=tzqX7FpSLwx3nzQHsOnlR_mfPZIehv6qs2erfC3KtDM,5481
77
+ netbox_dns/templates/netbox_dns/registrar.html,sha256=O5veGmW59Pf5yN25ihPLvRIkA2P7xmSGv0G3NrRG8vI,2152
78
+ netbox_dns/templates/netbox_dns/related_dns_objects.html,sha256=KSzlnw1cStrJa3poKkwrt_ycIH0oH0STWIHRNy3ks4g,806
79
+ netbox_dns/templates/netbox_dns/view.html,sha256=Ua91W33MRVKzEJcSUY7tgnO-rRD0FhFPdi72Sx_6iY0,1321
80
+ netbox_dns/templates/netbox_dns/zone/base.html,sha256=n_E4aVYdGeZZl-ARE8sb4DgAAgPs92X1UEFepX3xIlM,495
81
+ netbox_dns/templates/netbox_dns/zone/child.html,sha256=kH56PJFBGCjiRdIh7zCtClnZdfOChqN_sYslsyoz5gU,2147
82
+ netbox_dns/templates/netbox_dns/zone/managed_record.html,sha256=LOchMAJyfMZIICE6q0pX1eorRbtgUtOQ1u0VvJKCDZ8,514
83
+ netbox_dns/templates/netbox_dns/zone/record.html,sha256=tu5RFm2eYJ3fjeUxZYDJqJ9qK8tGslXl1iGs60DlRyM,2194
84
+ netbox_dns/templates/netbox_dns/zone/registration.html,sha256=de2Kph-G8Gv5LD_Wf294SLfO0UKPS9NmHeQYRfJf-Ck,1151
85
+ netbox_dns/templates/netbox_dns/zone/rfc2317_child_zone.html,sha256=rWlmb3zRQbLYQ_1dsa0twwu6y1dRj2tfFVEERH07p-s,517
86
+ netbox_dns/templates/netbox_dns/zone.html,sha256=BW8ig7bSuPXfcx2oiqLGCRVgs2IQIssoiT7QfEI0y54,6717
87
+ netbox_dns/urls.py,sha256=NxqvnRxLM6VwUBTY6KA8u-PRjNklmBai7gy6NXc-1xo,9172
88
+ netbox_dns/utilities/__init__.py,sha256=dVPi1gAGaRum-aQYi0oLgagRYrTVQNY5bmi2Ig02cOo,1835
89
+ netbox_dns/utilities/ipam_coupling.py,sha256=6z1Fx8fhesf15gLTHYc0KVqE3_YhJbNPAjqFOvWlqK8,3441
90
+ netbox_dns/validators/__init__.py,sha256=5W8s31R1aT5B_mKJjTRwogEKj-Xun05iCyvRuYVGkdM,47
91
+ netbox_dns/validators/dns_name.py,sha256=bGThrQ7wBdPwwPmx4bHD2OEHBNnZ8XXFKCOLI_u5QW4,2097
92
+ netbox_dns/validators/rfc2317.py,sha256=L2Z-z5ghktFyWMLVZPeK8OEVGnQzbXD11fha2xGHM5E,501
93
+ netbox_dns/views/__init__.py,sha256=Aw8HrCTjaJfu5JSwJsQRHfOUz4zKwAmZNByT9q6BrFU,136
94
+ netbox_dns/views/contact.py,sha256=mBWM92UVjoz90JCUGO7kaFUI0_yA7tH4lSHxOZQB3MQ,2253
95
+ netbox_dns/views/nameserver.py,sha256=Sxl1h8v1W-uP0Qxz-Re0Ei1LgnWJuQGjI7ZaHS7qLeE,3011
96
+ netbox_dns/views/record.py,sha256=lx4OGwIAMUPdncGb_M2fBEzyvUYqtlh1h46YYgoOZIQ,4928
97
+ netbox_dns/views/registrar.py,sha256=NK6jTYRwRjaVjYmI7T4Phh_gjXg9yPrxl-7vciZ9doc,2090
98
+ netbox_dns/views/view.py,sha256=a3l6pybhqGb_RMxrRgFT1Gia9tRq8EmXFxPv9WUId0U,1913
99
+ netbox_dns/views/zone.py,sha256=EqkjXuX1xhkjDgaSNgFBvnA74IhuK_zDWlHPb3_4YKQ,4591
100
+ netbox_plugin_dns-1.0b1.dist-info/LICENSE,sha256=tziMJKpkMbySr09L6bIwsu7Ca9ICoqpMO3yAXgEMQA4,1076
101
+ netbox_plugin_dns-1.0b1.dist-info/METADATA,sha256=iEKHek34GRV1885L1kFDRAtKQn3GfWVwprqiHDZbacg,4460
102
+ netbox_plugin_dns-1.0b1.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
103
+ netbox_plugin_dns-1.0b1.dist-info/RECORD,,
@@ -1,18 +0,0 @@
1
- from django.db.models import Q
2
-
3
- from netbox.filtersets import NetBoxModelFilterSet
4
- from tenancy.filtersets import TenancyFilterSet
5
-
6
- from netbox_dns.models import NameServer
7
-
8
-
9
- class NameServerFilter(TenancyFilterSet, NetBoxModelFilterSet):
10
- class Meta:
11
- model = NameServer
12
- fields = ("id", "name", "tenant", "tag")
13
-
14
- def search(self, queryset, name, value):
15
- if not value.strip():
16
- return queryset
17
- qs_filter = Q(name__icontains=value)
18
- return queryset.filter(qs_filter)
@@ -1,112 +0,0 @@
1
- import django_filters
2
- from django.db.models import Q
3
-
4
- from netbox.filtersets import NetBoxModelFilterSet
5
- from tenancy.filtersets import TenancyFilterSet
6
-
7
- from netbox_dns.models import View, Zone, ZoneStatusChoices, Registrar, Contact
8
-
9
-
10
- class ZoneFilter(TenancyFilterSet, NetBoxModelFilterSet):
11
- status = django_filters.MultipleChoiceFilter(
12
- choices=ZoneStatusChoices,
13
- )
14
- view_id = django_filters.ModelMultipleChoiceFilter(
15
- queryset=View.objects.all(),
16
- label="View ID",
17
- )
18
- view = django_filters.ModelMultipleChoiceFilter(
19
- queryset=View.objects.all(),
20
- field_name="view__name",
21
- to_field_name="name",
22
- label="View",
23
- )
24
- registrar_id = django_filters.ModelMultipleChoiceFilter(
25
- queryset=Registrar.objects.all(),
26
- label="Registrar ID",
27
- )
28
- registrar = django_filters.ModelMultipleChoiceFilter(
29
- queryset=Registrar.objects.all(),
30
- field_name="registrar__name",
31
- to_field_name="name",
32
- label="Registrar",
33
- )
34
- registrant_id = django_filters.ModelMultipleChoiceFilter(
35
- queryset=Contact.objects.all(),
36
- label="Registrant ID",
37
- )
38
- registrant = django_filters.ModelMultipleChoiceFilter(
39
- queryset=Contact.objects.all(),
40
- field_name="registrant__contact_id",
41
- to_field_name="contact_id",
42
- label="Registrant",
43
- )
44
- admin_c_id = django_filters.ModelMultipleChoiceFilter(
45
- queryset=Contact.objects.all(),
46
- label="Administrative Contact ID",
47
- )
48
- admin_c = django_filters.ModelMultipleChoiceFilter(
49
- queryset=Contact.objects.all(),
50
- field_name="admin_c__contact_id",
51
- to_field_name="contact_id",
52
- label="Administrative Contact",
53
- )
54
- tech_c_id = django_filters.ModelMultipleChoiceFilter(
55
- queryset=Contact.objects.all(),
56
- label="Technical Contact ID",
57
- )
58
- tech_c = django_filters.ModelMultipleChoiceFilter(
59
- queryset=Contact.objects.all(),
60
- field_name="tech_c__contact_id",
61
- to_field_name="contact_id",
62
- label="Technical Contact",
63
- )
64
- billing_c_id = django_filters.ModelMultipleChoiceFilter(
65
- queryset=Contact.objects.all(),
66
- label="Billing Contact ID",
67
- )
68
- billing_c = django_filters.ModelMultipleChoiceFilter(
69
- queryset=Contact.objects.all(),
70
- field_name="billing_c__contact_id",
71
- to_field_name="contact_id",
72
- label="Billing Contact",
73
- )
74
-
75
- active = django_filters.BooleanFilter(
76
- label="Zone is active",
77
- )
78
-
79
- class Meta:
80
- model = Zone
81
- fields = (
82
- "id",
83
- "name",
84
- "view",
85
- "status",
86
- "nameservers",
87
- "registrar",
88
- "registry_domain_id",
89
- "registrant",
90
- "admin_c",
91
- "tech_c",
92
- "billing_c",
93
- "active",
94
- "tenant",
95
- )
96
-
97
- def search(self, queryset, name, value):
98
- """Perform the filtered search."""
99
- if not value.strip():
100
- return queryset
101
- qs_filter = (
102
- Q(name__icontains=value)
103
- | Q(status__icontains=value)
104
- | Q(view__name__icontains=value)
105
- | Q(registrar__name__icontains=value)
106
- | Q(registry_domain_id__icontains=value)
107
- | Q(registrant__name__icontains=value)
108
- | Q(admin_c__name__icontains=value)
109
- | Q(tech_c__name__icontains=value)
110
- | Q(billing_c__name__icontains=value)
111
- )
112
- return queryset.filter(qs_filter)
@@ -1,19 +0,0 @@
1
- from graphene import ObjectType
2
-
3
- from netbox.graphql.fields import ObjectField, ObjectListField
4
- from netbox.graphql.types import NetBoxObjectType
5
-
6
- from netbox_dns.models import Contact
7
- from netbox_dns.filters import ContactFilter
8
-
9
-
10
- class ContactType(NetBoxObjectType):
11
- class Meta:
12
- model = Contact
13
- fields = "__all__"
14
- filterset_class = ContactFilter
15
-
16
-
17
- class ContactQuery(ObjectType):
18
- contact = ObjectField(ContactType)
19
- contact_list = ObjectListField(ContactType)
@@ -1,19 +0,0 @@
1
- from graphene import ObjectType
2
-
3
- from netbox.graphql.fields import ObjectField, ObjectListField
4
- from netbox.graphql.types import NetBoxObjectType
5
-
6
- from netbox_dns.models import NameServer
7
- from netbox_dns.filters import NameServerFilter
8
-
9
-
10
- class NameServerType(NetBoxObjectType):
11
- class Meta:
12
- model = NameServer
13
- fields = "__all__"
14
- filterset_class = NameServerFilter
15
-
16
-
17
- class NameServerQuery(ObjectType):
18
- nameserver = ObjectField(NameServerType)
19
- nameserver_list = ObjectListField(NameServerType)
@@ -1,19 +0,0 @@
1
- from graphene import ObjectType
2
-
3
- from netbox.graphql.fields import ObjectField, ObjectListField
4
- from netbox.graphql.types import NetBoxObjectType
5
-
6
- from netbox_dns.models import Record
7
- from netbox_dns.filters import RecordFilter
8
-
9
-
10
- class RecordType(NetBoxObjectType):
11
- class Meta:
12
- model = Record
13
- fields = "__all__"
14
- filterset_class = RecordFilter
15
-
16
-
17
- class RecordQuery(ObjectType):
18
- record = ObjectField(RecordType)
19
- record_list = ObjectListField(RecordType)
@@ -1,19 +0,0 @@
1
- from graphene import ObjectType
2
-
3
- from netbox.graphql.fields import ObjectField, ObjectListField
4
- from netbox.graphql.types import NetBoxObjectType
5
-
6
- from netbox_dns.models import Registrar
7
- from netbox_dns.filters import RegistrarFilter
8
-
9
-
10
- class RegistrarType(NetBoxObjectType):
11
- class Meta:
12
- model = Registrar
13
- fields = "__all__"
14
- filterset_class = RegistrarFilter
15
-
16
-
17
- class RegistrarQuery(ObjectType):
18
- registrar = ObjectField(RegistrarType)
19
- registrar_list = ObjectListField(RegistrarType)
@@ -1,19 +0,0 @@
1
- from graphene import ObjectType
2
-
3
- from netbox.graphql.fields import ObjectField, ObjectListField
4
- from netbox.graphql.types import NetBoxObjectType
5
-
6
- from netbox_dns.models import View
7
- from netbox_dns.filters import ViewFilter
8
-
9
-
10
- class ViewType(NetBoxObjectType):
11
- class Meta:
12
- model = View
13
- fields = "__all__"
14
- filterset_class = ViewFilter
15
-
16
-
17
- class ViewQuery(ObjectType):
18
- view = ObjectField(ViewType)
19
- view_list = ObjectListField(ViewType)
@@ -1,19 +0,0 @@
1
- from graphene import ObjectType
2
-
3
- from netbox.graphql.fields import ObjectField, ObjectListField
4
- from netbox.graphql.types import NetBoxObjectType
5
-
6
- from netbox_dns.models import Zone
7
- from netbox_dns.filters import ZoneFilter
8
-
9
-
10
- class ZoneType(NetBoxObjectType):
11
- class Meta:
12
- model = Zone
13
- fields = "__all__"
14
- filterset_class = ZoneFilter
15
-
16
-
17
- class ZoneQuery(ObjectType):
18
- zone = ObjectField(ZoneType)
19
- zone_list = ObjectListField(ZoneType)
@@ -1,115 +0,0 @@
1
- # Generated by Django 3.2.5 on 2021-08-13 14:44
2
-
3
- import django.core.serializers.json
4
- from django.db import migrations, models
5
- import django.db.models.deletion
6
- import taggit.managers
7
-
8
-
9
- class Migration(migrations.Migration):
10
- initial = True
11
-
12
- dependencies = [
13
- ("extras", "0059_exporttemplate_as_attachment"),
14
- ]
15
-
16
- operations = [
17
- migrations.CreateModel(
18
- name="NameServer",
19
- fields=[
20
- ("created", models.DateField(auto_now_add=True, null=True)),
21
- ("last_updated", models.DateTimeField(auto_now=True, null=True)),
22
- (
23
- "custom_field_data",
24
- models.JSONField(
25
- blank=True,
26
- default=dict,
27
- encoder=django.core.serializers.json.DjangoJSONEncoder,
28
- ),
29
- ),
30
- ("id", models.BigAutoField(primary_key=True, serialize=False)),
31
- ("name", models.CharField(max_length=255, unique=True)),
32
- (
33
- "tags",
34
- taggit.managers.TaggableManager(
35
- through="extras.TaggedItem", to="extras.Tag"
36
- ),
37
- ),
38
- ],
39
- options={
40
- "ordering": ("name", "id"),
41
- },
42
- ),
43
- migrations.CreateModel(
44
- name="Zone",
45
- fields=[
46
- ("created", models.DateField(auto_now_add=True, null=True)),
47
- ("last_updated", models.DateTimeField(auto_now=True, null=True)),
48
- (
49
- "custom_field_data",
50
- models.JSONField(
51
- blank=True,
52
- default=dict,
53
- encoder=django.core.serializers.json.DjangoJSONEncoder,
54
- ),
55
- ),
56
- ("id", models.BigAutoField(primary_key=True, serialize=False)),
57
- ("name", models.CharField(max_length=255, unique=True)),
58
- (
59
- "status",
60
- models.CharField(blank=True, default="active", max_length=50),
61
- ),
62
- (
63
- "nameservers",
64
- models.ManyToManyField(
65
- blank=True, related_name="zones", to="netbox_dns.NameServer"
66
- ),
67
- ),
68
- (
69
- "tags",
70
- taggit.managers.TaggableManager(
71
- blank=True, through="extras.TaggedItem", to="extras.Tag"
72
- ),
73
- ),
74
- ],
75
- options={
76
- "ordering": ("name", "id"),
77
- },
78
- ),
79
- migrations.CreateModel(
80
- name="Record",
81
- fields=[
82
- ("created", models.DateField(auto_now_add=True, null=True)),
83
- ("last_updated", models.DateTimeField(auto_now=True, null=True)),
84
- (
85
- "custom_field_data",
86
- models.JSONField(
87
- blank=True,
88
- default=dict,
89
- encoder=django.core.serializers.json.DjangoJSONEncoder,
90
- ),
91
- ),
92
- ("id", models.BigAutoField(primary_key=True, serialize=False)),
93
- ("type", models.CharField(max_length=10)),
94
- ("name", models.CharField(max_length=255)),
95
- ("value", models.CharField(max_length=1000)),
96
- ("ttl", models.PositiveIntegerField()),
97
- (
98
- "tags",
99
- taggit.managers.TaggableManager(
100
- through="extras.TaggedItem", to="extras.Tag"
101
- ),
102
- ),
103
- (
104
- "zone",
105
- models.ForeignKey(
106
- on_delete=django.db.models.deletion.CASCADE,
107
- to="netbox_dns.zone",
108
- ),
109
- ),
110
- ],
111
- options={
112
- "ordering": ("name", "id"),
113
- },
114
- ),
115
- ]
@@ -1,18 +0,0 @@
1
- # Generated by Django 3.2.8 on 2021-10-20 11:06
2
-
3
- from django.db import migrations, models
4
-
5
-
6
- class Migration(migrations.Migration):
7
- dependencies = [
8
- ("netbox_dns", "0001_initial"),
9
- ]
10
-
11
- operations = [
12
- migrations.AddField(
13
- model_name="zone",
14
- name="default_ttl",
15
- field=models.PositiveIntegerField(blank=True, default=86400),
16
- preserve_default=False,
17
- ),
18
- ]