Merge ~cgrabowski/maas:add_filter_groups_and_options_to_allowed_methods into maas:master

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

Commit message

add filter groups and options to allowed_methods on Machine handler

To post a comment you must log in.
Revision history for this message
Alexsander de Souza (alexsander-souza) wrote :

+1

review: Approve
Revision history for this message
Adam Collard (adam-collard) wrote :

I wonder if it's worth adding a test that lists the methods that are available but not allowed, so anyone adding a new method will see a failure and have to decide to either allow it or adjust the test to approve disallowing it

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

> I wonder if it's worth adding a test that lists the methods that are available
> but not allowed, so anyone adding a new method will see a failure and have to
> decide to either allow it or adjust the test to approve disallowing it

I think that's a good idea, will add.

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

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

STATUS: SUCCESS
COMMIT: 1549fd527add2f3cade9763622964695f78c8118

review: Approve
544e6b1... by Christian Grabowski

add test for allowed_methods on Machine handler

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

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

STATUS: SUCCESS
COMMIT: 544e6b12e6e8ea2dc2370451138d6c18123e9d67

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/src/maasserver/websockets/handlers/machine.py b/src/maasserver/websockets/handlers/machine.py
2index 262f7f9..495a43c 100644
3--- a/src/maasserver/websockets/handlers/machine.py
4+++ b/src/maasserver/websockets/handlers/machine.py
5@@ -199,6 +199,8 @@ class MachineHandler(NodeHandler):
6 "get_latest_failed_testing_script_results",
7 "get_workload_annotations",
8 "set_workload_annotations",
9+ "filter_groups",
10+ "filter_options",
11 ]
12 form = AdminMachineWithMACAddressesForm
13 exclude = [
14diff --git a/src/maasserver/websockets/handlers/tests/test_machine.py b/src/maasserver/websockets/handlers/tests/test_machine.py
15index 0dd40ea..93835ef 100644
16--- a/src/maasserver/websockets/handlers/tests/test_machine.py
17+++ b/src/maasserver/websockets/handlers/tests/test_machine.py
18@@ -9,6 +9,7 @@ import logging
19 from operator import itemgetter
20 import random
21 import re
22+from types import FunctionType
23 from unittest.mock import ANY
24
25 from django.core.exceptions import ValidationError
26@@ -547,6 +548,67 @@ class TestMachineHandler(MAASServerTestCase):
27 node_type=NODE_TYPE.DEVICE, parent=node, interface=True
28 )
29
30+ def test_allowed_methods(self):
31+ not_allowed_methods = [
32+ "dehydrate",
33+ "dehydrate_all_ip_addresses",
34+ "dehydrate_blockdevice",
35+ "dehydrate_cache_set",
36+ "dehydrate_created",
37+ "dehydrate_device",
38+ "dehydrate_domain",
39+ "dehydrate_events",
40+ "dehydrate_filesystem",
41+ "dehydrate_hugepages",
42+ "dehydrate_interface",
43+ "dehydrate_ip_address",
44+ "dehydrate_last_image_sync",
45+ "dehydrate_numanode",
46+ "dehydrate_owner",
47+ "dehydrate_partitions",
48+ "dehydrate_pod",
49+ "dehydrate_pool",
50+ "dehydrate_power_parameters",
51+ "dehydrate_script_set_status",
52+ "dehydrate_show_os_info",
53+ "dehydrate_test_statuses",
54+ "dehydrate_updated",
55+ "dehydrate_vlan",
56+ "dehydrate_volume_group",
57+ "dehydrate_zone",
58+ "delete",
59+ "execute",
60+ "full_dehydrate",
61+ "full_hydrate",
62+ "get_all_fabric_names",
63+ "get_all_space_names",
64+ "get_all_storage_tags",
65+ "get_all_subnets",
66+ "get_blockdevices_for",
67+ "get_form_class",
68+ "get_grouped_storages",
69+ "get_mac_addresses",
70+ "get_object",
71+ "get_providing_dhcp",
72+ "get_queryset",
73+ "hydrate",
74+ "listen",
75+ "on_listen",
76+ "on_listen_for_active_pk",
77+ "preprocess_form",
78+ "preprocess_node_form",
79+ "refetch",
80+ "update_blockdevice_filesystem",
81+ "update_partition_filesystem",
82+ ]
83+ [
84+ self.assertIn(attr, MachineHandler.Meta.allowed_methods)
85+ for attr in dir(MachineHandler)
86+ if isinstance(getattr(MachineHandler, attr), FunctionType)
87+ and attr not in not_allowed_methods
88+ and not attr.startswith("_")
89+ ]
90+
91 def test_get_refresh_script_result_cache(self):
92 owner = factory.make_User()
93 node = factory.make_Node(owner=owner)

Subscribers

People subscribed via source and target branches