diff --git a/netbox/virtualization/filters.py b/netbox/virtualization/filters.py index 1563e57a8..bd3e19400 100644 --- a/netbox/virtualization/filters.py +++ b/netbox/virtualization/filters.py @@ -84,6 +84,17 @@ class VirtualMachineFilter(CustomFieldFilterSet): to_field_name='slug', label='Cluster group (slug)', ) + cluster_type_id = django_filters.ModelMultipleChoiceFilter( + name='cluster__type', + queryset=ClusterType.objects.all(), + label='Cluster type (ID)', + ) + cluster_type = django_filters.ModelMultipleChoiceFilter( + name='cluster__type__slug', + queryset=ClusterType.objects.all(), + to_field_name='slug', + label='Cluster type (slug)', + ) cluster_id = django_filters.ModelMultipleChoiceFilter( queryset=Cluster.objects.all(), label='Cluster (ID)', diff --git a/netbox/virtualization/forms.py b/netbox/virtualization/forms.py index 50e2816f1..16b33962c 100644 --- a/netbox/virtualization/forms.py +++ b/netbox/virtualization/forms.py @@ -340,6 +340,11 @@ class VirtualMachineFilterForm(BootstrapMixin, CustomFieldFilterForm): to_field_name='slug', null_option=(0, 'None') ) + cluster_type = FilterChoiceField( + queryset=ClusterType.objects.all(), + to_field_name='slug', + null_option=(0, 'None') + ) cluster_id = FilterChoiceField( queryset=Cluster.objects.annotate(filter_count=Count('virtual_machines')), label='Cluster'