From: Ramana Raja Date: Tue, 14 Apr 2020 11:13:33 +0000 (+0530) Subject: mon/FSCommands: Fix 'fs new' command X-Git-Tag: wip-pdonnell-testing-20200918.022351~1486^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=2f45558eb84782e334d997e2c545fd99ab455783;p=ceph-ci.git mon/FSCommands: Fix 'fs new' command After creating a filesystem using the 'fs new' command, the value of the 'data' and 'metadata' key of the datapool and metadatapool's application tag 'cephfs' should be the filesystem's name. This didn't happen when the data or metadata pool's application metadata 'cephfs' was enabled before the pool was used in the 'fs new' command. Fix this during the handling of the 'fs new' command by setting the value of the key of the pool's application metadata 'cephfs' to the filesystem's name even when the application metadata 'cephfs' is already enabled or set. Fixes: https://tracker.ceph.com/issues/43761 Signed-off-by: Ramana Raja --- diff --git a/qa/tasks/cephfs/test_admin.py b/qa/tasks/cephfs/test_admin.py index b8d82afb741..c535489602a 100644 --- a/qa/tasks/cephfs/test_admin.py +++ b/qa/tasks/cephfs/test_admin.py @@ -132,6 +132,24 @@ class TestAdminCommands(CephFSTestCase): else: raise RuntimeError("expected failure") + def test_fs_new_pool_application_metadata(self): + """ + That the application metadata set on the pools of a newly created filesystem are as expected. + """ + self.fs.delete_all_filesystems() + fs_name = "test_fs_new_pool_application" + keys = ['metadata', 'data'] + pool_names = [fs_name+'-'+key for key in keys] + mon_cmd = self.fs.mon_manager.raw_cluster_cmd + for p in pool_names: + mon_cmd('osd', 'pool', 'create', p, str(self.fs.pgs_per_fs_pool)) + mon_cmd('osd', 'pool', 'application', 'enable', p, 'cephfs') + mon_cmd('fs', 'new', fs_name, pool_names[0], pool_names[1]) + for i in range(2): + self._check_pool_application_metadata_key_value( + pool_names[i], 'cephfs', keys[i], fs_name) + + class TestConfigCommands(CephFSTestCase): """ Test that daemons and clients respond to the otherwise rarely-used diff --git a/src/mon/FSCommands.cc b/src/mon/FSCommands.cc index 88d5329ac9a..fa65213e52b 100644 --- a/src/mon/FSCommands.cc +++ b/src/mon/FSCommands.cc @@ -276,10 +276,10 @@ class FsNewHandler : public FileSystemCommandHandler } mon->osdmon()->do_application_enable(data, pg_pool_t::APPLICATION_NAME_CEPHFS, - "data", fs_name); + "data", fs_name, true); mon->osdmon()->do_application_enable(metadata, pg_pool_t::APPLICATION_NAME_CEPHFS, - "metadata", fs_name); + "metadata", fs_name, true); mon->osdmon()->do_set_pool_opt(metadata, pool_opts_t::RECOVERY_PRIORITY, static_cast(5));