mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
549b0ea107
* 8356 add virtual disk model * 8356 add supplemental forms * 8356 add menu * 8356 cleanup views * 8356 virtual machine tab * 8356 migrations * 8356 vm disk tables * 8356 cleanup * 8356 graphql * 8356 graphql * 8356 add components button * 8356 bulk add on virtualmachine * 8356 bulk add fixes * 8356 api tests * 8356 news tests add rename * 8356 VirtualDiskCreateForm * 8356 fix test * 8356 add todo to remove disk from vm * 8356 review changes * 8356 fix test * 8356 deprecate disk field * 8356 review changes * 8356 fix test * 8356 fix test * Simplify view actions * 8356 review changes * 8356 split trans tag * 8356 add total virtual disk size to api * 8356 add virtual disk list to virtual machine detail view * 8356 move virtual disk size to property * 8356 revert property * Tweak display of deprecated disk field * 8356 render single disk field * 8356 update serializer * 8356 model property * 8356 fix test * 8356 review changes * Revert disk space annotation * Use existing disk field to store aggregate virtual disk size * Introduce abstract ComponentModel for VM components * Add search index for VirtualDisk * Misc cleanup --------- Co-authored-by: Jeremy Stretch <jstretch@netboxlabs.com>
17 lines
552 B
Python
17 lines
552 B
Python
from django.db.models import Sum
|
|
from django.db.models.signals import post_delete, post_save
|
|
from django.dispatch import receiver
|
|
|
|
from .models import VirtualDisk, VirtualMachine
|
|
|
|
|
|
@receiver((post_delete, post_save), sender=VirtualDisk)
|
|
def update_virtualmachine_disk(instance, **kwargs):
|
|
"""
|
|
When a VirtualDisk has been modified, update the aggregate disk_size value of its VM.
|
|
"""
|
|
vm = instance.virtual_machine
|
|
VirtualMachine.objects.filter(pk=vm.pk).update(
|
|
disk=vm.virtualdisks.aggregate(Sum('size'))['size__sum']
|
|
)
|