netbox-plugin-dns 1.2.1__py3-none-any.whl → 1.2.2__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 CHANGED
@@ -7,7 +7,7 @@ from ipam.choices import IPAddressStatusChoices
7
7
 
8
8
  from netbox_dns.choices import RecordTypeChoices, RecordStatusChoices, ZoneStatusChoices
9
9
 
10
- __version__ = "1.2.1"
10
+ __version__ = "1.2.2"
11
11
 
12
12
 
13
13
  def _check_list(setting):
@@ -36,6 +36,7 @@ class DNSConfig(PluginConfig):
36
36
  ZoneStatusChoices.STATUS_ACTIVE,
37
37
  ZoneStatusChoices.STATUS_DYNAMIC,
38
38
  ],
39
+ "filter_record_types": [],
39
40
  "record_active_status": [
40
41
  RecordStatusChoices.STATUS_ACTIVE,
41
42
  ],
@@ -1,24 +1,44 @@
1
1
  from dns import rdatatype, rdataclass
2
2
 
3
3
  from django.utils.translation import gettext_lazy as _
4
+ from django.core.exceptions import ImproperlyConfigured
4
5
 
6
+ from netbox.plugins.utils import get_plugin_config
5
7
  from utilities.choices import ChoiceSet
6
8
 
7
9
 
8
- def initialize_choice_names(cls):
9
- for choice in cls.CHOICES:
10
- setattr(cls, choice[0], choice[0])
11
- return cls
12
-
13
-
14
10
  __all__ = (
15
11
  "RecordTypeChoices",
12
+ "RecordSelectableTypeChoices",
16
13
  "RecordClassChoices",
17
14
  "RecordStatusChoices",
18
15
  )
19
16
 
20
17
 
21
- @initialize_choice_names
18
+ def define_choice_attributes(filter_name=None):
19
+ try:
20
+ if filter_name is not None:
21
+ filter_choices = get_plugin_config("netbox_dns", filter_name, [])
22
+ else:
23
+ filter_choices = []
24
+ except ImproperlyConfigured:
25
+ filter_choices = []
26
+
27
+ def decorator(cls):
28
+ choices = []
29
+ for choice in cls._choices:
30
+ if choice[0] not in filter_choices:
31
+ setattr(cls, choice[0], choice[0])
32
+ choices.append(choice)
33
+ cls._choices = choices
34
+ cls.CHOICES = choices
35
+
36
+ return cls
37
+
38
+ return decorator
39
+
40
+
41
+ @define_choice_attributes()
22
42
  class RecordTypeChoices(ChoiceSet):
23
43
  CHOICES = [
24
44
  (rdtype.name, rdtype.name)
@@ -30,7 +50,16 @@ class RecordTypeChoices(ChoiceSet):
30
50
  ]
31
51
 
32
52
 
33
- @initialize_choice_names
53
+ @define_choice_attributes(filter_name="filter_record_types")
54
+ class RecordSelectableTypeChoices(ChoiceSet):
55
+ CHOICES = [
56
+ (rdtype.name, rdtype.name)
57
+ for rdtype in sorted(rdatatype.RdataType, key=lambda a: a.name)
58
+ if not rdatatype.is_metatype(rdtype)
59
+ ]
60
+
61
+
62
+ @define_choice_attributes()
34
63
  class RecordClassChoices(ChoiceSet):
35
64
  CHOICES = [
36
65
  (rdclass.name, rdclass.name)
@@ -21,7 +21,7 @@ from tenancy.models import Tenant, TenantGroup
21
21
  from tenancy.forms import TenancyForm, TenancyFilterForm
22
22
 
23
23
  from netbox_dns.models import View, Zone, Record
24
- from netbox_dns.choices import RecordTypeChoices, RecordStatusChoices
24
+ from netbox_dns.choices import RecordSelectableTypeChoices, RecordStatusChoices
25
25
  from netbox_dns.utilities import name_to_unicode
26
26
 
27
27
 
@@ -57,6 +57,11 @@ class RecordForm(TenancyForm, NetBoxModelForm):
57
57
  },
58
58
  label=_("Zone"),
59
59
  )
60
+ type = forms.ChoiceField(
61
+ choices=add_blank_choice(RecordSelectableTypeChoices),
62
+ required=True,
63
+ label=_("Type"),
64
+ )
60
65
 
