|
|
@@ -20,6 +20,7 @@ from netbox.api.viewsets import NetBoxModelViewSet, MPTTLockedMixin
|
|
|
from netbox.api.viewsets.mixins import SequentialBulkCreatesMixin
|
|
|
from utilities.api import get_serializer_for_model
|
|
|
from utilities.query_functions import CollateAsChar
|
|
|
+from virtualization.models import VirtualMachine
|
|
|
from . import serializers
|
|
|
from .exceptions import MissingFilterException
|
|
|
|
|
|
@@ -351,7 +352,19 @@ class InventoryItemTemplateViewSet(MPTTLockedMixin, NetBoxModelViewSet):
|
|
|
#
|
|
|
|
|
|
class DeviceRoleViewSet(NetBoxModelViewSet):
|
|
|
- queryset = DeviceRole.objects.all()
|
|
|
+ queryset = DeviceRole.objects.add_related_count(
|
|
|
+ DeviceRole.objects.add_related_count(
|
|
|
+ DeviceRole.objects.all(),
|
|
|
+ VirtualMachine,
|
|
|
+ 'role',
|
|
|
+ 'virtualmachine_count',
|
|
|
+ cumulative=True
|
|
|
+ ),
|
|
|
+ Device,
|
|
|
+ 'role',
|
|
|
+ 'device_count',
|
|
|
+ cumulative=True
|
|
|
+ )
|
|
|
serializer_class = serializers.DeviceRoleSerializer
|
|
|
filterset_class = filtersets.DeviceRoleFilterSet
|
|
|
|