]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Fixed Pool upstate:
authorStephan Müller <smueller@suse.com>
Thu, 21 Jun 2018 13:40:18 +0000 (15:40 +0200)
committerSebastian Wagner <sebastian.wagner@suse.com>
Tue, 24 Jul 2018 14:20:04 +0000 (16:20 +0200)
Introduce `_get` to work around `get` automatically converting to JSON.

Signed-off-by: Stephan Müller <smueller@suse.com>
src/pybind/mgr/dashboard/controllers/pool.py

index 8d1cd690cd008c8b344b48c6f79f1ec63a7b9228..e09621b54820bff9ab0031d96d18b86944a20df2 100644 (file)
@@ -57,7 +57,7 @@ class Pool(RESTController):
     def list(self, attrs=None, stats=False):
         return self._pool_list(attrs, stats)
 
-    def get(self, pool_name, attrs=None, stats=False):
+    def _get(self, pool_name, attrs=None, stats=False):
         # type: (str, str, bool) -> dict
         pools = self._pool_list(attrs, stats)
         pool = [pool for pool in pools if pool['pool_name'] == pool_name]
@@ -65,6 +65,11 @@ class Pool(RESTController):
             raise cherrypy.NotFound('No such pool')
         return pool[0]
 
+    # '_get' will be wrapped into JSON through '_request_wrapper'
+    def get(self, pool_name, attrs=None, stats=False):
+        # type: (str, str, bool) -> str
+        return self._get(pool_name, attrs, stats)
+
     @pool_task('delete', ['{pool_name}'])
     @handle_send_command_error('pool')
     def delete(self, pool_name):
@@ -94,10 +99,9 @@ class Pool(RESTController):
             def set_app(what, app):
                 CephService.send_command('mon', 'osd pool application ' + what, pool=pool, app=app,
                                          force='--yes-i-really-mean-it')
-
             if update_existing:
                 original_app_metadata = set(
-                    self.get(pool, 'application_metadata')['application_metadata'])
+                    self._get(pool, 'application_metadata')['application_metadata'])
             else:
                 original_app_metadata = set()
 
@@ -106,13 +110,13 @@ class Pool(RESTController):
             for app in set(application_metadata) - original_app_metadata:
                 set_app('enable', app)
 
-        for key, value in kwargs.items():
-            def set_key(key):
-                CephService.send_command('mon', 'osd pool set', pool=pool, var=key, val=str(value))
+        def set_key(key, value):
+            CephService.send_command('mon', 'osd pool set', pool=pool, var=key, val=str(value))
 
-            set_key(key)
+        for key, value in kwargs.items():
+            set_key(key, value)
             if key == 'pg_num':
-                set_key('pgp_num')
+                set_key('pgp_num', value)
 
     @Endpoint()
     @ReadPermission