]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
MDSMonitor: introduce command 'fs set_default <fs_name>' 8391/head
authorYan, Zheng <zyan@redhat.com>
Thu, 31 Mar 2016 09:29:22 +0000 (17:29 +0800)
committerYan, Zheng <zyan@redhat.com>
Fri, 1 Apr 2016 02:46:22 +0000 (10:46 +0800)
set default filesystem for legacy client

Signed-off-by: Yan, Zheng <zyan@redhat.com>
src/mon/MDSMonitor.cc
src/mon/MonCommands.h
src/test/pybind/test_ceph_argparse.py

index e176c1f22edd788bde9e9c9a88a51c50ab47714b..74ce66ce9b4d1cfc6bd4685e0b5fca5669fa6b88 100644 (file)
@@ -1740,6 +1740,17 @@ int MDSMonitor::management_command(
     // Persist the new FSMap
     pending_fsmap.filesystems[new_fs->fscid] = new_fs;
     return 0;
+  } else if (prefix == "fs set_default") {
+    string fs_name;
+    cmd_getval(g_ceph_context, cmdmap, "fs_name", fs_name);
+    auto fs = pending_fsmap.get_filesystem(fs_name);
+    if (fs == nullptr) {
+        ss << "filesystem '" << fs_name << "' does not exist";
+        return -ENOENT;
+    }
+
+    pending_fsmap.legacy_client_fscid = fs->fscid;
+    return 0;
   } else {
     return -ENOSYS;
   }
index a003e3ac3114865f02f8a9f56d9b72121654826e..0e839b3e31034d3e0e9f8a9eb9502191a73f8fc2 100644 (file)
@@ -411,6 +411,9 @@ COMMAND("fs add_data_pool name=fs_name,type=CephString " \
 COMMAND("fs rm_data_pool name=fs_name,type=CephString " \
        "name=pool,type=CephString", \
        "remove data pool <pool>", "mds", "rw", "cli,rest")
+COMMAND("fs set_default name=fs_name,type=CephString", \
+       "set the default to the named filesystem", \
+       "fs", "rw", "cli,rest")
 
 /*
  * Monmap commands
index a649731bfaf2e6faaa30822f483595cea5b6f5ce..4bf6c27f9bb708e997a4402e5edd403a305615ca 100755 (executable)
@@ -491,6 +491,11 @@ class TestFS(TestArgparse):
         self.assert_valid_command(['fs', 'ls'])
         assert_equal({}, validate_command(sigdict, ['fs', 'ls', 'toomany']))
 
+    def test_fs_set_default(self):
+        self.assert_valid_command(['fs', 'set_default', 'cephfs'])
+        assert_equal({}, validate_command(sigdict, ['fs', 'set_default']))
+        assert_equal({}, validate_command(sigdict, ['fs', 'set_default', 'cephfs', 'toomany']))
+
 class TestMon(TestArgparse):
 
     def test_dump(self):