added files

This commit is contained in:
Hedde van der Heide
2021-11-24 09:33:32 +01:00
commit 63ebea9c8f
38 changed files with 1319 additions and 0 deletions
View File
+26
View File
@@ -0,0 +1,26 @@
from rest_framework import serializers
from netbox.api.serializers import PrimaryModelSerializer
# from netbox_slm.api.nested_serializers import (
# NestedRecordSerializer,
# NestedNameServerSerializer,
# )
from netbox_slm.models import SoftwareProduct
class SoftwareProductSerializer(PrimaryModelSerializer):
url = serializers.HyperlinkedIdentityField(
view_name="plugins-api:netbox_slm-api:softwareproduct-detail"
)
class Meta:
model = SoftwareProduct
fields = (
"id",
"url",
"name",
"tags",
"custom_field_data",
"created",
"last_updated",
)
+11
View File
@@ -0,0 +1,11 @@
from netbox.api import OrderedDefaultRouter
from netbox_slm.api.views import (
NetboxSLMRootView,
SoftwareProductViewSet
)
router = OrderedDefaultRouter()
router.APIRootView = NetboxSLMRootView
router.register("softwareproducts", SoftwareProductViewSet)
urlpatterns = router.urls
+32
View File
@@ -0,0 +1,32 @@
from rest_framework import serializers
from rest_framework.decorators import action
from rest_framework.response import Response
from rest_framework.routers import APIRootView
from extras.api.views import CustomFieldModelViewSet
from netbox_slm.api.serializers import SoftwareProductSerializer
from netbox_slm.filters import SoftwareProductFilter
from netbox_slm.models import SoftwareProduct
class NetboxSLMRootView(APIRootView):
"""
NetboxSLM API root view
"""
def get_view_name(self):
return "NetboxSLM"
class SoftwareProductViewSet(CustomFieldModelViewSet):
queryset = SoftwareProduct.objects.all()
serializer_class = SoftwareProductSerializer
filterset_class = SoftwareProductFilter
# @action(detail=True, methods=["get"])
# def records(self, request, pk=None):
# records = Record.objects.filter(zone=pk)
# serializer = RecordSerializer(records, many=True, context={"request": request})
# return Response(serializer.data)
# for reference: https://github.com/auroraresearchlab/netbox-dns/blob/main/netbox_dns/api/views.py