61
66
  disable_ptr = forms.BooleanField(
62
67
  required=False,
@@ -123,7 +128,7 @@ class RecordFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
123
128
  )
124
129
 
125
130
  type = forms.MultipleChoiceField(
126
- choices=RecordTypeChoices,
131
+ choices=RecordSelectableTypeChoices,
127
132
  required=False,
128
133
  label=_("Type"),
129
134
  )
@@ -210,7 +215,7 @@ class RecordImportForm(NetBoxModelImportForm):
210
215
  help_text=_("This field is required if the zone is not in the default view"),
211
216
  )
212
217
  type = CSVChoiceField(
213
- choices=RecordTypeChoices,
218
+ choices=RecordSelectableTypeChoices,
214
219
  required=True,
215
220
  label=_("Type"),
216
221
  )
@@ -268,7 +273,7 @@ class RecordBulkEditForm(NetBoxModelBulkEditForm):
268
273
  label=_("Zone"),
269
274
  )
270
275
  type = forms.ChoiceField(
271
- choices=add_blank_choice(RecordTypeChoices),
276
+ choices=add_blank_choice(RecordSelectableTypeChoices),
272
277
  required=False,
273
278
  label=_("Type"),
274
279
  )
@@ -21,7 +21,7 @@ from tenancy.models import Tenant, TenantGroup
21
21
  from tenancy.forms import TenancyForm, TenancyFilterForm
22
22
 
23
23
  from netbox_dns.models import RecordTemplate, ZoneTemplate
24
- from netbox_dns.choices import RecordTypeChoices, RecordStatusChoices
24
+ from netbox_dns.choices import RecordSelectableTypeChoices, RecordStatusChoices
25
25
  from netbox_dns.utilities import name_to_unicode
26
26
 
27
27
 
@@ -41,6 +41,11 @@ class RecordTemplateForm(TenancyForm, NetBoxModelForm):
41
41
  if initial_record_name:
42
42
  self.initial["record_name"] = name_to_unicode(initial_record_name)
43
43
 
44
+ type = forms.ChoiceField(
45
+ choices=add_blank_choice(RecordSelectableTypeChoices),
46
+ required=True,
47
+ label=_("Type"),
48
+ )
44
49
  disable_ptr = forms.BooleanField(
45
50
  required=False,
46
51
  label=_("Disable PTR"),
@@ -103,7 +108,7 @@ class RecordTemplateFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
103
108
  )
104
109
 
105
110
  type = forms.MultipleChoiceField(
106
- choices=RecordTypeChoices,
111
+ choices=RecordSelectableTypeChoices,
107
112
  required=False,
108
113
  label=_("Type"),
109
114
  )
@@ -142,7 +147,7 @@ class RecordTemplateFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
142
147
 
143
148
  class RecordTemplateImportForm(NetBoxModelImportForm):
144
149
  type = CSVChoiceField(
145
- choices=RecordTypeChoices,
150
+ choices=RecordSelectableTypeChoices,
146
151
  required=True,
147
152
  label=_("Type"),
148
153
  )
@@ -187,7 +192,7 @@ class RecordTemplateBulkEditForm(NetBoxModelBulkEditForm):
187
192
  model = RecordTemplate
188
193
 
189
194
  type = forms.ChoiceField(
190
- choices=add_blank_choice(RecordTypeChoices),
195
+ choices=add_blank_choice(RecordSelectableTypeChoices),
191
196
  required=False,
192
197
  label=_("Type"),
193
198
  )
@@ -50,6 +50,7 @@ class NameServer(ObjectModificationMixin, ContactsMixin, NetBoxModel):
50
50
  clone_fields = (
51
51
  "name",
52
52
  "description",
53
+ "tenant",
53
54
  )
54
55
 
55
56
  class Meta:
@@ -227,6 +227,7 @@ class Record(ObjectModificationMixin, ContactsMixin, NetBoxModel):
227
227
  "ttl",
228
228
  "disable_ptr",
229
229
  "description",
230
+ "tenant",
230
231
  )
231
232
 
232
233
  class Meta:
netbox_dns/models/view.py CHANGED
@@ -64,6 +64,7 @@ class View(ObjectModificationMixin, ContactsMixin, NetBoxModel):
64
64
  clone_fields = (
65
65
  "name",
66
66
  "description",
67
+ "tenant",
67
68
  )
68
69
 
