From: xie xingguo Date: Wed, 26 Jul 2017 14:11:34 +0000 (+0800) Subject: crush: kill 'class rename' X-Git-Tag: v12.1.2~68^2~5 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=076a6abd80cc90ebcb901f908f880ef030721b2a;p=ceph.git crush: kill 'class rename' Signed-off-by: xie xingguo --- diff --git a/qa/standalone/crush/crush-classes.sh b/qa/standalone/crush/crush-classes.sh index 0bf32b52db0..9edc513d747 100755 --- a/qa/standalone/crush/crush-classes.sh +++ b/qa/standalone/crush/crush-classes.sh @@ -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 diff --git a/src/crush/CrushWrapper.h b/src/crush/CrushWrapper.h index 8ba61ae428c..94153723082 100644 --- a/src/crush/CrushWrapper.h +++ b/src/crush/CrushWrapper.h @@ -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) { diff --git a/src/mon/MonCommands.h b/src/mon/MonCommands.h index 8788b12b4f7..f2310d56c83 100644 --- a/src/mon/MonCommands.h +++ b/src/mon/MonCommands.h @@ -645,11 +645,6 @@ COMMAND("osd crush class rm " \ "name=class,type=CephString,goodchars=[A-Za-z0-9-_]", \ "remove crush device 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 to ", \ - "osd", "rw", "cli,rest") COMMAND("osd crush class ls", \ "list all crush device classes", \ "osd", "r", "cli,rest") diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index dedebd72c8d..7eb5c05b14a 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -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;