]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/dashboard: restcontroller: fix detection of id args in element requests 21290/head
authorRicardo Dias <rdias@suse.com>
Sun, 8 Apr 2018 17:37:30 +0000 (18:37 +0100)
committerRicardo Dias <rdias@suse.com>
Mon, 9 Apr 2018 09:52:10 +0000 (10:52 +0100)
Fixes: https://tracker.ceph.com/issues/23593
Signed-off-by: Ricardo Dias <rdias@suse.com>
src/pybind/mgr/dashboard/controllers/__init__.py
src/pybind/mgr/dashboard/tests/test_tools.py

index 3eaa28f7133206ac0a52b29a702746c69e05790b..e0a25e56315ae82bc1ac4eac26eefb2fef961fea 100644 (file)
@@ -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
index da74f69d44e0771ea7996a1c84f02eff4e28fce1..b5eb26f25454d3ccc36f4b8ef4ddf9e03b384757 100644 (file)
@@ -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)