|
@@ -20,6 +20,7 @@ from netbox.api.viewsets import NetBoxModelViewSet, MPTTLockedMixin
|
|
|
from netbox.api.viewsets.mixins import SequentialBulkCreatesMixin
|
|
from netbox.api.viewsets.mixins import SequentialBulkCreatesMixin
|
|
|
from utilities.api import get_serializer_for_model
|
|
from utilities.api import get_serializer_for_model
|
|
|
from utilities.query_functions import CollateAsChar
|
|
from utilities.query_functions import CollateAsChar
|
|
|
|
|
+from virtualization.models import VirtualMachine
|
|
|
from . import serializers
|
|
from . import serializers
|
|
|
from .exceptions import MissingFilterException
|
|
from .exceptions import MissingFilterException
|
|
|
|
|
|
|
@@ -360,8 +361,20 @@ class DeviceRoleViewSet(NetBoxModelViewSet):
|
|
|
# Platforms
|
|
# Platforms
|
|
|
#
|
|
#
|
|
|
|
|
|
|
|
-class PlatformViewSet(NetBoxModelViewSet):
|
|
|
|
|
- queryset = Platform.objects.all()
|
|
|
|
|
|
|
+class PlatformViewSet(MPTTLockedMixin, NetBoxModelViewSet):
|
|
|
|
|
+ queryset = Platform.objects.add_related_count(
|
|
|
|
|
+ Platform.objects.add_related_count(
|
|
|
|
|
+ Platform.objects.all(),
|
|
|
|
|
+ VirtualMachine,
|
|
|
|
|
+ 'platform',
|
|
|
|
|
+ 'virtualmachine_count',
|
|
|
|
|
+ cumulative=True
|
|
|
|
|
+ ),
|
|
|
|
|
+ Device,
|
|
|
|
|
+ 'platform',
|
|
|
|
|
+ 'device_count',
|
|
|
|
|
+ cumulative=True
|
|
|
|
|
+ )
|
|
|
serializer_class = serializers.PlatformSerializer
|
|
serializer_class = serializers.PlatformSerializer
|
|
|
filterset_class = filtersets.PlatformFilterSet
|
|
filterset_class = filtersets.PlatformFilterSet
|
|
|
|
|
|