Skip to content

Commit 499f828

Browse files
authored
Merge pull request #143 from networktocode/mzb-netbox211
NetBox 2.11 support
2 parents 2eca893 + 1b59bd4 commit 499f828

File tree

7 files changed

+36
-17
lines changed

7 files changed

+36
-17
lines changed

.travis.yml

+2-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ env:
99
matrix:
1010
- NETBOX_VER=v2.8.9
1111
- NETBOX_VER=v2.9.11
12-
- NETBOX_VER=v2.10.2
12+
- NETBOX_VER=v2.10.10
13+
- NETBOX_VER=v2.11.10
1314
# Encrypted value for PYPI_TOKEN, this secret has been generated with the following command
1415
# travis encrypt PYPI_TOKEN=<value> --add env.global --com
1516
# Might need to update it once the repo is publish (travis-ci.org vs travis-ci.com)

README.md

+6-5
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,12 @@ systemctl restart netbox netbox-rq
2828

2929
### Compatibility Matrix
3030

31-
| | Netbox 2.8 | Netbox 2.9 | Netbox 2.10 |
32-
|-----------------------|------------|------------|-------------|
33-
| Onboarding Plugin 1.3 | X | | |
34-
| Onboarding Plugin 2.0 | X | X | |
35-
| Onboarding Plugin 2.1 | X | X | X |
31+
| | Netbox 2.8 | Netbox 2.9 | Netbox 2.10 | Netbox 2.11 |
32+
|-----------------------|------------|------------|-------------|-------------|
33+
| Onboarding Plugin 1.3 | X | | | |
34+
| Onboarding Plugin 2.0 | X | X | | |
35+
| Onboarding Plugin 2.1 | X | X | X | |
36+
| Onboarding Plugin 2.2 | X | X | X | X |
3637

3738
To ensure NetBox Onboarding plugin is automatically re-installed during future upgrades, create a file named `local_requirements.txt` (if not already existing) in the NetBox root directory (alongside `requirements.txt`) and list the `ntc-netbox-plugin-onboarding` package:
3839

development/configuration.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
NETBOX_RELEASE_CURRENT = version.parse(VERSION)
1010
NETBOX_RELEASE_28 = version.parse("2.8")
1111
NETBOX_RELEASE_29 = version.parse("2.9")
12-
NETBOX_RELEASE_211 = version.parse("2.11")
12+
NETBOX_RELEASE_212 = version.parse("2.12")
1313

1414
# Enforce required configuration parameters
1515
for key in [
@@ -104,7 +104,7 @@ def is_truthy(arg):
104104
# NetBox 2.8.x Specific Settings
105105
REDIS["caching"]["DEFAULT_TIMEOUT"] = 300
106106
REDIS["tasks"]["DEFAULT_TIMEOUT"] = 300
107-
elif NETBOX_RELEASE_CURRENT < NETBOX_RELEASE_211:
107+
elif NETBOX_RELEASE_CURRENT < NETBOX_RELEASE_212:
108108
RQ_DEFAULT_TIMEOUT = 300
109109
else:
110110
raise ImproperlyConfigured(f"Version {NETBOX_RELEASE_CURRENT} of NetBox is unsupported at this time.")
@@ -248,7 +248,7 @@ def is_truthy(arg):
248248
# NetBox 2.8.x Specific Settings
249249
REMOTE_AUTH_BACKEND = "utilities.auth_backends.RemoteUserBackend"
250250
REMOTE_AUTH_DEFAULT_PERMISSIONS = []
251-
elif NETBOX_RELEASE_CURRENT < NETBOX_RELEASE_211:
251+
elif NETBOX_RELEASE_CURRENT < NETBOX_RELEASE_212:
252252
REMOTE_AUTH_BACKEND = "netbox.authentication.RemoteUserBackend"
253253
REMOTE_AUTH_DEFAULT_PERMISSIONS = {}
254254
else:

netbox_onboarding/__init__.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
limitations under the License.
1313
"""
1414

15-
__version__ = "2.1.0"
15+
__version__ = "2.2.0"
1616

1717
from extras.plugins import PluginConfig
1818

@@ -28,7 +28,7 @@ class OnboardingConfig(PluginConfig):
2828
base_url = "onboarding"
2929
required_settings = []
3030
min_version = "2.8.1"
31-
max_version = "2.10.99"
31+
max_version = "2.11.99"
3232
default_settings = {
3333
"create_platform_if_missing": True,
3434
"create_manufacturer_if_missing": True,

netbox_onboarding/filters.py

+16-2
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,26 @@
1616
from django.db.models import Q
1717

1818
from dcim.models import Site, DeviceRole, Platform
19-
from utilities.filters import NameSlugSearchFilterSet
2019

20+
from .release import NETBOX_RELEASE_CURRENT, NETBOX_RELEASE_211
2121
from .models import OnboardingTask
2222

2323

24-
class OnboardingTaskFilter(NameSlugSearchFilterSet):
24+
if NETBOX_RELEASE_CURRENT < NETBOX_RELEASE_211:
25+
from utilities.filters import NameSlugSearchFilterSet # pylint: disable=no-name-in-module, import-error
26+
27+
class FitersetMixin(NameSlugSearchFilterSet):
28+
"""FilterSet Mixin."""
29+
30+
31+
else:
32+
from netbox.filtersets import BaseFilterSet # pylint: disable=no-name-in-module, import-error
33+
34+
class FitersetMixin(BaseFilterSet):
35+
"""FilterSet Mixin."""
36+
37+
38+
class OnboardingTaskFilter(FitersetMixin):
2539
"""Filter capabilities for OnboardingTask instances."""
2640

2741
q = django_filters.CharFilter(method="search", label="Search",)

netbox_onboarding/models.py

+6-3
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,17 @@
1717
from django.urls import reverse
1818
from dcim.models import Device
1919
from .choices import OnboardingStatusChoices, OnboardingFailChoices
20-
from .release import NETBOX_RELEASE_CURRENT, NETBOX_RELEASE_29
20+
from .release import NETBOX_RELEASE_CURRENT, NETBOX_RELEASE_29, NETBOX_RELEASE_211
2121

2222
# Support NetBox 2.8
2323
if NETBOX_RELEASE_CURRENT < NETBOX_RELEASE_29:
2424
from utilities.models import ChangeLoggedModel # pylint: disable=no-name-in-module, import-error
25-
# Support NetBox 2.9
26-
else:
25+
# Support NetBox 2.9, NetBox 2.10
26+
elif NETBOX_RELEASE_CURRENT < NETBOX_RELEASE_211:
2727
from extras.models import ChangeLoggedModel # pylint: disable=no-name-in-module, import-error
28+
# Support NetBox 2.11
29+
else:
30+
from netbox.models import ChangeLoggedModel # pylint: disable=no-name-in-module, import-error
2831

2932

3033
class OnboardingTask(ChangeLoggedModel):

pyproject.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "ntc-netbox-plugin-onboarding"
3-
version = "2.1.0"
3+
version = "2.2.0"
44
description = "A plugin for NetBox to easily onboard new devices."
55
authors = ["Network to Code, LLC <[email protected]>"]
66
license = "Apache-2.0"

0 commit comments

Comments
 (0)