8356 model property

This commit is contained in:
Arthur 2023-10-30 13:22:37 -07:00
parent c53f8a0ceb
commit e25f58768b
3 changed files with 8 additions and 6 deletions

View File

@ -54,10 +54,8 @@ class ClusterViewSet(NetBoxModelViewSet):
# #
class VirtualMachineViewSet(ConfigContextQuerySetMixin, NetBoxModelViewSet): class VirtualMachineViewSet(ConfigContextQuerySetMixin, NetBoxModelViewSet):
queryset = VirtualMachine.objects.annotate( queryset = VirtualMachine.objects.prefetch_related(
virtual_disk_space=Sum('virtualdisks__size') 'site', 'cluster', 'device', 'role', 'tenant', 'platform', 'primary_ip4', 'primary_ip6', 'tags', 'virtualdisks',
).prefetch_related(
'site', 'cluster', 'device', 'role', 'tenant', 'platform', 'primary_ip4', 'primary_ip6', 'tags'
) )
filterset_class = filtersets.VirtualMachineFilterSet filterset_class = filtersets.VirtualMachineFilterSet

View File

@ -242,6 +242,10 @@ class VirtualMachine(ContactsMixin, RenderConfigMixin, ConfigContextModel, Prima
else: else:
return None return None
@property
def virtual_disk_space(self):
return sum([disk.size for disk in self.virtualdisks.all()])
class VMInterface(NetBoxModel, BaseInterface, TrackingModelMixin): class VMInterface(NetBoxModel, BaseInterface, TrackingModelMixin):
virtual_machine = models.ForeignKey( virtual_machine = models.ForeignKey(

View File

@ -112,8 +112,8 @@ class VirtualMachineTable(TenancyColumnsMixin, ContactsColumnMixin, NetBoxTable)
def render_disk(self, value, record): def render_disk(self, value, record):
if record.disk: if record.disk:
return record.disk return record.disk
elif record.disk_size: elif record.virtual_disk_space:
return record.disk_size return record.virtual_disk_space
else: else:
return '' return ''