Skip to content

Commit df9d67b

Browse files
committed
Fixes #7851: Add missing cluster name filter for virtual machines
1 parent f32e694 commit df9d67b

File tree

3 files changed

+9
-3
lines changed

3 files changed

+9
-3
lines changed

docs/release-notes/version-3.0.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
* [#7729](https://github.com/netbox-community/netbox/issues/7729) - Fix permissions evaluation when displaying VLAN group VLANs table
1616
* [#7739](https://github.com/netbox-community/netbox/issues/7739) - Fix exception when tracing cable across circuit with no far end termination
1717
* [#7813](https://github.com/netbox-community/netbox/issues/7813) - Fix handling of errors during export template rendering
18+
* [#7851](https://github.com/netbox-community/netbox/issues/7851) - Add missing cluster name filter for virtual machines
1819

1920
---
2021

netbox/virtualization/filtersets.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,12 @@ class VirtualMachineFilterSet(PrimaryModelFilterSet, TenancyFilterSet, LocalConf
144144
queryset=Cluster.objects.all(),
145145
label='Cluster (ID)',
146146
)
147+
cluster = django_filters.ModelMultipleChoiceFilter(
148+
field_name='cluster__name',
149+
queryset=Cluster.objects.all(),
150+
to_field_name='name',
151+
label='Cluster',
152+
)
147153
region_id = TreeNodeMultipleChoiceFilter(
148154
queryset=Region.objects.all(),
149155
field_name='cluster__site__region',

netbox/virtualization/tests/test_filtersets.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -324,9 +324,8 @@ def test_cluster(self):
324324
clusters = Cluster.objects.all()[:2]
325325
params = {'cluster_id': [clusters[0].pk, clusters[1].pk]}
326326
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
327-
# TODO: 'cluster' should match on name
328-
# params = {'cluster': [clusters[0].name, clusters[1].name]}
329-
# self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
327+
params = {'cluster': [clusters[0].name, clusters[1].name]}
328+
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
330329

331330
def test_region(self):
332331
regions = Region.objects.all()[:2]

0 commit comments

Comments
 (0)