]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Small backend changes:
authorStephan Müller <smueller@suse.com>
Wed, 20 Jun 2018 14:06:32 +0000 (16:06 +0200)
committerSebastian Wagner <sebastian.wagner@suse.com>
Tue, 24 Jul 2018 14:20:04 +0000 (16:20 +0200)
* Assert `pg_placement_num` has the same value as `pg_num`.
* Only set `application_metadata`, if not None.
* `osd pool set` only accepts strings.
* Sync `pgp_num` with `pg_num`.

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

index 81ce3d87ca907166c21487eb34895d8c767fa6ac..ba43400ddd43912f4a7e49aecdfc0bc215dca3cb 100644 (file)
@@ -120,6 +120,8 @@ class PoolTest(DashboardTestCase):
                     self.assertEqual(pool['type'], data['pool_type'])
                 elif k == 'pg_num':
                     self.assertEqual(pool[k], int(v), '{}: {} != {}'.format(k, pool[k], v))
+                    k = 'pg_placement_num' # Should have the same value as pg_num
+                    self.assertEqual(pool[k], int(v), '{}: {} != {}'.format(k, pool[k], v))
                 elif k == 'application_metadata':
                     self.assertIsInstance(pool[k], list)
                     self.assertEqual(pool[k],
index 3f82b8c0c5c04ba76e758a4b483b87c614487b3f..8d1cd690cd008c8b344b48c6f79f1ec63a7b9228 100644 (file)
@@ -90,7 +90,7 @@ class Pool(RESTController):
         if flags and 'ec_overwrites' in flags:
             CephService.send_command('mon', 'osd pool set', pool=pool, var='allow_ec_overwrites',
                                      val='true')
-        if application_metadata:
+        if application_metadata is not None:
             def set_app(what, app):
                 CephService.send_command('mon', 'osd pool application ' + what, pool=pool, app=app,
                                          force='--yes-i-really-mean-it')
@@ -107,7 +107,12 @@ class Pool(RESTController):
                 set_app('enable', app)
 
         for key, value in kwargs.items():
-            CephService.send_command('mon', 'osd pool set', pool=pool, var=key, val=value)
+            def set_key(key):
+                CephService.send_command('mon', 'osd pool set', pool=pool, var=key, val=str(value))
+
+            set_key(key)
+            if key == 'pg_num':
+                set_key('pgp_num')
 
     @Endpoint()
     @ReadPermission