]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/dashboard: remove 'config-opt: read' perm. from system roles. 33739/head
authorAlfonso Martínez <almartin@redhat.com>
Tue, 3 Mar 2020 11:34:11 +0000 (12:34 +0100)
committerAlfonso Martínez <almartin@redhat.com>
Thu, 5 Mar 2020 08:50:50 +0000 (09:50 +0100)
Fixes: https://tracker.ceph.com/issues/44237
Signed-off-by: Alfonso Martínez <almartin@redhat.com>
(cherry picked from commit ad8dbefff848411f459d563b329c6c6af8a0dd82)

 Conflicts:
src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/pool-form/pool-form.component.ts
- pool-form.component.ts: keep original version (backport changes not applied).

qa/tasks/mgr/dashboard/test_pool.py
src/pybind/mgr/dashboard/controllers/pool.py
src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/pool-form/pool-form.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/models/pool-form-info.ts
src/pybind/mgr/dashboard/services/access_control.py

index 971e560069aa09a530b2c072e996fe5c89933352..40a1e20e1265525fa5860ab1e609a86691984dfe 100644 (file)
@@ -288,8 +288,10 @@ class PoolTest(DashboardTestCase):
             'compression_algorithms': JList(six.string_types),
             'compression_modes': JList(six.string_types),
             'is_all_bluestore': bool,
-            "bluestore_compression_algorithm": six.string_types,
+            'bluestore_compression_algorithm': six.string_types,
             'osd_count': int,
             'crush_rules_replicated': JList(JObj({}, allow_unknown=True)),
             'crush_rules_erasure': JList(JObj({}, allow_unknown=True)),
+            'pg_autoscale_default_mode': six.string_types,
+            'pg_autoscale_modes': JList(six.string_types),
         }))
index 0bc7ef2778fc949e8cc9f37b9888398f895dd927..4737b01a28b81502c48d2a2392fc8a84f129c7bd 100644 (file)
@@ -207,20 +207,23 @@ class Pool(RESTController):
             return all(o['osd_objectstore'] == 'bluestore'
                        for o in mgr.get('osd_metadata').values())
 
-        def compression_enum(conf_name):
+        def get_config_option_enum(conf_name):
             return [[v for v in o['enum_values'] if len(v) > 0]
                     for o in mgr.get('config_options')['options']
                     if o['name'] == conf_name][0]
 
+        mgr_config = mgr.get('config')
         result = {
             "pool_names": [p['pool_name'] for p in self._pool_list()],
             "crush_rules_replicated": rules(1),
             "crush_rules_erasure": rules(3),
             "is_all_bluestore": all_bluestore(),
             "osd_count": len(mgr.get('osd_map')['osds']),
-            "bluestore_compression_algorithm": mgr.get('config')['bluestore_compression_algorithm'],
-            "compression_algorithms": compression_enum('bluestore_compression_algorithm'),
-            "compression_modes": compression_enum('bluestore_compression_mode'),
+            "bluestore_compression_algorithm": mgr_config['bluestore_compression_algorithm'],
+            "compression_algorithms": get_config_option_enum('bluestore_compression_algorithm'),
+            "compression_modes": get_config_option_enum('bluestore_compression_mode'),
+            "pg_autoscale_default_mode": mgr_config['osd_pool_default_pg_autoscale_mode'],
+            "pg_autoscale_modes": get_config_option_enum('osd_pool_default_pg_autoscale_mode'),
         }
 
         if pool_name:
index 2d3362b987d87d0d7bde644ed2a1c96b3d41cd88..95ee1eb387b01602fede91247e13492c87bb46e8 100644 (file)
@@ -130,7 +130,9 @@ describe('PoolFormComponent', () => {
       compression_algorithms: ['snappy'],
       compression_modes: ['none', 'passive'],
       crush_rules_replicated: [],
-      crush_rules_erasure: []
+      crush_rules_erasure: [],
+      pg_autoscale_default_mode: 'off',
+      pg_autoscale_modes: ['off', 'warn', 'on']
     };
     const ecp1 = new ErasureCodeProfile();
     ecp1.name = 'ecp1';
index 7741087b9c3210b5f37ff92af9ecce349cbbd41d..4f5b653df38d27b5b63580786da56debd3f47fee 100644 (file)
@@ -9,4 +9,6 @@ export class PoolFormInfo {
   compression_modes: string[];
   crush_rules_replicated: CrushRule[];
   crush_rules_erasure: CrushRule[];
+  pg_autoscale_default_mode: string;
+  pg_autoscale_modes: string[];
 }
index 63bf08d20ea00d5b2cb77b3763b56500fd6dd6ee..3787be62d482d07898e67cde4b3b26eb0b5da193 100644 (file)
@@ -119,7 +119,6 @@ BLOCK_MGR_ROLE = Role('block-manager', 'Block Manager', {
 # RadosGW manager role provides all permissions for block related scopes
 RGW_MGR_ROLE = Role('rgw-manager', 'RGW Manager', {
     Scope.RGW: [_P.READ, _P.CREATE, _P.UPDATE, _P.DELETE],
-    Scope.CONFIG_OPT: [_P.READ],
     Scope.GRAFANA: [_P.READ],
 })
 
@@ -140,14 +139,12 @@ CLUSTER_MGR_ROLE = Role('cluster-manager', 'Cluster Manager', {
 # Pool manager role provides all permissions for pool related scopes
 POOL_MGR_ROLE = Role('pool-manager', 'Pool Manager', {
     Scope.POOL: [_P.READ, _P.CREATE, _P.UPDATE, _P.DELETE],
-    Scope.CONFIG_OPT: [_P.READ],
     Scope.GRAFANA: [_P.READ],
 })
 
-# Pool manager role provides all permissions for CephFS related scopes
+# CephFS manager role provides all permissions for CephFS related scopes
 CEPHFS_MGR_ROLE = Role('cephfs-manager', 'CephFS Manager', {
     Scope.CEPHFS: [_P.READ, _P.CREATE, _P.UPDATE, _P.DELETE],
-    Scope.CONFIG_OPT: [_P.READ],
     Scope.GRAFANA: [_P.READ],
 })
 
@@ -155,7 +152,6 @@ GANESHA_MGR_ROLE = Role('ganesha-manager', 'NFS Ganesha Manager', {
     Scope.NFS_GANESHA: [_P.READ, _P.CREATE, _P.UPDATE, _P.DELETE],
     Scope.CEPHFS: [_P.READ, _P.CREATE, _P.UPDATE, _P.DELETE],
     Scope.RGW: [_P.READ, _P.CREATE, _P.UPDATE, _P.DELETE],
-    Scope.CONFIG_OPT: [_P.READ],
     Scope.GRAFANA: [_P.READ],
 })