Merge ~cgrabowski/maas:remove_new_filter_list_from_controller_and_device into maas:master

Proposed by Christian Grabowski
Status: Merged
Approved by: Christian Grabowski
Approved revision: f2d22a8662281f29812b288f2ba1e26631b47f3a
Merge reported by: MAAS Lander
Merged at revision: not available
Proposed branch: ~cgrabowski/maas:remove_new_filter_list_from_controller_and_device
Merge into: maas:master
Diff against target: 291 lines (+33/-42)
6 files modified
src/maasserver/websockets/base.py (+2/-2)
src/maasserver/websockets/handlers/machine.py (+1/-0)
src/maasserver/websockets/handlers/node.py (+1/-1)
src/maasserver/websockets/handlers/tests/test_controller.py (+19/-29)
src/maasserver/websockets/handlers/tests/test_device.py (+5/-5)
src/maasserver/websockets/tests/test_base.py (+5/-5)
Reviewer Review Type Date Requested Status
MAAS Lander Approve
Alexsander de Souza Approve
Review via email: mp+427513@code.launchpad.net

Commit message

revert units for device and controller handlers to original list schema

only use paginated list on Machine handler

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

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

STATUS: FAILED
LOG: http://maas-ci.internal:8080/job/maas-tester/190/consoleText
COMMIT: 9e742872cb915921d581b87bbbdacb7f21057d00

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

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

STATUS: FAILED
LOG: http://maas-ci.internal:8080/job/maas-tester/191/consoleText
COMMIT: 8fbba2997a577d5c702e880dcc16f0517755ea09

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

+1

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

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

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

review: Needs Fixing
Revision history for this message
Christian Grabowski (cgrabowski) wrote :

jenkins: !test

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

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

STATUS: SUCCESS
COMMIT: e234c1c92487366168390394e1daef24afca347a

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

LANDING
-b remove_new_filter_list_from_controller_and_device lp:~cgrabowski/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: FAILED BUILD
LOG: http://maas-ci.internal:8080/job/maas-tester/194/consoleText

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

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

