From c7e6f5e55693f7d6a66e26be7647282ab5bf36c8 Mon Sep 17 00:00:00 2001 From: Arthur Date: Tue, 16 May 2023 14:30:35 -0700 Subject: [PATCH] 6347 virtual machine interface count --- netbox/virtualization/apps.py | 5 +++++ netbox/virtualization/models/virtualmachines.py | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/netbox/virtualization/apps.py b/netbox/virtualization/apps.py index 1b6b110df..913c8d795 100644 --- a/netbox/virtualization/apps.py +++ b/netbox/virtualization/apps.py @@ -6,3 +6,8 @@ class VirtualizationConfig(AppConfig): def ready(self): from . import search + from .models import VMInterface + + from utilities.counter import connect_counter + + connect_counter('_interface_count', VMInterface.virtual_machine) diff --git a/netbox/virtualization/models/virtualmachines.py b/netbox/virtualization/models/virtualmachines.py index 6e9cc5664..59351730e 100644 --- a/netbox/virtualization/models/virtualmachines.py +++ b/netbox/virtualization/models/virtualmachines.py @@ -11,7 +11,7 @@ from extras.models import ConfigContextModel from extras.querysets import ConfigContextModelQuerySet from netbox.config import get_config from netbox.models import NetBoxModel, PrimaryModel -from utilities.fields import NaturalOrderingField +from utilities.fields import CounterCacheField, NaturalOrderingField from utilities.ordering import naturalize_interface from utilities.query_functions import CollateAsChar from virtualization.choices import * @@ -120,6 +120,8 @@ class VirtualMachine(PrimaryModel, ConfigContextModel): verbose_name='Disk (GB)' ) + _interface_count = CounterCacheField() + # Generic relation contacts = GenericRelation( to='tenancy.ContactAssignment'