mirror of
https://github.com/ceph/ceph
synced 2025-02-24 19:47:44 +00:00
Merge PR #39674 into master
* refs/pull/39674/head: mon/OSDMonitor: fix safety/idempotency of {set,rm}-device-class Reviewed-by: xie xingguo <xie.xingguo@zte.com.cn> Reviewed-by: João Eduardo Luís <joao@suse.de>
This commit is contained in:
commit
db9255e734
@ -9896,16 +9896,14 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op,
|
||||
}
|
||||
}
|
||||
|
||||
if (!updated.empty()) {
|
||||
pending_inc.crush.clear();
|
||||
newcrush.encode(pending_inc.crush, mon.get_quorum_con_features());
|
||||
ss << "set osd(s) " << updated << " to class '" << device_class << "'";
|
||||
getline(ss, rs);
|
||||
wait_for_finished_proposal(op,
|
||||
new Monitor::C_Command(mon,op, 0, rs, get_last_committed() + 1));
|
||||
return true;
|
||||
}
|
||||
|
||||
pending_inc.crush.clear();
|
||||
newcrush.encode(pending_inc.crush, mon.get_quorum_con_features());
|
||||
ss << "set osd(s) " << updated << " to class '" << device_class << "'";
|
||||
getline(ss, rs);
|
||||
wait_for_finished_proposal(
|
||||
op,
|
||||
new Monitor::C_Command(mon,op, 0, rs, get_last_committed() + 1));
|
||||
return true;
|
||||
} else if (prefix == "osd crush rm-device-class") {
|
||||
bool stop = false;
|
||||
vector<string> idvec;
|
||||
@ -9958,15 +9956,14 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op,
|
||||
}
|
||||
}
|
||||
|
||||
if (!updated.empty()) {
|
||||
pending_inc.crush.clear();
|
||||
newcrush.encode(pending_inc.crush, mon.get_quorum_con_features());
|
||||
ss << "done removing class of osd(s): " << updated;
|
||||
getline(ss, rs);
|
||||
wait_for_finished_proposal(op,
|
||||
new Monitor::C_Command(mon,op, 0, rs, get_last_committed() + 1));
|
||||
return true;
|
||||
}
|
||||
pending_inc.crush.clear();
|
||||
newcrush.encode(pending_inc.crush, mon.get_quorum_con_features());
|
||||
ss << "done removing class of osd(s): " << updated;
|
||||
getline(ss, rs);
|
||||
wait_for_finished_proposal(
|
||||
op,
|
||||
new Monitor::C_Command(mon,op, 0, rs, get_last_committed() + 1));
|
||||
return true;
|
||||
} else if (prefix == "osd crush class create") {
|
||||
string device_class;
|
||||
if (!cmd_getval(cmdmap, "class", device_class)) {
|
||||
|
Loading…
Reference in New Issue
Block a user