mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-14 01:41:22 -06:00
This commit is contained in:
parent
621b29cd71
commit
426e6439e3
@ -1,7 +1,5 @@
|
|||||||
from django.apps import AppConfig
|
from django.apps import AppConfig
|
||||||
|
|
||||||
from netbox import denormalized
|
|
||||||
|
|
||||||
|
|
||||||
class VirtualizationConfig(AppConfig):
|
class VirtualizationConfig(AppConfig):
|
||||||
name = 'virtualization'
|
name = 'virtualization'
|
||||||
@ -15,10 +13,5 @@ class VirtualizationConfig(AppConfig):
|
|||||||
# Register models
|
# Register models
|
||||||
register_models(*self.get_models())
|
register_models(*self.get_models())
|
||||||
|
|
||||||
# Register denormalized fields
|
|
||||||
denormalized.register(VirtualMachine, 'cluster', {
|
|
||||||
'site': '_site',
|
|
||||||
})
|
|
||||||
|
|
||||||
# Register counters
|
# Register counters
|
||||||
connect_counters(VirtualMachine)
|
connect_counters(VirtualMachine)
|
||||||
|
@ -2,7 +2,7 @@ from django.db.models import Sum
|
|||||||
from django.db.models.signals import post_delete, post_save
|
from django.db.models.signals import post_delete, post_save
|
||||||
from django.dispatch import receiver
|
from django.dispatch import receiver
|
||||||
|
|
||||||
from .models import VirtualDisk, VirtualMachine
|
from .models import Cluster, VirtualDisk, VirtualMachine
|
||||||
|
|
||||||
|
|
||||||
@receiver((post_delete, post_save), sender=VirtualDisk)
|
@receiver((post_delete, post_save), sender=VirtualDisk)
|
||||||
@ -14,3 +14,12 @@ def update_virtualmachine_disk(instance, **kwargs):
|
|||||||
VirtualMachine.objects.filter(pk=vm.pk).update(
|
VirtualMachine.objects.filter(pk=vm.pk).update(
|
||||||
disk=vm.virtualdisks.aggregate(Sum('size'))['size__sum']
|
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)
|
||||||
|
Loading…
Reference in New Issue
Block a user