Merge ~cgrabowski/maas:machine_filter_count_endpoint into maas:master

Proposed by Christian Grabowski
Status: Merged
Approved by: Christian Grabowski
Approved revision: 37f765f313d20b6be2b5e13d02a835733576aa3e
Merge reported by: MAAS Lander
Merged at revision: not available
Proposed branch: ~cgrabowski/maas:machine_filter_count_endpoint
Merge into: maas:master
Diff against target: 51 lines (+28/-0)
2 files modified
src/maasserver/websockets/handlers/machine.py (+7/-0)
src/maasserver/websockets/handlers/tests/test_machine.py (+21/-0)
Reviewer Review Type Date Requested Status
MAAS Lander Approve
Alexsander de Souza Approve
Review via email: mp+426769@code.launchpad.net

Commit message

add count endpoint to machine handler

To post a comment you must log in.
Revision history for this message
MAAS Lander (maas-lander) wrote :

UNIT TESTS
-b machine_filter_count_endpoint lp:~cgrabowski/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: FAILED
LOG: http://maas-ci.internal:8080/job/maas-tester/39/consoleText
COMMIT: c02017503ae92de4a9e29c3ede3213756519c339

review: Needs Fixing
Revision history for this message
Alexsander de Souza (alexsander-souza) wrote :

+1

review: Approve
Revision history for this message
Anton Troyanov (troyanov) wrote :

jenkins: !test

Revision history for this message
MAAS Lander (maas-lander) wrote :

UNIT TESTS
-b machine_filter_count_endpoint lp:~cgrabowski/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: FAILED
LOG: http://maas-ci.internal:8080/job/maas-tester/105/consoleText
COMMIT: dd8e822617371a0f22f707f1c3c016d0fab92cff

review: Needs Fixing
Revision history for this message
MAAS Lander (maas-lander) wrote :

UNIT TESTS
-b machine_filter_count_endpoint lp:~cgrabowski/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: SUCCESS
COMMIT: 37f765f313d20b6be2b5e13d02a835733576aa3e

review: Approve

Update scan failed

At least one of the branches involved have failed to scan. You can manually schedule a rescan if required.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
diff --git a/src/maasserver/websockets/handlers/machine.py b/src/maasserver/websockets/handlers/machine.py
index 955c350..5a67786 100644
--- a/src/maasserver/websockets/handlers/machine.py
+++ b/src/maasserver/websockets/handlers/machine.py
@@ -203,6 +203,7 @@ class MachineHandler(NodeHandler):
203 "set_workload_annotations",203 "set_workload_annotations",
204 "filter_groups",204 "filter_groups",
205 "filter_options",205 "filter_options",
206 "count",
206 ]207 ]
207 form = AdminMachineWithMACAddressesForm208 form = AdminMachineWithMACAddressesForm
208 exclude = [209 exclude = [
@@ -1204,3 +1205,9 @@ class MachineHandler(NodeHandler):
1204 except ValueError as e:1205 except ValueError as e:
1205 raise HandlerValidationError(str(e))1206 raise HandlerValidationError(str(e))
1206 return OwnerData.objects.get_owner_data(machine)1207 return OwnerData.objects.get_owner_data(machine)
1208
1209 def count(self, params):
1210 qs = self.get_queryset()
1211 if "filter" in params:
1212 qs = self._filter(qs, "list", params["filter"])
1213 return {"count": qs.count()}
diff --git a/src/maasserver/websockets/handlers/tests/test_machine.py b/src/maasserver/websockets/handlers/tests/test_machine.py
index c4d3c6f..369ae81 100644
--- a/src/maasserver/websockets/handlers/tests/test_machine.py
+++ b/src/maasserver/websockets/handlers/tests/test_machine.py
@@ -6342,3 +6342,24 @@ class TestMachineHandlerFilter(MAASServerTestCase):
6342 self.assertIsNotNone(6342 self.assertIsNotNone(
6343 handler.on_listen("machine", "update", node2.system_id)6343 handler.on_listen("machine", "update", node2.system_id)
6344 )6344 )
6345
6346 def test_count_endpoint_no_filter(self):
6347 owner = factory.make_User()
6348 nodes = [factory.make_Node(owner=owner) for _ in range(3)]
6349 handler = MachineHandler(owner, {}, None)
6350 self.assertEqual(len(nodes), handler.count({})["count"])
6351
6352 def test_count_endpoint_filter(self):
6353 owner = factory.make_User()
6354 zone = factory.make_Zone()
6355 nodes_without_zone = [factory.make_Node() for _ in range(2)]
6356 nodes_in_zone = [factory.make_Node(zone=zone) for _ in range(2)]
6357 handler = MachineHandler(owner, {}, None)
6358 self.assertEqual(
6359 len(nodes_without_zone) + len(nodes_in_zone),
6360 handler.count({})["count"],
6361 )
6362 self.assertEqual(
6363 len(nodes_in_zone),
6364 handler.count({"filter": {"zone": zone.name}})["count"],
6365 )

Subscribers

People subscribed via source and target branches