From 8d1b60ea88f9e4d4c874e82995e97063591d3cf0 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Stephan=20M=C3=BCller?= Date: Thu, 21 Jun 2018 15:40:18 +0200 Subject: [PATCH] Fixed Pool upstate: MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Introduce `_get` to work around `get` automatically converting to JSON. Signed-off-by: Stephan Müller --- src/pybind/mgr/dashboard/controllers/pool.py | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/pybind/mgr/dashboard/controllers/pool.py b/src/pybind/mgr/dashboard/controllers/pool.py index 8d1cd690cd008..e09621b54820b 100644 --- a/src/pybind/mgr/dashboard/controllers/pool.py +++ b/src/pybind/mgr/dashboard/controllers/pool.py @@ -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 -- 2.39.5