69
70
  @classmethod
netbox_dns/models/zone.py CHANGED
@@ -271,6 +271,7 @@ class Zone(ObjectModificationMixin, ContactsMixin, NetBoxModel):
271
271
  "soa_expire",
272
272
  "soa_minimum",
273
273
  "description",
274
+ "tenant",
274
275
  )
275
276
 
276
277
  class Meta:
@@ -1,6 +1,8 @@
1
1
  {% extends 'netbox_dns/zone/base.html' %}
2
2
  {% load helpers %}
3
3
  {% load i18n %}
4
+ {% load netbox_dns %}
5
+ {% load tz %}
4
6
 
5
7
  {% block content %}
6
8
  <div class="row">
@@ -118,7 +120,14 @@
118
120
  {% if object.soa_serial_auto %}
119
121
  <tr>
120
122
  <th scope="row">{% trans "Serial (auto-generated)" %}</th>
121
- <td>{{ object.soa_serial }}</td>
123
+ <td>
124
+ <table style="width: 100%;">
125
+ <tr>
126
+ <td>{{ object.soa_serial }}</td>
127
+ <td align="right" class="text-muted">{{ object.soa_serial|epoch_to_utc|isodatetime }}</td>
128
+ </tr>
129
+ </table>
130
+ </td>
122
131
  </tr>
123
132
  {% else %}
124
133
  <tr>
File without changes
@@ -0,0 +1,10 @@
1
+ from datetime import datetime, timezone
2
+
3
+ from django import template
4
+
5
+ register = template.Library()
6
+
7
+
8
+ @register.filter(name="epoch_to_utc")
9
+ def epoch_to_utc(epoch):
10
+ return datetime.fromtimestamp(epoch, tz=timezone.utc)
@@ -28,7 +28,7 @@ def _get_label(tolerate_leading_underscores=False, always_tolerant=False):
28
28
 
29
29
  tolerate_underscores = get_plugin_config(
30
30
  "netbox_dns", "tolerate_underscores_in_labels"
31
- ) or get_plugin_config("netbox_dns", "tolerate_underscores_in_hostnames")
31
+ )
32
32
 
33
33
  if tolerate_leading_underscores:
34
34
  if tolerate_underscores:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: netbox-plugin-dns
3
- Version: 1.2.1
3
+ Version: 1.2.2
4
4
  Summary: NetBox DNS is a NetBox plugin for managing DNS data.
5
5
  Author-email: Peter Eckel <pete@netbox-dns.org>
6
6
  Project-URL: Homepage, https://github.com/peteeckel/netbox-plugin-dns
@@ -66,9 +66,19 @@ For integration with a large number of DNS server implementations integration to
66
66
 
67
67
  ## Requirements
68
68
 
69
- * NetBox 4.0.0 or higher
69
+ * NetBox 4.2.0 or higher
70
70
  * Python 3.10 or higher
71
71
 
72
+ ## Compatibility with earlier NetBox Versions
73
+
74
+ NetBox Version | NetBox DNS Version | Comment
75
+ -------------- | ------------------ | -------
76
+ 3.5 | 0.22 |
77
+ 3.6 | 0.22 |
78
+ 3.7 | 0.22 |
79
+ 4.0 - 4.1 | 1.0 | Supports legacy IPAM Coupling
80
+ 4.0 - 4.1 | 1.1 | Supports IPAM DNSsync
81
+
72
82
  ## Installation & Configuration
73
83
 
74
84
  ### Installation
@@ -1,4 +1,4 @@
1
- netbox_dns/__init__.py,sha256=y1gmAAuUkeTAfa-FMptZlEVfTPn-5U2YC_Mre2RV1pE,3018
1
+ netbox_dns/__init__.py,sha256=WLiNzOodcLZS1ifW8vje3J16M5o4dDYyPmtG8GcMbpY,3053
2
2
  netbox_dns/apps.py,sha256=JCW5eS-AQBUubDJve1DjP-IRFKTFGQh1NLGWzJpC5MI,151
3
3
  netbox_dns/navigation.py,sha256=36clAzlWftW94_VZ3EHu8_btzzA_dah50CLTfoov-O4,6226
4
4
  netbox_dns/template_content.py,sha256=T06L7-m4eGrLMeGsCvPpQLAGfn3S2FL7z0Cd1hhbisY,4225
