Skip to content

Commit 86215f4

Browse files
authored
Prepare for upgrade to NetBox v4.0.6 (#40)
Closes #38
1 parent 230b3b5 commit 86215f4

18 files changed

+179
-216
lines changed

.github/workflows/python.yml

+5-5
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,13 @@ jobs:
1616
- name: Set up Python
1717
uses: actions/setup-python@v4
1818
with:
19-
python-version: "3.9"
19+
python-version: "3.11"
2020

2121
- name: Install tools
2222
run: pip install .[tools]
2323

24-
- name: Run ruff
25-
run: ruff netbox_slm
24+
- name: Run ruff lint
25+
run: ruff check netbox_slm
2626

27-
- name: Run black
28-
run: black netbox_slm
27+
- name: Run ruff format
28+
run: ruff format netbox_slm

ci/Dockerfile

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
ARG PYTHON_VERSION=3.10
1+
ARG PYTHON_VERSION=3.11
22
FROM python:${PYTHON_VERSION}-alpine AS compile-image
33

44
WORKDIR /build
@@ -11,7 +11,7 @@ RUN pip install -U .[build]
1111
RUN python -m build
1212
RUN pip install --no-index /build
1313

14-
FROM netboxcommunity/netbox:v3.7.2
14+
FROM netboxcommunity/netbox:v4.0.6
1515

16-
ARG PYTHON_VERSION=3.10
16+
ARG PYTHON_VERSION=3.11
1717
COPY --from=compile-image /opt/netbox/venv/lib/python${PYTHON_VERSION}/site-packages/netbox_slm /opt/netbox/venv/lib/python${PYTHON_VERSION}/site-packages/netbox_slm

ci/Dockerfile-CI

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM netboxcommunity/netbox:v3.7.2
1+
FROM netboxcommunity/netbox:v4.0.6
22

33
RUN mkdir /ci && chmod go+w /ci
44
COPY ../ci/requirements_ci.txt /ci/

ci/docker-compose.ci.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
version: '3.7'
1+
---
22
services:
33
netbox:
44
ports:

ci/docker-compose.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
version: '3.7'
1+
---
22
services:
33
netbox: &netbox
4-
image: netboxcommunity/netbox:${VERSION-v3.7.2}
4+
image: netboxcommunity/netbox:${VERSION-v4.0.6}
55
depends_on:
66
- postgres
77
- redis

ci/requirements_ci.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
coverage==7.2.2
1+
coverage==7.5.4
22
unittest-xml-reporting==3.2.0

netbox_slm/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from extras.plugins import PluginConfig
1+
from netbox.plugins import PluginConfig
22

33
__version__ = "1.6.0"
44

netbox_slm/api/serializers.py

+12-8
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ class SoftwareLicenseSerializer(NetBoxModelSerializer):
1010

1111
class Meta:
1212
model = SoftwareLicense
13-
fields = [
13+
fields = (
1414
"id",
1515
"display",
1616
"url",
@@ -31,7 +31,8 @@ class Meta:
3131
"custom_field_data",
3232
"created",
3333
"last_updated",
34-
]
34+
)
35+
brief_fields = ("id", "display", "url", "name", "description")
3536

3637
def get_display(self, obj):
3738
return f"{obj}"
@@ -43,7 +44,7 @@ class SoftwareProductSerializer(NetBoxModelSerializer):
4344

4445
class Meta:
4546
model = SoftwareProduct
46-
fields = [
47+
fields = (
4748
"id",
4849
"display",
4950
"url",
@@ -55,7 +56,8 @@ class Meta:
5556
"custom_field_data",
5657
"created",
5758
"last_updated",
58-
]
59+
)
60+
brief_fields = ("id", "display", "url", "name", "description")
5961

6062
def get_display(self, obj):
6163
return f"{obj.manufacturer} - {obj}"
@@ -69,7 +71,7 @@ class SoftwareProductInstallationSerializer(NetBoxModelSerializer):
6971

7072
class Meta:
7173
model = SoftwareProductInstallation
72-
fields = [
74+
fields = (
7375
"id",
7476
"display",
7577
"url",
@@ -83,7 +85,8 @@ class Meta:
8385
"custom_field_data",
8486
"created",
8587
"last_updated",
86-
]
88+
)
89+
brief_fields = ("id", "display", "url", "name")
8790

8891
def get_display(self, obj):
8992
return f"{obj}"
@@ -95,7 +98,7 @@ class SoftwareProductVersionSerializer(NetBoxModelSerializer):
9598

9699
class Meta:
97100
model = SoftwareProductVersion
98-
fields = [
101+
fields = (
99102
"id",
100103
"display",
101104
"url",
@@ -113,7 +116,8 @@ class Meta:
113116
"custom_field_data",
114117
"created",
115118
"last_updated",
116-
]
119+
)
120+
brief_fields = ("id", "display", "url", "name")
117121

118122
def get_display(self, obj):
119123
return f"{obj}"

netbox_slm/forms/software_license.py

+3-11
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from netbox.forms import NetBoxModelForm, NetBoxModelImportForm, NetBoxModelBulkEditForm, NetBoxModelFilterSetForm
55
from netbox_slm.models import SoftwareProduct, SoftwareProductVersion, SoftwareProductInstallation, SoftwareLicense
66
from utilities.forms.fields import CommentField, DynamicModelChoiceField, TagFilterField, LaxURLField
7+
from utilities.forms.rendering import FieldSet
78
from utilities.forms.widgets import APISelect, DatePicker
89

910

@@ -62,7 +63,7 @@ class Meta:
6263

6364
class SoftwareLicenseFilterForm(NetBoxModelFilterSetForm):
6465
model = SoftwareLicense
65-
fieldsets = ((None, ("q", "tag")),)
66+
fieldsets = (FieldSet(None, ("q", "tag")),)
6667
tag = TagFilterField(model)
6768

6869

@@ -85,13 +86,4 @@ class SoftwareLicenseBulkEditForm(NetBoxModelBulkEditForm):
8586
version = DynamicModelChoiceField(queryset=SoftwareProductVersion.objects.all(), required=False)
8687
installation = DynamicModelChoiceField(queryset=SoftwareProductInstallation.objects.all(), required=False)
8788
model = SoftwareLicense
88-
fieldsets = (
89-
(
90-
None,
91-
(
92-
"software_product",
93-
"version",
94-
"installation",
95-
),
96-
),
97-
)
89+
fieldsets = (FieldSet(None, ("software_product", "version", "installation")),)

netbox_slm/forms/software_product.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from netbox.forms import NetBoxModelForm, NetBoxModelImportForm, NetBoxModelBulkEditForm, NetBoxModelFilterSetForm
55
from netbox_slm.models import SoftwareProduct
66
from utilities.forms.fields import CommentField, DynamicModelChoiceField, TagFilterField
7+
from utilities.forms.rendering import FieldSet
78

89

910
class SoftwareProductForm(NetBoxModelForm):
@@ -29,7 +30,7 @@ class Meta:
2930

3031
class SoftwareProductFilterForm(NetBoxModelFilterSetForm):
3132
model = SoftwareProduct
32-
fieldsets = ((None, ("q", "tag")),)
33+
fieldsets = (FieldSet(None, ("q", "tag")),)
3334
tag = TagFilterField(model)
3435

3536

netbox_slm/forms/software_product_installation.py

+3-10
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from netbox.forms import NetBoxModelForm, NetBoxModelImportForm, NetBoxModelBulkEditForm, NetBoxModelFilterSetForm
66
from netbox_slm.models import SoftwareProductInstallation, SoftwareProduct, SoftwareProductVersion
77
from utilities.forms.fields import CommentField, DynamicModelChoiceField, TagFilterField
8+
from utilities.forms.rendering import FieldSet
89
from utilities.forms.widgets import APISelect
910
from virtualization.models import VirtualMachine, Cluster
1011

@@ -56,7 +57,7 @@ def clean_version(self):
5657

5758
class SoftwareProductInstallationFilterForm(NetBoxModelFilterSetForm):
5859
model = SoftwareProductInstallation
59-
fieldsets = ((None, ("q", "tag")),)
60+
fieldsets = (FieldSet(None, ("q", "tag")),)
6061
tag = TagFilterField(model)
6162

6263

@@ -70,12 +71,4 @@ class SoftwareProductInstallationBulkEditForm(NetBoxModelBulkEditForm):
7071
software_product = DynamicModelChoiceField(queryset=SoftwareProduct.objects.all(), required=False)
7172
version = DynamicModelChoiceField(queryset=SoftwareProductVersion.objects.all(), required=False)
7273
model = SoftwareProductInstallation
73-
fieldsets = (
74-
(
75-
None,
76-
(
77-
"software_product",
78-
"version",
79-
),
80-
),
81-
)
74+
fieldsets = (FieldSet(None, ("software_product", "version")),)

netbox_slm/forms/software_product_version.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from netbox.forms import NetBoxModelForm, NetBoxModelImportForm, NetBoxModelBulkEditForm, NetBoxModelFilterSetForm
55
from netbox_slm.models import SoftwareProduct, SoftwareProductVersion
66
from utilities.forms.fields import CommentField, DynamicModelChoiceField, TagFilterField
7+
from utilities.forms.rendering import FieldSet
78
from utilities.forms.widgets import APISelect, DatePicker
89

910

@@ -39,7 +40,7 @@ class Meta:
3940

4041
class SoftwareProductVersionFilterForm(NetBoxModelFilterSetForm):
4142
model = SoftwareProductVersion
42-
fieldsets = ((None, ("q", "tag")),)
43+
fieldsets = (FieldSet(None, ("q", "tag")),)
4344
tag = TagFilterField(model)
4445

4546

netbox_slm/navigation.py

+1-10
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
from extras.plugins import PluginMenuButton, PluginMenuItem
2-
from utilities.choices import ButtonColorChoices
1+
from netbox.plugins import PluginMenuButton, PluginMenuItem
32

43
menu_items = (
54
PluginMenuItem(
@@ -10,14 +9,12 @@
109
"plugins:netbox_slm:softwareproduct_add",
1110
"Add",
1211
"mdi mdi-plus-thick",
13-
ButtonColorChoices.GREEN,
1412
permissions=["netbox_slm.add_softwareproduct"],
1513
),
1614
PluginMenuButton(
1715
"plugins:netbox_slm:softwareproduct_import",
1816
"Import",
1917
"mdi mdi-upload",
20-
ButtonColorChoices.CYAN,
2118
permissions=["netbox_slm.add_softwareproduct"],
2219
),
2320
),
@@ -30,14 +27,12 @@
3027
"plugins:netbox_slm:softwareproductversion_add",
3128
"Add",
3229
"mdi mdi-plus-thick",
33-
ButtonColorChoices.GREEN,
3430
permissions=["netbox_slm.add_softwareproductversion"],
3531
),
3632
PluginMenuButton(
3733
"plugins:netbox_slm:softwareproductversion_import",
3834
"Import",
3935
"mdi mdi-upload",
40-
ButtonColorChoices.CYAN,
4136
permissions=["netbox_slm.add_softwareproductversion"],
4237
),
4338
),
@@ -50,14 +45,12 @@
5045
"plugins:netbox_slm:softwareproductinstallation_add",
5146
"Add",
5247
"mdi mdi-plus-thick",
53-
ButtonColorChoices.GREEN,
5448
permissions=["netbox_slm.add_softwareproductinstallation"],
5549
),
5650
PluginMenuButton(
5751
"plugins:netbox_slm:softwareproductinstallation_import",
5852
"Import",
5953
"mdi mdi-upload",
60-
ButtonColorChoices.CYAN,
6154
permissions=["netbox_slm.add_softwareproductinstallation"],
6255
),
6356
),
@@ -70,14 +63,12 @@
7063
"plugins:netbox_slm:softwarelicense_add",
7164
"Add",
7265
"mdi mdi-plus-thick",
73-
ButtonColorChoices.GREEN,
7466
permissions=["netbox_slm.add_softwarelicense"],
7567
),
7668
PluginMenuButton(
7769
"plugins:netbox_slm:softwarelicense_import",
7870
"Import",
7971
"mdi mdi-upload",
80-
ButtonColorChoices.CYAN,
8172
permissions=["netbox_slm.add_softwarelicense"],
8273
),
8374
),

0 commit comments

Comments
 (0)