|
|
@@ -2,7 +2,7 @@ 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
|
|
|
+from .models import Cluster, VirtualDisk, VirtualMachine
|
|
|
|
|
|
|
|
|
@receiver((post_delete, post_save), sender=VirtualDisk)
|
|
|
@@ -14,3 +14,12 @@ def update_virtualmachine_disk(instance, **kwargs):
|
|
|
VirtualMachine.objects.filter(pk=vm.pk).update(
|
|
|
disk=vm.virtualdisks.aggregate(Sum('size'))['size__sum']
|
|
|
)
|
|
|
+
|
|
|
+
|
|
|
+@receiver(post_save, sender=Cluster)
|
|
|
+def update_virtualmachine_site(instance, **kwargs):
|
|
|
+ """
|
|
|
+ Update the assigned site for all VMs to match that of the Cluster (if any).
|
|
|
+ """
|
|
|
+ if instance._site:
|
|
|
+ VirtualMachine.objects.filter(cluster=instance).update(site=instance._site)
|