return id;
}
-void OSDMonitor::parse_loc_map(const vector<string>& args, map<string,string> *ploc)
-{
- for (unsigned i = 0; i < args.size(); ++i) {
- const char *s = args[i].c_str();
- const char *pos = strchr(s, '=');
- if (!pos)
- break;
- string key(s, 0, pos-s);
- string value(pos+1);
- if (value.length())
- (*ploc)[key] = value;
- else
- ploc->erase(key);
- }
-}
-
int OSDMonitor::prepare_command_pool_set(map<string,cmd_vartype> &cmdmap,
stringstream& ss)
{
vector<string> argvec;
cmd_getval(g_ceph_context, cmdmap, "args", argvec);
map<string,string> loc;
- parse_loc_map(argvec, &loc);
+ CrushWrapper::parse_loc_map(argvec, &loc);
if (prefix == "osd crush set"
&& !_get_stable_crush().item_exists(id)) {
vector<string> argvec;
cmd_getval(g_ceph_context, cmdmap, "args", argvec);
map<string,string> loc;
- parse_loc_map(argvec, &loc);
+ CrushWrapper::parse_loc_map(argvec, &loc);
dout(0) << "create-or-move crush item name '" << name << "' initial_weight " << weight
<< " at location " << loc << dendl;
cmd_getval(g_ceph_context, cmdmap, "name", name);
cmd_getval(g_ceph_context, cmdmap, "args", argvec);
map<string,string> loc;
- parse_loc_map(argvec, &loc);
+ CrushWrapper::parse_loc_map(argvec, &loc);
dout(0) << "moving crush item name '" << name << "' to location " << loc << dendl;
CrushWrapper newcrush;
vector<string> argvec;
cmd_getval(g_ceph_context, cmdmap, "args", argvec);
map<string,string> loc;
- parse_loc_map(argvec, &loc);
+ CrushWrapper::parse_loc_map(argvec, &loc);
if (!osdmap.crush->name_exists(name)) {
err = -ENOENT;
void tick(); // check state, take actions
int parse_osd_id(const char *s, stringstream *pss);
- void parse_loc_map(const vector<string>& args, map<string,string> *ploc);
void get_health(list<pair<health_status_t,string> >& summary,
list<pair<health_status_t,string> > *detail) const;