Skip to content

Commit 4208b79

Browse files
committed
Closes #12320: Remove obsolete fields napalm_driver and napalm_args from Platform
1 parent 02db0bc commit 4208b79

File tree

13 files changed

+40
-61
lines changed

13 files changed

+40
-61
lines changed

docs/release-notes/version-3.6.md

+5
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@
22

33
## v3.6.0 (FUTURE)
44

5+
### Breaking Changes
6+
7+
* The `napalm_driver` and `napalm_args` fields (which were deprecated in v3.5) have been removed from the platform model.
8+
59
### Other Changes
610

711
* [#11766](https://github.com/netbox-community/netbox/issues/11766) - Remove obsolete custom `ChoiceField` and `MultipleChoiceField` classes
12+
* [#12320](https://github.com/netbox-community/netbox/issues/12320) - Remove obsolete fields `napalm_driver` and `napalm_args` from Platform

netbox/dcim/api/serializers.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -635,8 +635,8 @@ class PlatformSerializer(NetBoxModelSerializer):
635635
class Meta:
636636
model = Platform
637637
fields = [
638-
'id', 'url', 'display', 'name', 'slug', 'manufacturer', 'config_template', 'napalm_driver', 'napalm_args',
639-
'description', 'tags', 'custom_fields', 'created', 'last_updated', 'device_count', 'virtualmachine_count',
638+
'id', 'url', 'display', 'name', 'slug', 'manufacturer', 'config_template', 'description', 'tags',
639+
'custom_fields', 'created', 'last_updated', 'device_count', 'virtualmachine_count',
640640
]
641641

642642

netbox/dcim/filtersets.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -811,7 +811,7 @@ class PlatformFilterSet(OrganizationalModelFilterSet):
811811

812812
class Meta:
813813
model = Platform
814-
fields = ['id', 'name', 'slug', 'napalm_driver', 'description']
814+
fields = ['id', 'name', 'slug', 'description']
815815

816816

817817
class DeviceFilterSet(NetBoxModelFilterSet, TenancyFilterSet, ContactModelFilterSet, LocalConfigContextFilterSet):

netbox/dcim/forms/bulk_edit.py

+2-6
Original file line numberDiff line numberDiff line change
@@ -471,10 +471,6 @@ class PlatformBulkEditForm(NetBoxModelBulkEditForm):
471471
queryset=Manufacturer.objects.all(),
472472
required=False
473473
)
474-
napalm_driver = forms.CharField(
475-
max_length=50,
476-
required=False
477-
)
478474
config_template = DynamicModelChoiceField(
479475
queryset=ConfigTemplate.objects.all(),
480476
required=False
@@ -486,9 +482,9 @@ class PlatformBulkEditForm(NetBoxModelBulkEditForm):
486482

487483
model = Platform
488484
fieldsets = (
489-
(None, ('manufacturer', 'config_template', 'napalm_driver', 'description')),
485+
(None, ('manufacturer', 'config_template', 'description')),
490486
)
491-
nullable_fields = ('manufacturer', 'config_template', 'napalm_driver', 'description')
487+
nullable_fields = ('manufacturer', 'config_template', 'description')
492488

493489

494490
class DeviceBulkEditForm(NetBoxModelBulkEditForm):

netbox/dcim/forms/bulk_import.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -365,7 +365,7 @@ class PlatformImportForm(NetBoxModelImportForm):
365365
class Meta:
366366
model = Platform
367367
fields = (
368-
'name', 'slug', 'manufacturer', 'config_template', 'napalm_driver', 'napalm_args', 'description', 'tags',
368+
'name', 'slug', 'manufacturer', 'config_template', 'description', 'tags',
369369
)
370370

371371

netbox/dcim/forms/model_forms.py

+2-7
Original file line numberDiff line numberDiff line change
@@ -360,19 +360,14 @@ class PlatformForm(NetBoxModelForm):
360360
)
361361

362362
fieldsets = (
363-
('Platform', (
364-
'name', 'slug', 'manufacturer', 'config_template', 'napalm_driver', 'napalm_args', 'description', 'tags',
365-
)),
363+
('Platform', ('name', 'slug', 'manufacturer', 'config_template', 'description', 'tags')),
366364
)
367365

368366
class Meta:
369367
model = Platform
370368
fields = [
371-
'name', 'slug', 'manufacturer', 'config_template', 'napalm_driver', 'napalm_args', 'description', 'tags',
369+
'name', 'slug', 'manufacturer', 'config_template', 'description', 'tags',
372370
]
373-
widgets = {
374-
'napalm_args': forms.Textarea(),
375-
}
376371

377372

378373
class DeviceForm(TenancyForm, NetBoxModelForm):
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
from django.db import migrations
2+
3+
4+
class Migration(migrations.Migration):
5+
6+
dependencies = [
7+
('dcim', '0172_larger_power_draw_values'),
8+
]
9+
10+
operations = [
11+
migrations.RemoveField(
12+
model_name='platform',
13+
name='napalm_args',
14+
),
15+
migrations.RemoveField(
16+
model_name='platform',
17+
name='napalm_driver',
18+
),
19+
]

netbox/dcim/models/devices.py

+2-15
Original file line numberDiff line numberDiff line change
@@ -432,9 +432,8 @@ def get_absolute_url(self):
432432

433433
class Platform(OrganizationalModel):
434434
"""
435-
Platform refers to the software or firmware running on a Device. For example, "Cisco IOS-XR" or "Juniper Junos".
436-
NetBox uses Platforms to determine how to interact with devices when pulling inventory data or other information by
437-
specifying a NAPALM driver.
435+
Platform refers to the software or firmware running on a Device. For example, "Cisco IOS-XR" or "Juniper Junos". A
436+
Platform may optionally be associated with a particular Manufacturer.
438437
"""
439438
manufacturer = models.ForeignKey(
440439
to='dcim.Manufacturer',
@@ -451,18 +450,6 @@ class Platform(OrganizationalModel):
451450
blank=True,
452451
null=True
453452
)
454-
napalm_driver = models.CharField(
455-
max_length=50,
456-
blank=True,
457-
verbose_name='NAPALM driver',
458-
help_text=_('The name of the NAPALM driver to use when interacting with devices')
459-
)
460-
napalm_args = models.JSONField(
461-
blank=True,
462-
null=True,
463-
verbose_name='NAPALM arguments',
464-
help_text=_('Additional arguments to pass when initiating the NAPALM driver (JSON format)')
465-
)
466453

467454
def get_absolute_url(self):
468455
return reverse('dcim:platform', args=[self.pk])

netbox/dcim/search.py

-1
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,6 @@ class PlatformIndex(SearchIndex):
172172
fields = (
173173
('name', 100),
174174
('slug', 110),
175-
('napalm_driver', 300),
176175
('description', 500),
177176
)
178177

netbox/dcim/tables/devices.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -137,11 +137,11 @@ class PlatformTable(NetBoxTable):
137137
class Meta(NetBoxTable.Meta):
138138
model = models.Platform
139139
fields = (
140-
'pk', 'id', 'name', 'manufacturer', 'device_count', 'vm_count', 'slug', 'config_template', 'napalm_driver',
141-
'napalm_args', 'description', 'tags', 'actions', 'created', 'last_updated',
140+
'pk', 'id', 'name', 'manufacturer', 'device_count', 'vm_count', 'slug', 'config_template', 'description',
141+
'tags', 'actions', 'created', 'last_updated',
142142
)
143143
default_columns = (
144-
'pk', 'name', 'manufacturer', 'device_count', 'vm_count', 'napalm_driver', 'description',
144+
'pk', 'name', 'manufacturer', 'device_count', 'vm_count', 'description',
145145
)
146146

147147

netbox/dcim/tests/test_filtersets.py

+3-7
Original file line numberDiff line numberDiff line change
@@ -1498,9 +1498,9 @@ def setUpTestData(cls):
14981498
Manufacturer.objects.bulk_create(manufacturers)
14991499

15001500
platforms = (
1501-
Platform(name='Platform 1', slug='platform-1', manufacturer=manufacturers[0], napalm_driver='driver-1', description='A'),
1502-
Platform(name='Platform 2', slug='platform-2', manufacturer=manufacturers[1], napalm_driver='driver-2', description='B'),
1503-
Platform(name='Platform 3', slug='platform-3', manufacturer=manufacturers[2], napalm_driver='driver-3', description='C'),
1501+
Platform(name='Platform 1', slug='platform-1', manufacturer=manufacturers[0], description='A'),
1502+
Platform(name='Platform 2', slug='platform-2', manufacturer=manufacturers[1], description='B'),
1503+
Platform(name='Platform 3', slug='platform-3', manufacturer=manufacturers[2], description='C'),
15041504
)
15051505
Platform.objects.bulk_create(platforms)
15061506

@@ -1516,10 +1516,6 @@ def test_description(self):
15161516
params = {'description': ['A', 'B']}
15171517
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
15181518

1519-
def test_napalm_driver(self):
1520-
params = {'napalm_driver': ['driver-1', 'driver-2']}
1521-
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
1522-
15231519
def test_manufacturer(self):
15241520
manufacturers = Manufacturer.objects.all()[:2]
15251521
params = {'manufacturer_id': [manufacturers[0].pk, manufacturers[1].pk]}

netbox/dcim/tests/test_views.py

-3
Original file line numberDiff line numberDiff line change
@@ -1609,8 +1609,6 @@ def setUpTestData(cls):
16091609
'name': 'Platform X',
16101610
'slug': 'platform-x',
16111611
'manufacturer': manufacturer.pk,
1612-
'napalm_driver': 'junos',
1613-
'napalm_args': None,
16141612
'description': 'A new platform',
16151613
'tags': [t.pk for t in tags],
16161614
}
@@ -1630,7 +1628,6 @@ def setUpTestData(cls):
16301628
)
16311629

16321630
cls.bulk_edit_data = {
1633-
'napalm_driver': 'ios',
16341631
'description': 'New description',
16351632
}
16361633

netbox/templates/dcim/platform.html

-15
Original file line numberDiff line numberDiff line change
@@ -53,26 +53,11 @@ <h5 class="card-header">
5353
title="This field has been deprecated, and will be removed in NetBox v3.6."
5454
></i>
5555
</th>
56-
<td>{{ object.napalm_driver|placeholder }}</td>
5756
</tr>
5857
</table>
5958
</div>
6059
</div>
6160
{% include 'inc/panels/tags.html' %}
62-
<div class="card">
63-
<h5 class="card-header">
64-
NAPALM Arguments
65-
<i
66-
class="mdi mdi-alert-box text-warning"
67-
data-bs-toggle="tooltip"
68-
data-bs-placement="right"
69-
title="This field has been deprecated, and will be removed in NetBox v3.6."
70-
></i>
71-
</h5>
72-
<div class="card-body">
73-
<pre>{{ object.napalm_args|json }}</pre>
74-
</div>
75-
</div>
7661
{% plugin_left_page object %}
7762
</div>
7863
<div class="col col-md-6">

0 commit comments

Comments
 (0)