diff --git a/netbox/templates/virtualization/cluster.html b/netbox/templates/virtualization/cluster.html index 510c5a48e..5f34a82c5 100644 --- a/netbox/templates/virtualization/cluster.html +++ b/netbox/templates/virtualization/cluster.html @@ -55,6 +55,37 @@ {% plugin_left_page object %}
+
+
Allocated Resources
+
+ + + + + + + + + + + + + +
Virtual CPUs{{ vcpus_sum|placeholder }}
Memory + {% if memory_sum %} + {{ memory_sum|humanize_megabytes }} + {% else %} + {{ ''|placeholder }} + {% endif %} +
Disk Space + {% if disk_sum %} + {{ disk_sum }} GB + {% else %} + {{ ''|placeholder }} + {% endif %} +
+
+
{% include 'inc/panels/custom_fields.html' %} {% include 'inc/panels/tags.html' %} {% include 'inc/panels/contacts.html' %} diff --git a/netbox/virtualization/views.py b/netbox/virtualization/views.py index b97b966b4..af130fcce 100644 --- a/netbox/virtualization/views.py +++ b/netbox/virtualization/views.py @@ -1,6 +1,6 @@ from django.contrib import messages from django.db import transaction -from django.db.models import Prefetch +from django.db.models import Prefetch, Sum from django.shortcuts import get_object_or_404, redirect, render from django.urls import reverse from django.utils.translation import gettext as _ @@ -169,6 +169,9 @@ class ClusterListView(generic.ObjectListView): class ClusterView(generic.ObjectView): queryset = Cluster.objects.all() + def get_extra_context(self, request, instance): + return instance.virtual_machines.aggregate(vcpus_sum=Sum('vcpus'), memory_sum=Sum('memory'), disk_sum=Sum('disk')) + @register_model_view(Cluster, 'virtualmachines', path='virtual-machines') class ClusterVirtualMachinesView(generic.ObjectChildrenView):