@@ -18,7 +18,7 @@ netbox_dns/api/serializers_/view.py,sha256=nnWeQugoqMdn-NGGC7ykbVPwmBrcBma_ZKwdD
18
18
  netbox_dns/api/serializers_/zone.py,sha256=ELAis8nj9PZlge6zqTQ23P0vC4IJBDa3hh5kZ9T8G_4,5003
19
19
  netbox_dns/api/serializers_/zone_template.py,sha256=w0TsrqS_DgIIAUozCC-gc9lsQ67lpVkvbyphyuRzq6Q,3847
20
20
  netbox_dns/choices/__init__.py,sha256=jOVs2VGV5SVADRlqVnrFeAy26i8BIeEAbGpiX7K8bL8,42
21
- netbox_dns/choices/record.py,sha256=wFS44WRyUwiN2ocx-A8ZzVXKpaD9Thb0MrOiMHiqNzU,1175
21
+ netbox_dns/choices/record.py,sha256=ZSpyiZE2YCsF2wF53A5DFWgwCIhkFhgOKt__RJ0KxSk,2084
22
22
  netbox_dns/choices/zone.py,sha256=Vblm5RUtNtPNkULh8U1NxBMme1iHPllD6B6LkQkWZW4,621
23
23
  netbox_dns/fields/__init__.py,sha256=U1nbFIwwtvr10pp3Sk91jEZeWkVQBSJtr0BVWYgOfiA,89
24
24
  netbox_dns/fields/address.py,sha256=qNLHmpwwJ3TevljG1QsUr_f2h6NrPsK6wr-R-Ti8eZI,1262
@@ -36,8 +36,8 @@ netbox_dns/filtersets/zone.py,sha256=zl39SOiYIZxAi3G1wx0s9UEIgh8hG9Bdb46qIXLwMr8
36
36
  netbox_dns/filtersets/zone_template.py,sha256=Sm40P33IhN0sOqtjz4JzoBbEK-dTLpfQqYGcM_Xb7KM,3870
37
37
  netbox_dns/forms/__init__.py,sha256=axENVF9vX9BtDKCNxrapRjye1NnygUg9BS0BBj6a0io,209
38
38
  netbox_dns/forms/nameserver.py,sha256=GJe3ece4yIGwMtLZ6wQihBrJu1dk_ZSiwX-vSU0fRa0,3397
39
- netbox_dns/forms/record.py,sha256=KctB0Qm62j3FKYj9gqzxEtQypwxpIhnJz4JnxejoI7o,8065
40
- netbox_dns/forms/record_template.py,sha256=iGlBOOsjkXnyLuRyA5DzSXe4syosxzgdWuACtmDq1Vs,6053
39
+ netbox_dns/forms/record.py,sha256=QNGLqWprhsGFTSlH2YAe-SHmCx1K1QbT_osAhCegyJg,8252
40
+ netbox_dns/forms/record_template.py,sha256=uN6ZSepNilQuqyfPpW-pMfmTRWo0IrDxp1LdOrlAo5A,6240
41
41
  netbox_dns/forms/registrar.py,sha256=GaRH3w5zlhrpwy_U0pxlrl1DrAEaMB78MUlnGxBRwZI,3949
42
42
  netbox_dns/forms/registration_contact.py,sha256=IhNAqElY7hOdpDG0jwWMdy3y2mB43xmjUhj3lsgJ3SE,5906
43
43
  netbox_dns/forms/view.py,sha256=GacwKHXSDvxQEs-d3ys7rietqA_MzpSd0XjWaSsIbU0,10339
@@ -81,13 +81,13 @@ netbox_dns/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3h
81
81
  netbox_dns/mixins/__init__.py,sha256=LxTEfpod_RHCyMtnzDljv0_dwqp2z3Q6tqbXW8LTGD8,35
82
82
  netbox_dns/mixins/object_modification.py,sha256=AR64fU5f7g-scNAj9b54eSoS9dpjyOpqrxXVXPcOhY8,1807
83
83
  netbox_dns/models/__init__.py,sha256=5Ns9RaemTe5L0L3c6a38RxembWhV-sX9cqfjl05aPQw,313
