From f4aa2e9f62361cdf8b347f3c3c821160f954473a Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Tue, 14 Nov 2023 14:04:57 -0500 Subject: [PATCH] Revert disk space annotation --- netbox/virtualization/api/serializers.py | 8 +------- netbox/virtualization/api/views.py | 1 - netbox/virtualization/models/virtualmachines.py | 4 ---- netbox/virtualization/tables/virtualmachines.py | 16 ++-------------- netbox/virtualization/views.py | 11 ++++------- 5 files changed, 7 insertions(+), 33 deletions(-) diff --git a/netbox/virtualization/api/serializers.py b/netbox/virtualization/api/serializers.py index 7e2453ad2..0b36d37f0 100644 --- a/netbox/virtualization/api/serializers.py +++ b/netbox/virtualization/api/serializers.py @@ -92,16 +92,10 @@ class VirtualMachineSerializer(NetBoxModelSerializer): 'id', 'url', 'display', 'name', 'status', 'site', 'cluster', 'device', 'role', 'tenant', 'platform', 'primary_ip', 'primary_ip4', 'primary_ip6', 'vcpus', 'memory', 'disk', 'description', 'comments', 'config_template', 'local_context_data', 'tags', 'custom_fields', 'created', 'last_updated', - 'interface_count', 'virtual_disk_count', 'disk_space', + 'interface_count', 'virtual_disk_count', ] validators = [] - def get_disk(self, obj): - if obj.disk: - return obj.disk - - return obj.disk_space - class VirtualMachineWithConfigContextSerializer(VirtualMachineSerializer): config_context = serializers.SerializerMethodField() diff --git a/netbox/virtualization/api/views.py b/netbox/virtualization/api/views.py index f742e0856..214782f59 100644 --- a/netbox/virtualization/api/views.py +++ b/netbox/virtualization/api/views.py @@ -1,7 +1,6 @@ from rest_framework.routers import APIRootView from dcim.models import Device -from django.db.models import Sum from extras.api.mixins import ConfigContextQuerySetMixin from netbox.api.viewsets import NetBoxModelViewSet from utilities.query_functions import CollateAsChar diff --git a/netbox/virtualization/models/virtualmachines.py b/netbox/virtualization/models/virtualmachines.py index 6a5e369a2..970167bf3 100644 --- a/netbox/virtualization/models/virtualmachines.py +++ b/netbox/virtualization/models/virtualmachines.py @@ -242,10 +242,6 @@ class VirtualMachine(ContactsMixin, RenderConfigMixin, ConfigContextModel, Prima else: return None - @property - def disk_space(self): - return sum([disk.size for disk in self.virtualdisks.all()]) - class VMInterface(NetBoxModel, BaseInterface, TrackingModelMixin): virtual_machine = models.ForeignKey( diff --git a/netbox/virtualization/tables/virtualmachines.py b/netbox/virtualization/tables/virtualmachines.py index 70f84907d..132cc77d7 100644 --- a/netbox/virtualization/tables/virtualmachines.py +++ b/netbox/virtualization/tables/virtualmachines.py @@ -93,30 +93,18 @@ class VirtualMachineTable(TenancyColumnsMixin, ContactsColumnMixin, NetBoxTable) verbose_name=_('Config Template'), linkify=True ) - disk_space = tables.Column( - empty_values=(), - verbose_name=_('Disk Size (GB)'), - ) class Meta(NetBoxTable.Meta): model = VirtualMachine fields = ( 'pk', 'id', 'name', 'status', 'site', 'cluster', 'device', 'role', 'tenant', 'tenant_group', 'platform', - 'vcpus', 'memory', 'disk_space', 'primary_ip4', 'primary_ip6', 'primary_ip', 'description', 'comments', + 'vcpus', 'memory', 'disk', 'primary_ip4', 'primary_ip6', 'primary_ip', 'description', 'comments', 'config_template', 'contacts', 'tags', 'created', 'last_updated', ) default_columns = ( - 'pk', 'name', 'status', 'site', 'cluster', 'role', 'tenant', 'vcpus', 'memory', 'disk_space', 'primary_ip', + 'pk', 'name', 'status', 'site', 'cluster', 'role', 'tenant', 'vcpus', 'memory', 'disk', 'primary_ip', ) - def render_disk_space(self, value, record): - if record.disk: - return record.disk - elif record.disk_space: - return record.disk_space - else: - return '—' - # # VM components # diff --git a/netbox/virtualization/views.py b/netbox/virtualization/views.py index d25c52883..c19d94bca 100644 --- a/netbox/virtualization/views.py +++ b/netbox/virtualization/views.py @@ -2,7 +2,7 @@ import traceback from django.contrib import messages from django.db import transaction -from django.db.models import F, Prefetch, Sum +from django.db.models import Prefetch, Sum from django.http import HttpResponse from django.shortcuts import get_object_or_404, redirect, render from django.urls import reverse @@ -24,11 +24,11 @@ from utilities.views import ViewTab, register_model_view from . import filtersets, forms, tables from .models import * + # # Cluster types # - class ClusterTypeListView(generic.ObjectListView): queryset = ClusterType.objects.annotate( cluster_count=count_related(Cluster, 'type') @@ -341,9 +341,7 @@ class ClusterContactsView(ObjectContactsView): # class VirtualMachineListView(generic.ObjectListView): - queryset = VirtualMachine.objects.annotate( - disk_size=Sum('virtualdisks__size') - ).prefetch_related('primary_ip4', 'primary_ip6') + queryset = VirtualMachine.objects.prefetch_related('primary_ip4', 'primary_ip6') filterset = filtersets.VirtualMachineFilterSet filterset_form = forms.VirtualMachineFilterForm table = tables.VirtualMachineTable @@ -352,8 +350,7 @@ class VirtualMachineListView(generic.ObjectListView): @register_model_view(VirtualMachine) class VirtualMachineView(generic.ObjectView): - queryset = VirtualMachine.objects.all().annotate( - disk_size=Sum('virtualdisks__size')) + queryset = VirtualMachine.objects.all() @register_model_view(VirtualMachine, 'interfaces')