12596 Add Allocated Resources to Cluster API

This commit is contained in:
Arthur Hanson 2024-11-07 10:08:47 -08:00
parent 812ce8471a
commit 2ac38e3d32
2 changed files with 9 additions and 3 deletions

View File

@ -59,6 +59,12 @@ class ClusterSerializer(NetBoxModelSerializer):
)
scope_id = serializers.IntegerField(allow_null=True, required=False, default=None)
scope = serializers.SerializerMethodField(read_only=True)
allocated_virtual_cpus = serializers.DecimalField(
max_digits=8,
decimal_places=2,
)
allocated_memory = serializers.IntegerField()
allocated_disk_space = serializers.IntegerField()
# Related object counts
device_count = RelatedObjectCountField('devices')
@ -69,7 +75,7 @@ class ClusterSerializer(NetBoxModelSerializer):
fields = [
'id', 'url', 'display_url', 'display', 'name', 'type', 'group', 'status', 'tenant', 'scope_type', 'scope_id', 'scope',
'description', 'comments', 'tags', 'custom_fields', 'created', 'last_updated', 'device_count',
'virtualmachine_count',
'virtualmachine_count', 'allocated_virtual_cpus', 'allocated_memory', 'allocated_disk_space'
]
brief_fields = ('id', 'url', 'display', 'name', 'description', 'virtualmachine_count')

View File

@ -1,3 +1,4 @@
from django.db.models import Sum
from rest_framework.routers import APIRootView
from extras.api.mixins import ConfigContextQuerySetMixin, RenderConfigMixin
@ -33,11 +34,10 @@ class ClusterGroupViewSet(NetBoxModelViewSet):
class ClusterViewSet(NetBoxModelViewSet):
queryset = Cluster.objects.all()
queryset = Cluster.objects.prefetch_related('virtual_machines').annotate(allocated_virtual_cpus=Sum('virtual_machines__vcpus'), allocated_memory=Sum('virtual_machines__memory'), allocated_disk_space=Sum('virtual_machines__disk'))
serializer_class = serializers.ClusterSerializer
filterset_class = filtersets.ClusterFilterSet
#
# Virtual machines
#