84
- netbox_dns/models/nameserver.py,sha256=RmUubF05_K1GMOM7e_geoxXIrS8Xbs1al_xsfwmfd0Q,3389
85
- netbox_dns/models/record.py,sha256=tRzkjdiGIPulzlulQdzEZetObOL_9mhIunZREux6pDg,29397
84
+ netbox_dns/models/nameserver.py,sha256=GKCWPKqg8WLVQS6UYRUyTdVb_865p2io06yYp5Z9b80,3407
85
+ netbox_dns/models/record.py,sha256=7LCLc3mLbgHx5yCMzIItQTB5Jzg8P-1uWGhfYeGpN4U,29415
86
86
  netbox_dns/models/record_template.py,sha256=PC4369q_LIJkImp1_jhiTTwy083MXIGpGADnbDHMbqI,5104
87
87
  netbox_dns/models/registrar.py,sha256=bjgYgeUtWGg_seDRN1-VV4Pe450ZK85lbALo4J_Zuic,1890
88
88
  netbox_dns/models/registration_contact.py,sha256=AkpNy9KbFV9YrISdepqZA1ZfckZSA9u_vfPUAf5Z4H8,3773
89
- netbox_dns/models/view.py,sha256=SbBsP-WYrJXBJG65PMmXE61uo0VvdLXPOuG1VxWziEs,4738
90
- netbox_dns/models/zone.py,sha256=iPjiZRpuxeFXqYDINBcjWYQTyJHjRk5UCs9Ap69HZG8,32249
89
+ netbox_dns/models/view.py,sha256=1OGbol3Ekg1G7c6kPRLwTaLW_ugzNozewnaN2SpyOqc,4756
90
+ netbox_dns/models/zone.py,sha256=gq2gnF_ykzZ9kLtiHSm1Lwku-uWU_iFv-0HPlH54JzI,32267
91
91
  netbox_dns/models/zone_template.py,sha256=kH16CdFk7OpjSiKfJb3bsBi--Shp2V1Fd7jVRJtbl_4,3945
92
92
  netbox_dns/signals/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
93
93
  netbox_dns/signals/ipam_dnssync.py,sha256=1zhlf4cMcJLlFosX7YzyqVYdFFHV4MFwTz5KCdL8xQc,7730
@@ -107,7 +107,7 @@ netbox_dns/templates/netbox_dns/recordtemplate.html,sha256=jQB42mBNlSt-Tq_uQFIyy
107
107
  netbox_dns/templates/netbox_dns/registrar.html,sha256=4kJuj3biiDxQrIMQEQUEmF4iGRE4psr6Fh0CBP1evz8,2308
108
108
  netbox_dns/templates/netbox_dns/registrationcontact.html,sha256=sljVp_MrPSJRc2vJCPFXq9MiWOw4wjbr1kI_YStBntw,3094
109
109
  netbox_dns/templates/netbox_dns/view.html,sha256=TslfDC0ZzGU59iO_OcaX8jvt6fTjWot-wYRqRGRYvLE,3245
110
- netbox_dns/templates/netbox_dns/zone.html,sha256=9tMvBuZ0hyAIHJB4-tbKmLLHAJ00OzQIIvajqn3uu5s,6619
110
+ netbox_dns/templates/netbox_dns/zone.html,sha256=BushtUbicj9zK6s50LKiaJhs25J0JY3-QHYCnUu8fKY,6991
111
111
  netbox_dns/templates/netbox_dns/zonetemplate.html,sha256=z_VJEkf_yNjL9xoVMHG4VHQvuXwBSarA_SoPbjutBgA,3667
112
112
  netbox_dns/templates/netbox_dns/record/managed.html,sha256=uwpxQTxyfAXkWqThLT-T2ZssKNUhXTDDMnLWJSVuDNU,119
113
113
  netbox_dns/templates/netbox_dns/record/related.html,sha256=R59aPhE4CyIZtTH0ncwDyS6_wAe_Y-oZjuN_j4qk8iA,1158
@@ -122,12 +122,14 @@ netbox_dns/templates/netbox_dns/zone/managed_record.html,sha256=LOchMAJyfMZIICE6
122
122
  netbox_dns/templates/netbox_dns/zone/record.html,sha256=Y_gg9EUIqjSYxmIZKufAK8jyg9A54J-BoewNxUBoO1Y,2238
123
123
  netbox_dns/templates/netbox_dns/zone/registration.html,sha256=PqniHrO-LnXstIKyjn3fJk69ysjfrrt3U4kZAJqidXI,1265
