]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: use CephOsdName for osd args instead of CephInt
authorSage Weil <sage@redhat.com>
Sat, 26 Sep 2015 05:06:36 +0000 (01:06 -0400)
committerKefu Chai <kchai@redhat.com>
Tue, 3 May 2016 14:42:29 +0000 (22:42 +0800)
CephOsdName will take either "1" or "osd.1" and generate a JSON 1 (int).

Signed-off-by: Sage Weil <sage@redhat.com>
src/mon/MonCommands.h
src/mon/OSDMonitor.cc

index b3d8e14b905ed3a9cc8c5e822ccd9512e606eb81..36120f991db1d96d0e5a211fa11142e3b309a72d 100644 (file)
@@ -468,11 +468,11 @@ COMMAND("osd blocked-by", \
        "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 " \
@@ -648,17 +648,17 @@ COMMAND("osd rm " \
        "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 " \
@@ -667,13 +667,13 @@ 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 " \
index b7b48927541a2d64e4c6c84c8a59d3ec32788c4f..b84fd20568592e161099fe6596d35679da888769 100644 (file)
@@ -6465,7 +6465,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op,
       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) '"
@@ -6473,18 +6473,12 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op,
       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);
     }
 
@@ -6512,27 +6506,17 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op,
       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) {