Skip to content

Commit

Permalink
mon: s/set-device-class/set-class/
Browse files Browse the repository at this point in the history
And rename the variables accordingly for clarity. In the context
CrushWrapper we use device but in the mon we use osd. In the context of
ceph osd crush repeating device or even crush is redundant and we can
just have set-class instead.

Signed-off-by: Loic Dachary <loic@dachary.org>
  • Loading branch information
ldachary committed Apr 10, 2017
1 parent 28d411b commit b17989e
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 30 deletions.
2 changes: 1 addition & 1 deletion src/mon/MonCommands.h
Original file line number Diff line number Diff line change
Expand Up @@ -493,7 +493,7 @@ COMMAND("osd crush add " \
"name=args,type=CephString,n=N,goodchars=[A-Za-z0-9-_.=]", \
"add or update crushmap position and weight for <name> with <weight> and location <args>", \
"osd", "rw", "cli,rest")
COMMAND("osd crush set-device-class " \
COMMAND("osd crush set-class " \
"name=id,type=CephOsdName " \
"name=class,type=CephString ", \
"set the <class> of the device <name>", \
Expand Down
50 changes: 25 additions & 25 deletions src/mon/OSDMonitor.cc
Original file line number Diff line number Diff line change
Expand Up @@ -6189,15 +6189,15 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op,
ss << "set crush map";
goto update;

} else if (prefix == "osd crush set-device-class") {
} else if (prefix == "osd crush set-class") {
if (!osdmap.exists(osdid)) {
err = -ENOENT;
ss << name << " does not exist. create it before updating the crush map";
goto reply;
}

string device_class;
if (!cmd_getval(g_ceph_context, cmdmap, "class", device_class)) {
string crush_class;
if (!cmd_getval(g_ceph_context, cmdmap, "class", crush_class)) {
err = -EINVAL; // no value!
goto reply;
}
Expand All @@ -6214,22 +6214,22 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op,
}

dout(5) << action << " crush item id " << osdid << " name '"
<< name << "' device_class " << device_class << dendl;
err = newcrush.update_device_class(g_ceph_context, osdid, device_class, name);
<< name << "' crush_class " << crush_class << dendl;
err = newcrush.update_device_class(g_ceph_context, osdid, crush_class, name);

if (err < 0)
goto reply;

if (err == 0 && !_have_pending_crush()) {
ss << "set-device-class item id " << osdid << " name '" << name << "' device_class "
<< device_class << " : no change";
ss << "set-class item id " << osdid << " name '" << name << "' crush_class "
<< crush_class << " : no change";
goto reply;
}

pending_inc.crush.clear();
newcrush.encode(pending_inc.crush, mon->get_quorum_con_features());
ss << "set-device-class item id " << osdid << " name '" << name << "' device_class "
<< device_class;
ss << "set-class item id " << osdid << " name '" << name << "' crush_class "
<< crush_class;
getline(ss, rs);
wait_for_finished_proposal(op, new Monitor::C_Command(mon, op, 0, rs,
get_last_committed() + 1));
Expand Down Expand Up @@ -6297,68 +6297,68 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op,
else
goto update;
} else if (prefix == "osd crush class create") {
string device_class;
if (!cmd_getval(g_ceph_context, cmdmap, "class", device_class)) {
string crush_class;
if (!cmd_getval(g_ceph_context, cmdmap, "class", crush_class)) {
err = -EINVAL; // no value!
goto reply;
}

if (!_have_pending_crush() &&
_get_stable_crush().class_exists(device_class)) {
ss << "class '" << device_class << "' already exists";
_get_stable_crush().class_exists(crush_class)) {
ss << "class '" << crush_class << "' already exists";
goto reply;
}

CrushWrapper newcrush;
_get_pending_crush(newcrush);

if (newcrush.class_exists(name)) {
ss << "class '" << device_class << "' already exists";
ss << "class '" << crush_class << "' already exists";
goto update;
}

int class_id = newcrush.get_or_create_class_id(device_class);
int class_id = newcrush.get_or_create_class_id(crush_class);

pending_inc.crush.clear();
newcrush.encode(pending_inc.crush, mon->get_quorum_con_features());
ss << "created class " << device_class << " with id " << class_id
ss << "created class " << crush_class << " with id " << class_id
<< " to crush map";
goto update;

} else if (prefix == "osd crush class rm") {
string device_class;
if (!cmd_getval(g_ceph_context, cmdmap, "class", device_class)) {
string crush_class;
if (!cmd_getval(g_ceph_context, cmdmap, "class", crush_class)) {
err = -EINVAL; // no value!
goto reply;
}

CrushWrapper newcrush;
_get_pending_crush(newcrush);

if (!newcrush.class_exists(device_class)) {
if (!newcrush.class_exists(crush_class)) {
err = -ENOENT;
ss << "class '" << device_class << "' does not exist";
ss << "class '" << crush_class << "' does not exist";
goto reply;
}

int class_id = newcrush.get_class_id(device_class);
int class_id = newcrush.get_class_id(crush_class);

if (newcrush.class_is_in_use(class_id)) {
err = -EBUSY;
ss << "class '" << device_class << "' is in use";
ss << "class '" << crush_class << "' is in use";
goto reply;
}

err = newcrush.remove_class_name(device_class);
err = newcrush.remove_class_name(crush_class);
if (err < 0) {
ss << "class '" << device_class << "' cannot be removed '"
ss << "class '" << crush_class << "' cannot be removed '"
<< cpp_strerror(err) << "'";
goto reply;
}

pending_inc.crush.clear();
newcrush.encode(pending_inc.crush, mon->get_quorum_con_features());
ss << "removed class " << device_class << " with id " << class_id
ss << "removed class " << crush_class << " with id " << class_id
<< " from crush map";
goto update;

Expand Down
2 changes: 1 addition & 1 deletion src/osd/OSD.cc
Original file line number Diff line number Diff line change
Expand Up @@ -3114,7 +3114,7 @@ int OSD::update_crush_class()
return 0;

string cmd =
string("{\"prefix\": \"osd crush set-device-class\", ") +
string("{\"prefix\": \"osd crush set-class\", ") +
string("\"id\": ") + stringify(whoami) + string(", ") +
string("\"class\": \"") + crush_class + string("\"}");

Expand Down
6 changes: 3 additions & 3 deletions src/test/crush/crush-classes.sh
Original file line number Diff line number Diff line change
Expand Up @@ -106,13 +106,13 @@ function TEST_classes() {
ceph osd crush dump | grep -q '~ssd' || return 1
}

function TEST_set_device_class() {
function TEST_set_class() {
local dir=$1

TEST_classes $dir || return 1

ceph osd crush set-device-class osd.0 ssd || return 1
ceph osd crush set-device-class osd.1 ssd || return 1
ceph osd crush set-class osd.0 ssd || return 1
ceph osd crush set-class osd.1 ssd || return 1

ok=false
for delay in 2 4 8 16 32 64 128 256 ; do
Expand Down

0 comments on commit b17989e

Please sign in to comment.