"osd", "r", "cli,rest")
COMMAND("osd getmaxosd", "show largest OSD id", "osd", "r", "cli,rest")
COMMAND("osd find " \
- "name=id,type=CephInt,range=0", \
+ "name=id,type=CephOsdName", \
"find osd <id> in the CRUSH map and show its location", \
"osd", "r", "cli,rest")
COMMAND("osd metadata " \
- "name=id,type=CephInt,range=0,req=false", \
+ "name=id,type=CephOsdName,req=false", \
"fetch metadata for osd {id} (default all)", \
"osd", "r", "cli,rest")
COMMAND("osd map " \
"name=ids,type=CephString,n=N", \
"remove osd(s) <id> [<id>...] in", "osd", "rw", "cli,rest")
COMMAND("osd reweight " \
- "name=id,type=CephInt,range=0 " \
+ "name=id,type=CephOsdName " \
"type=CephFloat,name=weight,range=0.0|1.0", \
"reweight osd to 0.0 < <weight> < 1.0", "osd", "rw", "cli,rest")
COMMAND("osd pg-temp " \
"name=pgid,type=CephPgid " \
- "name=id,type=CephString,n=N,req=false", \
+ "name=id,type=CephOsdName,n=N,req=false", \
"set pg_temp mapping pgid:[<id> [<id>...]] (developers only)", \
"osd", "rw", "cli,rest")
COMMAND("osd primary-temp " \
"name=pgid,type=CephPgid " \
- "name=id,type=CephString", \
+ "name=id,type=CephOsdName", \
"set primary_temp mapping pgid:<id>|-1 (developers only)", \
"osd", "rw", "cli,rest")
COMMAND("osd primary-affinity " \
"adjust osd primary-affinity from 0.0 <= <weight> <= 1.0", \
"osd", "rw", "cli,rest")
COMMAND("osd lost " \
- "name=id,type=CephInt,range=0 " \
+ "name=id,type=CephOsdName " \
"name=sure,type=CephChoices,strings=--yes-i-really-mean-it,req=false", \
"mark osd as permanently lost. THIS DESTROYS DATA IF NO MORE REPLICAS EXIST, BE CAREFUL", \
"osd", "rw", "cli,rest")
COMMAND("osd create " \
"name=uuid,type=CephUUID,req=false " \
- "name=id,type=CephInt,range=0,req=false", \
+ "name=id,type=CephOsdName,req=false", \
"create new osd (with optional UUID and ID)", "osd", "rw", "cli,rest")
COMMAND("osd blacklist " \
"name=blacklistop,type=CephChoices,strings=add|rm " \
return true;
}
- vector<string> id_vec;
+ vector<int64_t> id_vec;
vector<int32_t> new_pg_temp;
if (!cmd_getval(g_ceph_context, cmdmap, "id", id_vec)) {
ss << "unable to parse 'id' value(s) '"
err = -EINVAL;
goto reply;
}
- for (unsigned i = 0; i < id_vec.size(); i++) {
- int32_t osd = parse_osd_id(id_vec[i].c_str(), &ss);
- if (osd < 0) {
- err = -EINVAL;
- goto reply;
- }
+ for (auto osd : id_vec) {
if (!osdmap.exists(osd)) {
ss << "osd." << osd << " does not exist";
err = -ENOENT;
goto reply;
}
-
new_pg_temp.push_back(osd);
}
goto reply;
}
- string id;
- int32_t osd;
- if (!cmd_getval(g_ceph_context, cmdmap, "id", id)) {
+ int64_t osd;
+ if (!cmd_getval(g_ceph_context, cmdmap, "id", osd)) {
ss << "unable to parse 'id' value '"
<< cmd_vartype_stringify(cmdmap["id"]) << "'";
err = -EINVAL;
goto reply;
}
- if (strcmp(id.c_str(), "-1")) {
- osd = parse_osd_id(id.c_str(), &ss);
- if (osd < 0) {
- err = -EINVAL;
- goto reply;
- }
- if (!osdmap.exists(osd)) {
- ss << "osd." << osd << " does not exist";
- err = -ENOENT;
- goto reply;
- }
- } else {
- osd = -1;
+ if (osd != -1 && !osdmap.exists(osd)) {
+ ss << "osd." << osd << " does not exist";
+ err = -ENOENT;
+ goto reply;
}
if (!g_conf->mon_osd_allow_primary_temp) {