]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
crush: kill 'class rename'
authorxie xingguo <xie.xingguo@zte.com.cn>
Wed, 26 Jul 2017 14:11:34 +0000 (22:11 +0800)
committerxie xingguo <xie.xingguo@zte.com.cn>
Wed, 26 Jul 2017 14:40:50 +0000 (22:40 +0800)
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
qa/standalone/crush/crush-classes.sh
src/crush/CrushWrapper.h
src/mon/MonCommands.h
src/mon/OSDMonitor.cc

index 0bf32b52db0bfcd863e44b78128771f0ba3a405f..9edc513d7477d5cc6b9c2640bdcb278a0f73cece 100755 (executable)
@@ -229,16 +229,12 @@ function TEST_mon_classes() {
     ceph osd crush rule create-replicated foo-ssd default host ssd || return 1
     expect_failure $dir EBUSY ceph osd crush class rm hdd || return 1
     expect_failure $dir EBUSY ceph osd crush class rm ssd || return 1
-    expect_failure $dir EBUSY ceph osd crush class rename hdd asdf || return 1
-    expect_failure $dir EBUSY ceph osd crush class rename ssd qwer || return 1
     ceph osd crush rule rm foo-hdd1 || return 1
     expect_failure $dir EBUSY ceph osd crush class rm hdd || return 1 # still referenced by foo-hdd2
     ceph osd crush rule rm foo-hdd2 || return 1
     ceph osd crush rule rm foo-ssd || return 1
-    ceph osd crush class rename hdd asdf || return 1
-    ceph osd crush class rename ssd qwer || return 1
-    ceph osd crush class rm asdf || return 1
-    ceph osd crush class rm qwer || return 1
+    ceph osd crush class rm hdd || return 1
+    ceph osd crush class rm ssd || return 1
     expect_failure $dir EBUSY ceph osd crush class rm abc || return 1 # still referenced by foo-rule
     ceph osd crush rule rm foo-rule || return 1
     ceph osd crush class rm abc || return 1
index 8ba61ae428c4eecddf0a7e52008682c95cbc7318..94153723082e34c2c5f357c428d046c1a258113c 100644 (file)
@@ -474,21 +474,6 @@ public:
     return 0;
   }
 
-  int rename_class(const string& srcname, const string& dstname) {
-    auto p = class_rname.find(srcname);
-    if (p == class_rname.end())
-      return -ENOENT;
-    int class_id = p->second;
-    auto q = class_name.find(class_id);
-    if (q == class_name.end())
-      return -ENOENT;
-    class_rname.erase(srcname);
-    class_name.erase(class_id);
-    class_rname[dstname] = class_id;
-    class_name[class_id] = dstname;
-    return 0;
-  }
-
   int32_t _alloc_class_id() const;
 
   int get_or_create_class_id(const string& name) {
index 8788b12b4f748e10a4374da95ec408498bc53dd6..f2310d56c83ea1d21a2f2fc9a4588009b4e3815d 100644 (file)
@@ -645,11 +645,6 @@ COMMAND("osd crush class rm " \
        "name=class,type=CephString,goodchars=[A-Za-z0-9-_]", \
        "remove crush device class <class>", \
        "osd", "rw", "cli,rest")
-COMMAND("osd crush class rename " \
-        "name=srcname,type=CephString,goodchars=[A-Za-z0-9-_] " \
-        "name=dstname,type=CephString,goodchars=[A-Za-z0-9-_]", \
-        "rename crush device class <srcname> to <dstname>", \
-        "osd", "rw", "cli,rest")
 COMMAND("osd crush class ls", \
        "list all crush device classes", \
        "osd", "r", "cli,rest")
index dedebd72c8d3c0f4803658b3a03c34f5ddeda66a..7eb5c05b14adef96a534963667721a88f2dbf0e2 100644 (file)
@@ -7672,60 +7672,6 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op,
        << " from crush map";
     goto update;
 
-  } else if (prefix == "osd crush class rename") {
-    string srcname, dstname;
-    if (!cmd_getval(g_ceph_context, cmdmap, "srcname", srcname)) {
-      err = -EINVAL;
-      goto reply;
-    }
-    if (osdmap.require_osd_release < CEPH_RELEASE_LUMINOUS) {
-      ss << "you must complete the upgrade and 'ceph osd require-osd-release "
-        << "luminous' before using crush device classes";
-      err = -EPERM;
-      goto reply;
-    }
-
-    if (!cmd_getval(g_ceph_context, cmdmap, "dstname", dstname)) {
-      err = -EINVAL;
-      goto reply;
-    }
-
-    CrushWrapper newcrush;
-    _get_pending_crush(newcrush);
-
-    if (!newcrush.class_exists(srcname)) {
-      err = -ENOENT;
-      ss << "class '" << srcname << "' does not exist";
-      goto reply;
-    }
-
-    if (newcrush.class_exists(dstname)) {
-      err = -EEXIST;
-      ss << "class '" << dstname << "' already exists";
-      goto reply;
-    }
-
-    int class_id = newcrush.get_class_id(srcname);
-
-    stringstream ts;
-    if (newcrush.class_is_in_use(class_id, &ts)) {
-      err = -EBUSY;
-      ss << "class '" << srcname << "' " << ts.str();
-      goto reply;
-    }
-
-    err = newcrush.rename_class(srcname, dstname);
-    if (err < 0) {
-      ss << "fail to rename '" << srcname << "' to '" << dstname << "':"
-         << cpp_strerror(err);
-      goto reply;
-    }
-
-    pending_inc.crush.clear();
-    newcrush.encode(pending_inc.crush, mon->get_quorum_con_features());
-    ss << "rename class '" << srcname << "' to '" << dstname << "'";
-    goto update;
-
   } else if (prefix == "osd crush weight-set create" ||
             prefix == "osd crush weight-set create-compat") {
     CrushWrapper newcrush;