From 2b77a4506f5666f75aab6dfc359aa858156d3432 Mon Sep 17 00:00:00 2001 From: Ben White Date: Fri, 7 Feb 2025 17:11:19 +0000 Subject: [PATCH 1/2] Fixes running in netbox-docker with errors on version strings such as: `packaging.version.InvalidVersion: Invalid version: '4.2.3-Docker-3.2.0'` If it's new enough to break due to this reason, it's already on the new module names for import. Alternative is to check `settings.RELEASE.version` vs `settings.VERSION` --- netbox_diode_plugin/api/serializers.py | 12 +++++++++--- netbox_diode_plugin/api/views.py | 9 ++++++--- netbox_diode_plugin/tables.py | 9 ++++++--- 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/netbox_diode_plugin/api/serializers.py b/netbox_diode_plugin/api/serializers.py index df0c5fb..b628f7c 100644 --- a/netbox_diode_plugin/api/serializers.py +++ b/netbox_diode_plugin/api/serializers.py @@ -19,10 +19,16 @@ from netbox_diode_plugin.models import Setting -if version.parse(version.parse(settings.VERSION).base_version) >= version.parse("4.1"): +try: + if version.parse(version.parse(settings.VERSION).base_version) >= version.parse( + "4.1" + ): + from core.models import ObjectChange + else: + from extras.models import ObjectChange +except version.InvalidVersion as e: from core.models import ObjectChange -else: - from extras.models import ObjectChange + from ipam.api.serializers import IPAddressSerializer, PrefixSerializer from rest_framework import serializers from utilities.api import get_serializer_for_model diff --git a/netbox_diode_plugin/api/views.py b/netbox_diode_plugin/api/views.py index 173a97d..546fdcc 100644 --- a/netbox_diode_plugin/api/views.py +++ b/netbox_diode_plugin/api/views.py @@ -7,10 +7,13 @@ from django.conf import settings from packaging import version -if version.parse(settings.VERSION).major >= 4: +try: + if version.parse(settings.VERSION).major >= 4: + from core.models import ObjectType as NetBoxType + else: + from django.contrib.contenttypes.models import ContentType as NetBoxType +except version.InvalidVersion as e: from core.models import ObjectType as NetBoxType -else: - from django.contrib.contenttypes.models import ContentType as NetBoxType from django.core.exceptions import FieldError from django.db import transaction from django.db.models import Q diff --git a/netbox_diode_plugin/tables.py b/netbox_diode_plugin/tables.py index 05b20b3..68ceedd 100644 --- a/netbox_diode_plugin/tables.py +++ b/netbox_diode_plugin/tables.py @@ -8,10 +8,13 @@ from django.conf import settings from packaging import version -if version.parse(settings.VERSION).major >= 4: +try: + if version.parse(settings.VERSION).major >= 4: + from core.models import ObjectType as NetBoxType + else: + from django.contrib.contenttypes.models import ContentType as NetBoxType +except version.InvalidVersion as e: from core.models import ObjectType as NetBoxType -else: - from django.contrib.contenttypes.models import ContentType as NetBoxType from netbox.tables import BaseTable, columns from utilities.object_types import object_type_identifier, object_type_name From a3da80e6afbd8164100ca66ae74d89cb451af5dc Mon Sep 17 00:00:00 2001 From: Ben White Date: Thu, 20 Mar 2025 10:07:00 +0000 Subject: [PATCH 2/2] removed unused variable from except --- netbox_diode_plugin/api/serializers.py | 2 +- netbox_diode_plugin/api/views.py | 2 +- netbox_diode_plugin/tables.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/netbox_diode_plugin/api/serializers.py b/netbox_diode_plugin/api/serializers.py index b628f7c..174104c 100644 --- a/netbox_diode_plugin/api/serializers.py +++ b/netbox_diode_plugin/api/serializers.py @@ -26,7 +26,7 @@ from core.models import ObjectChange else: from extras.models import ObjectChange -except version.InvalidVersion as e: +except version.InvalidVersion: from core.models import ObjectChange from ipam.api.serializers import IPAddressSerializer, PrefixSerializer diff --git a/netbox_diode_plugin/api/views.py b/netbox_diode_plugin/api/views.py index 546fdcc..30b17ae 100644 --- a/netbox_diode_plugin/api/views.py +++ b/netbox_diode_plugin/api/views.py @@ -12,7 +12,7 @@ from core.models import ObjectType as NetBoxType else: from django.contrib.contenttypes.models import ContentType as NetBoxType -except version.InvalidVersion as e: +except version.InvalidVersion: from core.models import ObjectType as NetBoxType from django.core.exceptions import FieldError from django.db import transaction diff --git a/netbox_diode_plugin/tables.py b/netbox_diode_plugin/tables.py index 68ceedd..c7b1215 100644 --- a/netbox_diode_plugin/tables.py +++ b/netbox_diode_plugin/tables.py @@ -13,7 +13,7 @@ from core.models import ObjectType as NetBoxType else: from django.contrib.contenttypes.models import ContentType as NetBoxType -except version.InvalidVersion as e: +except version.InvalidVersion: from core.models import ObjectType as NetBoxType from netbox.tables import BaseTable, columns