diff --git a/Makefile b/Makefile index 56452c0..1ae53e2 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ PYTHON_VER?=3.10 -NETBOX_VER?=v4.0.8 +NETBOX_VER?=v4.1.0 COMPOSE_FILE=./develop/docker-compose.yml diff --git a/README.md b/README.md index a0270c7..df22cba 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,11 @@ To ensure NBRisk plugin is automatically re-installed during future upgrades, cr ```shell # echo "NbRisk==40.0.*" >> local_requirements.txt ``` +### For NetBox 4.1.0 or grater +```shell +# echo "NbRisk==41.0.*" >> local_requirements.txt +``` + Before installing NBRisk make sure your NetBox instance is already installed with all migrations executed. With your NetBox fully installed, install the plugin with pip and enable it in your configuration.py diff --git a/develop/Dockerfile b/develop/Dockerfile index efb97e9..da67f04 100644 --- a/develop/Dockerfile +++ b/develop/Dockerfile @@ -1,7 +1,7 @@ ARG python_ver=3.10 FROM python:${python_ver} -ARG netbox_ver=v4.0.8 +ARG netbox_ver=v4.1.0 ENV PYTHONUNBUFFERED 1 RUN mkdir -p /opt diff --git a/nb_risk/__init__.py b/nb_risk/__init__.py index 69c4c35..9aff348 100644 --- a/nb_risk/__init__.py +++ b/nb_risk/__init__.py @@ -11,8 +11,8 @@ class NbriskConfig(PluginConfig): version = __version__ author = "Renato Almdida Oliveira" author_email = "renato.almeida.oliveira@gmail.com" - min_version = "4.0.0" - max_version = "4.0.99" + min_version = "4.1.0" + max_version = "4.1.99" required_settings = [] default_settings = { "supported_assets": [ diff --git a/nb_risk/api/nested_serializers.py b/nb_risk/api/nested_serializers.py deleted file mode 100644 index e2ddba4..0000000 --- a/nb_risk/api/nested_serializers.py +++ /dev/null @@ -1,34 +0,0 @@ -from rest_framework import serializers - -from netbox.api.serializers import WritableNestedSerializer -from .. import models, choices - -# ThreatSource Nested Serializers - -# class NestedThreatSourceSerializer(WritableNestedSerializer): -# url = serializers.HyperlinkedIdentityField( -# view_name="plugins-api:nb_risk-api:threatsource-detail" -# ) -# display = serializers.SerializerMethodField('get_display') - -# def get_display(self, obj): -# return obj.name - -# class Meta: -# model = models.ThreatSource -# fields = ["id", "url", "display", "name"] - -# Risk Nested Serializers - -class NestedRiskSerializer(WritableNestedSerializer): - url = serializers.HyperlinkedIdentityField( - view_name="plugins-api:nb_risk-api:risk-detail" - ) - display = serializers.SerializerMethodField('get_display') - - def get_display(self, obj): - return obj.name - - class Meta: - model = models.Risk - fields = ["id", "url", "display", "name"] \ No newline at end of file diff --git a/nb_risk/api/serializers.py b/nb_risk/api/serializers.py index 20d9bf6..df22c50 100644 --- a/nb_risk/api/serializers.py +++ b/nb_risk/api/serializers.py @@ -1,14 +1,11 @@ from rest_framework import serializers from django.contrib.contenttypes.models import ContentType from netbox.api.fields import ChoiceField, ContentTypeField, SerializedPKRelatedField -from netbox.api.serializers import WritableNestedSerializer from utilities.api import get_serializer_for_model from netbox.api.serializers import NetBoxModelSerializer -from nb_risk.api.nested_serializers import ( - NestedRiskSerializer, -) + from .. import models, choices # ThreatSource Serializers @@ -114,9 +111,9 @@ def validate(self, data): def get_asset(self, obj): if obj.asset is None: return None - serializer = get_serializer_for_model(obj.asset, prefix='Nested') + serializer = get_serializer_for_model(obj.asset) context = {'request': self.context['request']} - return serializer(obj.asset, context=context).data + return serializer(obj.asset, context=context, nested=True).data def get_display(self, obj): return obj.name @@ -165,7 +162,7 @@ class Meta: class ControlSerializer(NetBoxModelSerializer): url = serializers.HyperlinkedIdentityField(view_name="plugins-api:nb_risk-api:control-detail") display = serializers.SerializerMethodField('get_display') - risk = NestedRiskSerializer(many=True,required=False, allow_null=True) + risk = RiskSerializer(many=True,required=False, allow_null=True, nested=True) def get_display(self, obj): return obj.name diff --git a/nb_risk/version.py b/nb_risk/version.py index bb1ae08..175e6a1 100644 --- a/nb_risk/version.py +++ b/nb_risk/version.py @@ -1 +1 @@ -__version__ = "40.0.2" +__version__ = "41.0.1"