124
124
  netbox_dns/templates/netbox_dns/zone/rfc2317_child_zone.html,sha256=rWlmb3zRQbLYQ_1dsa0twwu6y1dRj2tfFVEERH07p-s,517
125
+ netbox_dns/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
126
+ netbox_dns/templatetags/netbox_dns.py,sha256=DND1DMPzv636Rak3M6Hor_Vw6pjqUfSTquofIw4dIsA,223
125
127
  netbox_dns/utilities/__init__.py,sha256=cSGf-nGaRWx9b-Xrh3dLMJYoWNsZ6FF-qdmV4F1uOgg,74
126
128
  netbox_dns/utilities/conversions.py,sha256=NS37SoMqXc13wNWRkKnLfyQbVi6QKD33fu5ovTKRo74,1979
127
129
  netbox_dns/utilities/dns.py,sha256=QKST49UkCw7n2GyrN3wU5ap6Cw98t1SZxFYJlyG2x70,315
128
130
  netbox_dns/utilities/ipam_dnssync.py,sha256=tFphPVluDUS3-4NsUW1_D1dDksA3AgIozf7JAoTIE_w,9533
129
131
  netbox_dns/validators/__init__.py,sha256=Mr8TvmcJTa8Pubj8TzbFBKfbHhEmGcr5JdQvczEJ39A,72
130
- netbox_dns/validators/dns_name.py,sha256=D2SVUHkDAdENspDTzvW4qeWdKC_2KcueqNioqgoHrfA,3628
132
+ netbox_dns/validators/dns_name.py,sha256=XC8yv_PeInKtya8FyPnzmazSe7BJcPw_2iK3A5A3ws0,3556
131
133
  netbox_dns/validators/dns_value.py,sha256=-mc62mth-hlbPUPe_RlCR7vo1KSD6_gQDXiE8rjB-Cc,5206
132
134
  netbox_dns/validators/rfc2317.py,sha256=uKkwxpakiFFKdYA0qy8WSlEnbFwJD4MDw6gGV4F6skg,706
133
135
  netbox_dns/views/__init__.py,sha256=axENVF9vX9BtDKCNxrapRjye1NnygUg9BS0BBj6a0io,209
@@ -139,8 +141,8 @@ netbox_dns/views/registration_contact.py,sha256=u__0w4Nm1_5lnAeFXfTY-cD86facWxIo
139
141
  netbox_dns/views/view.py,sha256=a6-wdMyTWoZekiR2VnM3VNSOjX-8L3Qjqqi973UobAA,3391
140
142
  netbox_dns/views/zone.py,sha256=H7UPN4T_sn_3ijvXi7t8iteJFs6qqEtVzhvchKOOzCM,7133
141
143
  netbox_dns/views/zone_template.py,sha256=vNXG96D6uZJo4KRdsgsTL3d9JzRtiDJg4_h4_3gjAfk,2667
142
- netbox_plugin_dns-1.2.1.dist-info/LICENSE,sha256=I3tDu11bZfhFm3EkV4zOD5TmWgLjnUNLEFwrdjniZYs,1112
143
- netbox_plugin_dns-1.2.1.dist-info/METADATA,sha256=GAb1unCGj5FYGlaPyeTAVUCP4Bs5BWw90ndmMzaCOeQ,7223
144
- netbox_plugin_dns-1.2.1.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
145
- netbox_plugin_dns-1.2.1.dist-info/top_level.txt,sha256=sA1Rwl1mRKvMC6XHe2ylZ1GF-Q1NGd08XedK9Y4xZc4,11
146
- netbox_plugin_dns-1.2.1.dist-info/RECORD,,
144
+ netbox_plugin_dns-1.2.2.dist-info/LICENSE,sha256=I3tDu11bZfhFm3EkV4zOD5TmWgLjnUNLEFwrdjniZYs,1112
145
+ netbox_plugin_dns-1.2.2.dist-info/METADATA,sha256=Ef4CV4H2DEOAvT4lQAGFJ21ik_nfeRwEJmFFKXwwmMs,7605
146
+ netbox_plugin_dns-1.2.2.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
147
+ netbox_plugin_dns-1.2.2.dist-info/top_level.txt,sha256=sA1Rwl1mRKvMC6XHe2ylZ1GF-Q1NGd08XedK9Y4xZc4,11
148
+ netbox_plugin_dns-1.2.2.dist-info/RECORD,,