STATUS: SUCCESS
COMMIT: f2d22a8662281f29812b288f2ba1e26631b47f3a

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/base.py b/src/maasserver/websockets/base.py
index e0526ab..2f4d98f 100644
--- a/src/maasserver/websockets/base.py
+++ b/src/maasserver/websockets/base.py
@@ -116,7 +116,7 @@ class HandlerOptions:
116 view_permission = None116 view_permission = None
117 edit_permission = None117 edit_permission = None
118 delete_permission = None118 delete_permission = None
119 use_new_schema = False119 use_paginated_list = False
120 dft_page_size = 100120 dft_page_size = 100
121121
122 def __new__(cls, meta=None):122 def __new__(cls, meta=None):
@@ -525,7 +525,7 @@ class Handler(metaclass=HandlerMetaclass):
525 if "filter" in params:525 if "filter" in params:
526 qs_filter = self._filter(qs_filter, "list", params["filter"])526 qs_filter = self._filter(qs_filter, "list", params["filter"])
527527
528 if self._meta.use_new_schema:528 if self._meta.use_paginated_list:
529 return self._build_list_grouping(qs_filter, params)529 return self._build_list_grouping(qs_filter, params)
530 else:530 else:
531 return self._build_list_simple(qs_filter, params)531 return self._build_list_simple(qs_filter, params)
diff --git a/src/maasserver/websockets/handlers/machine.py b/src/maasserver/websockets/handlers/machine.py
index a64d51d..c7e0915 100644
--- a/src/maasserver/websockets/handlers/machine.py
+++ b/src/maasserver/websockets/handlers/machine.py
@@ -257,6 +257,7 @@ class MachineHandler(NodeHandler):
257 view_permission = NodePermission.view257 view_permission = NodePermission.view
258 edit_permission = NodePermission.admin258 edit_permission = NodePermission.admin
259 delete_permission = NodePermission.admin259 delete_permission = NodePermission.admin
260 use_paginated_list = True
260261
261 def __init__(self, *args, **kwargs):262 def __init__(self, *args, **kwargs):
262 super().__init__(*args, **kwargs)263 super().__init__(*args, **kwargs)
diff --git a/src/maasserver/websockets/handlers/node.py b/src/maasserver/websockets/handlers/node.py
index 77b6dfc..b422758 100644
--- a/src/maasserver/websockets/handlers/node.py
+++ b/src/maasserver/websockets/handlers/node.py
@@ -158,7 +158,7 @@ class NodeHandler(TimestampedModelHandler):
158 pk = "system_id"158 pk = "system_id"
159 bulk_pk = "system_ids"159 bulk_pk = "system_ids"
160 pk_type = str160 pk_type = str
161 use_new_schema = True161 use_paginated_list = False
162162
163 def __init__(self, user, cache, request):163 def __init__(self, user, cache, request):
164 super().__init__(user, cache, request)164 super().__init__(user, cache, request)
diff --git a/src/maasserver/websockets/handlers/tests/test_controller.py b/src/maasserver/websockets/handlers/tests/test_controller.py
index f961ede..692f01d 100644
--- a/src/maasserver/websockets/handlers/tests/test_controller.py
+++ b/src/maasserver/websockets/handlers/tests/test_controller.py
@@ -38,8 +38,7 @@ class TestControllerHandler(MAASServerTestCase):
3838
39 handler = ControllerHandler(owner, {}, None)39 handler = ControllerHandler(owner, {}, None)
40 list_results = handler.list({})40 list_results = handler.list({})
41 list_items = list_results["groups"][0]["items"]41 result = {entry["id"]: entry["vlans_ha"] for entry in list_results}
42 result = {entry["id"]: entry["vlans_ha"] for entry in list_items}
43 self.assertEqual(42 self.assertEqual(
44 result,43 result,
45 {44 {
@@ -53,13 +52,12 @@ class TestControllerHandler(MAASServerTestCase):
53 handler = ControllerHandler(owner, {}, None)52 handler = ControllerHandler(owner, {}, None)
54 node = factory.make_RackController(owner=owner)53 node = factory.make_RackController(owner=owner)
55 list_results = handler.list({})54 list_results = handler.list({})
56 list_items = list_results["groups"][0]["items"]55 self.assertEqual(1, len(list_results))
57 self.assertEqual(1, len(list_items))
58 self.assertEqual(56 self.assertEqual(
59 NODE_TYPE.RACK_CONTROLLER, list_items[0].get("node_type")57 NODE_TYPE.RACK_CONTROLLER, list_results[0].get("node_type")
60 )58 )
61 self.assertEqual(59 self.assertEqual(
62 list_items[0].get("last_image_sync"),60 list_results[0].get("last_image_sync"),
63 dehydrate_datetime(node.last_image_sync),61 dehydrate_datetime(node.last_image_sync),
64 )62 )
65 data = handler.get({"system_id": node.system_id})63 data = handler.get({"system_id": node.system_id})
@@ -73,12 +71,11 @@ class TestControllerHandler(MAASServerTestCase):
73 handler = ControllerHandler(owner, {}, None)71 handler = ControllerHandler(owner, {}, None)
74 node = factory.make_RackController(owner=owner, last_image_sync=None)72 node = factory.make_RackController(owner=owner, last_image_sync=None)
75 list_results = handler.list({})73 list_results = handler.list({})
76 list_items = list_results["groups"][0]["items"]74 self.assertEqual(1, len(list_results))
77 self.assertEqual(1, len(list_items))
78 self.assertEqual(75 self.assertEqual(
79 NODE_TYPE.RACK_CONTROLLER, list_items[0].get("node_type")76 NODE_TYPE.RACK_CONTROLLER, list_results[0].get("node_type")
80 )77 )
81 self.assertIsNone(list_items[0].get("last_image_sync"))78 self.assertIsNone(list_results[0].get("last_image_sync"))
82 data = handler.get({"system_id": node.system_id})79 data = handler.get({"system_id": node.system_id})
83 self.assertIsNone(data.get("last_image_sync"))80 self.assertIsNone(data.get("last_image_sync"))
8481
@@ -94,10 +91,9 @@ class TestControllerHandler(MAASServerTestCase):
94 device_with_parent.save()91 device_with_parent.save()
95 node = factory.make_RackController(owner=owner)92 node = factory.make_RackController(owner=owner)
96 list_results = handler.list({})93 list_results = handler.list({})
97 list_items = list_results["groups"][0]["items"]94 self.assertEqual(1, len(list_results))
98 self.assertEqual(1, len(list_items))
99 self.assertEqual(95 self.assertEqual(
100 NODE_TYPE.RACK_CONTROLLER, list_items[0].get("node_type")96 NODE_TYPE.RACK_CONTROLLER, list_results[0].get("node_type")
101 )97 )
10298
103 def test_list_num_queries_is_the_expected_number(self):99 def test_list_num_queries_is_the_expected_number(self):
@@ -250,8 +246,7 @@ class TestControllerHandler(MAASServerTestCase):
250 handler = ControllerHandler(owner, {}, None)246 handler = ControllerHandler(owner, {}, None)
251 factory.make_RackController()247 factory.make_RackController()
252 list_results = handler.list({})248 list_results = handler.list({})
253 list_items = list_results["groups"][0]["items"]249 self.assertEqual(list_results[0]["versions"], {})
254 self.assertEqual(list_items[0]["versions"], {})
255250
256 def test_dehydrate_with_versions_snap(self):251 def test_dehydrate_with_versions_snap(self):
257 owner = factory.make_admin()252 owner = factory.make_admin()
@@ -271,9 +266,8 @@ class TestControllerHandler(MAASServerTestCase):
271 )266 )
272 ControllerInfo.objects.set_versions_info(rack, versions)267 ControllerInfo.objects.set_versions_info(rack, versions)
273 list_results = handler.list({})268 list_results = handler.list({})
274 list_items = list_results["groups"][0]["items"]
275 self.assertEqual(269 self.assertEqual(
276 list_items[0]["versions"],270 list_results[0]["versions"],
277 {271 {
278 "install_type": "snap",272 "install_type": "snap",
279 "current": {273 "current": {
@@ -307,9 +301,8 @@ class TestControllerHandler(MAASServerTestCase):
307 )301 )
308 ControllerInfo.objects.set_versions_info(rack, versions)302 ControllerInfo.objects.set_versions_info(rack, versions)
309 list_results = handler.list({})303 list_results = handler.list({})
310 list_items = list_results["groups"][0]["items"]
311 self.assertEqual(304 self.assertEqual(
312 list_items[0]["versions"],305 list_results[0]["versions"],
313 {306 {
314 "install_type": "deb",307 "install_type": "deb",
315 "current": {308 "current": {
@@ -337,9 +330,8 @@ class TestControllerHandler(MAASServerTestCase):
337 )330 )
338 ControllerInfo.objects.set_versions_info(rack, versions)331 ControllerInfo.objects.set_versions_info(rack, versions)
339 list_results = handler.list({})332 list_results = handler.list({})
340 list_items = list_results["groups"][0]["items"]
341 self.assertEqual(333 self.assertEqual(
342 list_items[0]["versions"],334 list_results[0]["versions"],
343 {335 {
344 "install_type": "snap",336 "install_type": "snap",
345 "current": {337 "current": {
@@ -376,9 +368,8 @@ class TestControllerHandler(MAASServerTestCase):
376 ),368 ),
377 )369 )
378 list_results = handler.list({})370 list_results = handler.list({})
379 list_items = list_results["groups"][0]["items"]
380 self.assertEqual(371 self.assertEqual(
381 list_items[0]["versions"],372 list_results[0]["versions"],
382 {373 {
383 "install_type": "snap",374 "install_type": "snap",
384 "current": {375 "current": {
@@ -416,8 +407,7 @@ class TestControllerHandler(MAASServerTestCase):
416 ),407 ),
417 )408 )
418 list_results = handler.list({})409 list_results = handler.list({})
419 list_items = list_results["groups"][0]["items"]410 versions = list_results[0]["versions"]
420 versions = list_items[0]["versions"]
421 self.assertEqual(versions["issues"], ["different-cohort"])411 self.assertEqual(versions["issues"], ["different-cohort"])
422412
423 def test_dehydrate_with_versions_empty_origin(self):413 def test_dehydrate_with_versions_empty_origin(self):
@@ -432,8 +422,7 @@ class TestControllerHandler(MAASServerTestCase):
432 )422 )
433 ControllerInfo.objects.set_versions_info(rack, versions)423 ControllerInfo.objects.set_versions_info(rack, versions)
434 list_results = handler.list({})424 list_results = handler.list({})
435 [list_item] = list_results["groups"][0]["items"]425 self.assertEqual(list_results[0]["versions"]["origin"], "")
436 self.assertEqual(list_item["versions"]["origin"], "")
437426
438 def test_dehydrate_includes_tags(self):427 def test_dehydrate_includes_tags(self):
439 owner = factory.make_admin()428 owner = factory.make_admin()
@@ -442,8 +431,9 @@ class TestControllerHandler(MAASServerTestCase):
442 tags = [factory.make_Tag(definition="") for _ in range(3)]431 tags = [factory.make_Tag(definition="") for _ in range(3)]
443 region.tags.set(tags)432 region.tags.set(tags)
444 list_results = handler.list({})433 list_results = handler.list({})
445 [list_item] = list_results["groups"][0]["items"]434 self.assertCountEqual(
446 self.assertCountEqual(list_item["tags"], [tag.id for tag in tags])435 list_results[0]["tags"], [tag.id for tag in tags]
436 )
447437
448 def test_register_info_non_admin(self):438 def test_register_info_non_admin(self):
449 user = factory.make_User()439 user = factory.make_User()
diff --git a/src/maasserver/websockets/handlers/tests/test_device.py b/src/maasserver/websockets/handlers/tests/test_device.py
index b7aa50d..e22748b 100644
--- a/src/maasserver/websockets/handlers/tests/test_device.py
+++ b/src/maasserver/websockets/handlers/tests/test_device.py
@@ -302,7 +302,7 @@ class TestDeviceHandler(MAASTransactionServerTestCase):
302 list_results = handler.list({})302 list_results = handler.list({})
303 self.assertCountEqual(303 self.assertCountEqual(
304 [self.dehydrate_device(device, owner, for_list=True)],304 [self.dehydrate_device(device, owner, for_list=True)],
305 list_results["groups"][0]["items"],305 list_results,
306 )306 )
307307
308 @transactional308 @transactional
@@ -318,7 +318,7 @@ class TestDeviceHandler(MAASTransactionServerTestCase):
318 list_results = handler.list({})318 list_results = handler.list({})
319 self.assertCountEqual(319 self.assertCountEqual(
320 [self.dehydrate_device(device, owner, for_list=True)],320 [self.dehydrate_device(device, owner, for_list=True)],
321 list_results["groups"][0]["items"],321 list_results,
322 )322 )
323323
324 @transactional324 @transactional
@@ -331,7 +331,7 @@ class TestDeviceHandler(MAASTransactionServerTestCase):
331 list_results = handler.list({})331 list_results = handler.list({})
332 self.assertCountEqual(332 self.assertCountEqual(
333 [self.dehydrate_device(device, owner, for_list=True)],333 [self.dehydrate_device(device, owner, for_list=True)],
334 list_results["groups"][0]["items"],334 list_results,
335 )335 )
336336
337 @transactional337 @transactional
@@ -354,7 +354,7 @@ class TestDeviceHandler(MAASTransactionServerTestCase):
354 # and slowing down the client waiting for the response.354 # and slowing down the client waiting for the response.
355 self.assertEqual(355 self.assertEqual(
356 query_10_count,356 query_10_count,
357 13,357 11,
358 "Number of queries has changed; make sure this is expected.",358 "Number of queries has changed; make sure this is expected.",
359 )359 )
360360
@@ -394,7 +394,7 @@ class TestDeviceHandler(MAASTransactionServerTestCase):
394 list_results = handler.list({})394 list_results = handler.list({})
395 self.assertCountEqual(395 self.assertCountEqual(
396 [self.dehydrate_device(device, user, for_list=True)],396 [self.dehydrate_device(device, user, for_list=True)],
397 list_results["groups"][0]["items"],397 list_results,
398 )398 )
399399
400 @transactional400 @transactional
diff --git a/src/maasserver/websockets/tests/test_base.py b/src/maasserver/websockets/tests/test_base.py
index 989c69d..aa3697a 100644
--- a/src/maasserver/websockets/tests/test_base.py
+++ b/src/maasserver/websockets/tests/test_base.py
@@ -493,7 +493,7 @@ class TestHandler(MAASServerTestCase, FakeNodesHandlerMixin):
493 nodes = [factory.make_Node() for _ in range(5)]493 nodes = [factory.make_Node() for _ in range(5)]
494 handler = self.make_nodes_handler(494 handler = self.make_nodes_handler(
495 list_fields=["system_id"],495 list_fields=["system_id"],
496 use_new_schema=True,496 use_paginated_list=True,
497 )497 )
498 output = {498 output = {
499 "count": 5,499 "count": 5,
@@ -522,7 +522,7 @@ class TestHandler(MAASServerTestCase, FakeNodesHandlerMixin):
522 nodes = [factory.make_Node() for _ in range(5)]522 nodes = [factory.make_Node() for _ in range(5)]
523 handler = self.make_nodes_handler(523 handler = self.make_nodes_handler(
524 list_fields=["system_id"],524 list_fields=["system_id"],
525 use_new_schema=True,525 use_paginated_list=True,
526 )526 )
527 output = {527 output = {
528 "count": 5,528 "count": 5,
@@ -551,7 +551,7 @@ class TestHandler(MAASServerTestCase, FakeNodesHandlerMixin):
551 nodes = [factory.make_Node() for _ in range(5)]551 nodes = [factory.make_Node() for _ in range(5)]
552 handler = self.make_nodes_handler(552 handler = self.make_nodes_handler(
553 list_fields=["system_id"],553 list_fields=["system_id"],
554 use_new_schema=True,554 use_paginated_list=True,
555 )555 )
556 output = {556 output = {
557 "count": 5,557 "count": 5,
@@ -580,7 +580,7 @@ class TestHandler(MAASServerTestCase, FakeNodesHandlerMixin):
580 nodes = [factory.make_Node() for _ in range(5)]580 nodes = [factory.make_Node() for _ in range(5)]
581 handler = self.make_nodes_handler(581 handler = self.make_nodes_handler(
582 list_fields=["system_id"],582 list_fields=["system_id"],
583 use_new_schema=True,583 use_paginated_list=True,
584 )584 )
585 output = {585 output = {
586 "count": 5,586 "count": 5,
@@ -1021,7 +1021,7 @@ class TestHandler(MAASServerTestCase, FakeNodesHandlerMixin):
10211021
1022class TestHandlerGrouping(MAASServerTestCase, FakeNodesHandlerMixin):1022class TestHandlerGrouping(MAASServerTestCase, FakeNodesHandlerMixin):
1023 def make_nodes_handler(self, **kwargs):1023 def make_nodes_handler(self, **kwargs):
1024 return super().make_nodes_handler(use_new_schema=True, **kwargs)1024 return super().make_nodes_handler(use_paginated_list=True, **kwargs)
10251025
1026 def test_group_simple(self):1026 def test_group_simple(self):
1027 nodes_ready = [1027 nodes_ready = [

Subscribers

People subscribed via source and target branches