From 3e7d75b579f1ab9facbf2bf147cc7b0560896408 Mon Sep 17 00:00:00 2001 From: Ricardo Dias Date: Sun, 8 Apr 2018 18:37:30 +0100 Subject: [PATCH] mgr/dashboard: restcontroller: fix detection of id args in element requests Fixes: https://tracker.ceph.com/issues/23593 Signed-off-by: Ricardo Dias --- .../mgr/dashboard/controllers/__init__.py | 25 ++++++++++--------- src/pybind/mgr/dashboard/tests/test_tools.py | 2 +- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/src/pybind/mgr/dashboard/controllers/__init__.py b/src/pybind/mgr/dashboard/controllers/__init__.py index 3eaa28f713320..e0a25e56315ae 100644 --- a/src/pybind/mgr/dashboard/controllers/__init__.py +++ b/src/pybind/mgr/dashboard/controllers/__init__.py @@ -351,17 +351,17 @@ class RESTController(BaseController): """ - _method_mapping = { - ('GET', False): ('list', 200), - ('PUT', False): ('bulk_set', 200), - ('PATCH', False): ('bulk_set', 200), - ('POST', False): ('create', 201), - ('DELETE', False): ('bulk_delete', 204), - ('GET', True): ('get', 200), - ('PUT', True): ('set', 200), - ('PATCH', True): ('set', 200), - ('DELETE', True): ('delete', 204), - } + _method_mapping = collections.OrderedDict([ + (('GET', False), ('list', 200)), + (('PUT', False), ('bulk_set', 200)), + (('PATCH', False), ('bulk_set', 200)), + (('POST', False), ('create', 201)), + (('DELETE', False), ('bulk_delete', 204)), + (('GET', True), ('get', 200)), + (('PUT', True), ('set', 200)), + (('PATCH', True), ('set', 200)), + (('DELETE', True), ('delete', 204)), + ]) @classmethod def endpoints(cls): @@ -453,7 +453,8 @@ class RESTController(BaseController): kwargs.update(data.items()) return func(*args, **kwargs) - return func(data, *args, **kwargs) + kwargs['data'] = data + return func(*args, **kwargs) return inner @staticmethod diff --git a/src/pybind/mgr/dashboard/tests/test_tools.py b/src/pybind/mgr/dashboard/tests/test_tools.py index da74f69d44e07..b5eb26f25454d 100644 --- a/src/pybind/mgr/dashboard/tests/test_tools.py +++ b/src/pybind/mgr/dashboard/tests/test_tools.py @@ -29,7 +29,7 @@ class FooResource(RESTController): def bulk_delete(self): FooResource.elems = [] - def set(self, data, key): + def set(self, key, data): FooResource.elems[int(key)] = data return dict(key=key, **data) -- 2.39.5