Revert disk space annotation

This commit is contained in:
Jeremy Stretch 2023-11-14 14:04:57 -05:00
parent 031632162a
commit f4aa2e9f62
5 changed files with 7 additions and 33 deletions

View File

@ -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()

View File

@ -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

View File

@ -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(

View File

@ -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
#

View File

@ -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')