From: Xiubo Li Date: Fri, 29 Jul 2022 01:16:15 +0000 (+0800) Subject: qa: make filesystem to be compatible with nautilus when creating pools X-Git-Tag: v16.2.11~53^2~2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=b45e95043e4c24e1b85f9531296edc61ec31f22a;p=ceph.git qa: make filesystem to be compatible with nautilus when creating pools For old cephs, such as the nautilus, there is no --pg_num_min option. Fixes: https://tracker.ceph.com/issues/56529 Signed-off-by: Xiubo Li (cherry picked from commit 2a28060adbbc1bb0d9a94413e415ef2ef2f45316) Conflicts: - Fixed Invalid command: missing required parameter pg_num() --- diff --git a/qa/tasks/cephfs/filesystem.py b/qa/tasks/cephfs/filesystem.py index 19343b07cf9d1..35b80106dc8c5 100644 --- a/qa/tasks/cephfs/filesystem.py +++ b/qa/tasks/cephfs/filesystem.py @@ -661,15 +661,27 @@ class Filesystem(MDSCluster): log.debug("Creating filesystem '{0}'".format(self.name)) - self.mon_manager.raw_cluster_cmd('osd', 'pool', 'create', - self.metadata_pool_name, str(self.pg_num), - '--pg_num_min', str(self.pg_num_min)) + try: + self.mon_manager.raw_cluster_cmd('osd', 'pool', 'create', + self.metadata_pool_name, str(self.pg_num), + '--pg_num_min', str(self.pg_num_min)) - self.mon_manager.raw_cluster_cmd('osd', 'pool', 'create', - data_pool_name, str(self.pg_num), - '--pg_num_min', str(self.pg_num_min), - '--target_size_ratio', - str(self.target_size_ratio)) + self.mon_manager.raw_cluster_cmd('osd', 'pool', 'create', + data_pool_name, str(self.pg_num), + '--pg_num_min', str(self.pg_num_min), + '--target_size_ratio', + str(self.target_size_ratio)) + except CommandFailedError as e: + if e.exitstatus == 22: # nautilus couldn't specify --pg_num_min option + self.mon_manager.raw_cluster_cmd('osd', 'pool', 'create', + self.metadata_pool_name, + str(self.pg_num_min)) + + self.mon_manager.raw_cluster_cmd('osd', 'pool', 'create', + data_pool_name, str(self.pg_num), + str(self.pg_num_min)) + else: + raise if self.metadata_overlay: self.mon_manager.raw_cluster_cmd('fs', 'new', @@ -687,11 +699,19 @@ class Filesystem(MDSCluster): cmd = ['osd', 'erasure-code-profile', 'set', ec_data_pool_name] cmd.extend(self.ec_profile) self.mon_manager.raw_cluster_cmd(*cmd) - self.mon_manager.raw_cluster_cmd( - 'osd', 'pool', 'create', ec_data_pool_name, - 'erasure', ec_data_pool_name, - '--pg_num_min', str(self.pg_num_min), - '--target_size_ratio', str(self.target_size_ratio_ec)) + try: + self.mon_manager.raw_cluster_cmd( + 'osd', 'pool', 'create', ec_data_pool_name, + 'erasure', ec_data_pool_name, + '--pg_num_min', str(self.pg_num_min), + '--target_size_ratio', str(self.target_size_ratio_ec)) + except CommandFailedError as e: + if e.exitstatus == 22: # nautilus couldn't specify --pg_num_min option + self.mon_manager.raw_cluster_cmd( + 'osd', 'pool', 'create', ec_data_pool_name, + str(self.pg_num_min), 'erasure', ec_data_pool_name) + else: + raise self.mon_manager.raw_cluster_cmd( 'osd', 'pool', 'set', ec_data_pool_name, 'allow_ec_overwrites', 'true') @@ -853,8 +873,15 @@ class Filesystem(MDSCluster): def add_data_pool(self, name, create=True): if create: - self.mon_manager.raw_cluster_cmd('osd', 'pool', 'create', name, - '--pg_num_min', str(self.pg_num_min)) + try: + self.mon_manager.raw_cluster_cmd('osd', 'pool', 'create', name, + '--pg_num_min', str(self.pg_num_min)) + except CommandFailedError as e: + if e.exitstatus == 22: # nautilus couldn't specify --pg_num_min option + self.mon_manager.raw_cluster_cmd('osd', 'pool', 'create', name, + str(self.pg_num_min)) + else: + raise self.mon_manager.raw_cluster_cmd('fs', 'add_data_pool', self.name, name) self.get_pool_names(refresh = True) for poolid, fs_name in self.data_pools.items():