From 93452dbadce68ebf24cc8e66380ca30e25c455ca Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Tue, 26 Sep 2017 17:19:23 +0800 Subject: [PATCH] mon/OSDMonitor: s/g_ceph_context/cct/ use this->cct if possible, yet another step to remove the dependency on global `g_ceph_context`. Signed-off-by: Kefu Chai --- src/mon/OSDMonitor.cc | 406 +++++++++++++++++++++--------------------- 1 file changed, 203 insertions(+), 203 deletions(-) diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index e0de0753690..43e8861864f 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -226,7 +226,7 @@ void OSDMonitor::create_initial() newmap.decode(bl); newmap.set_fsid(mon->monmap->fsid); } else { - newmap.build_simple(g_ceph_context, 0, mon->monmap->fsid, 0); + newmap.build_simple(cct, 0, mon->monmap->fsid, 0); } newmap.set_epoch(1); newmap.created = newmap.modified = ceph_clock_now(); @@ -574,7 +574,7 @@ void OSDMonitor::create_pending() dout(10) << "create_pending e " << pending_inc.epoch << dendl; // clean up pg_temp, primary_temp - OSDMap::clean_temps(g_ceph_context, osdmap, &pending_inc); + OSDMap::clean_temps(cct, osdmap, &pending_inc); dout(10) << "create_pending did clean_temps" << dendl; // safety checks (this shouldn't really happen) @@ -886,7 +886,7 @@ void OSDMonitor::encode_pending(MonitorDBStore::TransactionRef t) // finalize up pending_inc pending_inc.modified = ceph_clock_now(); - int r = pending_inc.propagate_snaps_to_tiers(g_ceph_context, osdmap); + int r = pending_inc.propagate_snaps_to_tiers(cct, osdmap); assert(r == 0); if (mapping_job) { @@ -944,7 +944,7 @@ void OSDMonitor::encode_pending(MonitorDBStore::TransactionRef t) set full_pool_ids; set backfillfull_pool_ids; set nearfull_pool_ids; - tmp.get_full_pools(g_ceph_context, + tmp.get_full_pools(cct, &full_pool_ids, &backfillfull_pool_ids, &nearfull_pool_ids); @@ -2770,7 +2770,7 @@ bool OSDMonitor::preprocess_remove_snaps(MonOpRequestRef op) if (!session) goto ignore; if (!session->caps.is_capable( - g_ceph_context, + cct, CEPH_ENTITY_TYPE_MON, session->entity_name, "osd", "osd pool rmsnap", {}, true, true, false)) { @@ -3338,7 +3338,7 @@ void OSDMonitor::tick() if (g_conf->mon_osd_down_out_subtree_limit.length()) { int type = osdmap.crush->get_type_id(g_conf->mon_osd_down_out_subtree_limit); if (type > 0) { - if (osdmap.containing_subtree_is_down(g_ceph_context, o, type, &down_cache)) { + if (osdmap.containing_subtree_is_down(cct, o, type, &down_cache)) { dout(10) << "tick entire containing " << g_conf->mon_osd_down_out_subtree_limit << " subtree for osd." << o << " is down; resetting timer" << dendl; // reset timer, too. @@ -3523,10 +3523,10 @@ bool OSDMonitor::preprocess_command(MonOpRequestRef op) } string prefix; - cmd_getval(g_ceph_context, cmdmap, "prefix", prefix); + cmd_getval(cct, cmdmap, "prefix", prefix); string format; - cmd_getval(g_ceph_context, cmdmap, "format", format, string("plain")); + cmd_getval(cct, cmdmap, "format", format, string("plain")); boost::scoped_ptr f(Formatter::create(format)); if (prefix == "osd stat") { @@ -3546,7 +3546,7 @@ bool OSDMonitor::preprocess_command(MonOpRequestRef op) epoch_t epoch = 0; int64_t epochnum; - cmd_getval(g_ceph_context, cmdmap, "epoch", epochnum, (int64_t)osdmap.get_epoch()); + cmd_getval(cct, cmdmap, "epoch", epochnum, (int64_t)osdmap.get_epoch()); epoch = epochnum; bufferlist osdmap_bl; @@ -3610,7 +3610,7 @@ bool OSDMonitor::preprocess_command(MonOpRequestRef op) rdata.append(ds); } else if (prefix == "osd tree") { vector states; - cmd_getval(g_ceph_context, cmdmap, "states", states); + cmd_getval(cct, cmdmap, "states", states); unsigned filter = 0; for (auto& s : states) { if (s == "up") { @@ -3662,7 +3662,7 @@ bool OSDMonitor::preprocess_command(MonOpRequestRef op) ss << p->get_crush_version(); } else if (prefix == "osd ls-tree") { string bucket_name; - cmd_getval(g_ceph_context, cmdmap, "name", bucket_name); + cmd_getval(cct, cmdmap, "name", bucket_name); set osds; r = p->get_osds_by_bucket_name(bucket_name, &osds); if (r == -ENOENT) { @@ -3718,7 +3718,7 @@ bool OSDMonitor::preprocess_command(MonOpRequestRef op) goto reply; } else if (prefix == "osd find") { int64_t osd; - if (!cmd_getval(g_ceph_context, cmdmap, "id", osd)) { + if (!cmd_getval(cct, cmdmap, "id", osd)) { ss << "unable to parse osd id value '" << cmd_vartype_stringify(cmdmap["id"]) << "'"; r = -EINVAL; @@ -3730,7 +3730,7 @@ bool OSDMonitor::preprocess_command(MonOpRequestRef op) goto reply; } string format; - cmd_getval(g_ceph_context, cmdmap, "format", format); + cmd_getval(cct, cmdmap, "format", format); boost::scoped_ptr f(Formatter::create(format, "json-pretty", "json-pretty")); f->open_object_section("osd_location"); f->dump_int("osd", osd); @@ -3745,7 +3745,7 @@ bool OSDMonitor::preprocess_command(MonOpRequestRef op) } else if (prefix == "osd metadata") { int64_t osd = -1; if (cmd_vartype_stringify(cmdmap["id"]).size() && - !cmd_getval(g_ceph_context, cmdmap, "id", osd)) { + !cmd_getval(cct, cmdmap, "id", osd)) { ss << "unable to parse osd id value '" << cmd_vartype_stringify(cmdmap["id"]) << "'"; r = -EINVAL; @@ -3757,7 +3757,7 @@ bool OSDMonitor::preprocess_command(MonOpRequestRef op) goto reply; } string format; - cmd_getval(g_ceph_context, cmdmap, "format", format); + cmd_getval(cct, cmdmap, "format", format); boost::scoped_ptr f(Formatter::create(format, "json-pretty", "json-pretty")); if (osd >= 0) { f->open_object_section("osd_metadata"); @@ -3798,15 +3798,15 @@ bool OSDMonitor::preprocess_command(MonOpRequestRef op) if (!f) f.reset(Formatter::create("json-pretty")); string field; - cmd_getval(g_ceph_context, cmdmap, "property", field); + cmd_getval(cct, cmdmap, "property", field); count_metadata(field, f.get()); f->flush(rdata); r = 0; } else if (prefix == "osd map") { string poolstr, objstr, namespacestr; - cmd_getval(g_ceph_context, cmdmap, "pool", poolstr); - cmd_getval(g_ceph_context, cmdmap, "object", objstr); - cmd_getval(g_ceph_context, cmdmap, "nspace", namespacestr); + cmd_getval(cct, cmdmap, "pool", poolstr); + cmd_getval(cct, cmdmap, "object", objstr); + cmd_getval(cct, cmdmap, "nspace", namespacestr); int64_t pool = osdmap.lookup_pg_pool_name(poolstr.c_str()); if (pool < 0) { @@ -3860,7 +3860,7 @@ bool OSDMonitor::preprocess_command(MonOpRequestRef op) } else if (prefix == "pg map") { pg_t pgid; string pgidstr; - cmd_getval(g_ceph_context, cmdmap, "pgid", pgidstr); + cmd_getval(cct, cmdmap, "pgid", pgidstr); if (!pgid.parse(pgidstr.c_str())) { ss << "invalid pgid '" << pgidstr << "'"; r = -EINVAL; @@ -3903,7 +3903,7 @@ bool OSDMonitor::preprocess_command(MonOpRequestRef op) prefix == "osd deep-scrub" || prefix == "osd repair") { string whostr; - cmd_getval(g_ceph_context, cmdmap, "who", whostr); + cmd_getval(cct, cmdmap, "who", whostr); vector pvec; get_str_vec(prefix, pvec); @@ -3937,7 +3937,7 @@ bool OSDMonitor::preprocess_command(MonOpRequestRef op) } } else if (prefix == "osd lspools") { int64_t auid; - cmd_getval(g_ceph_context, cmdmap, "auid", auid, int64_t(0)); + cmd_getval(cct, cmdmap, "auid", auid, int64_t(0)); if (f) f->open_array_section("pools"); for (map::iterator p = osdmap.pools.begin(); @@ -3988,7 +3988,7 @@ bool OSDMonitor::preprocess_command(MonOpRequestRef op) } else if (prefix == "osd pool ls") { string detail; - cmd_getval(g_ceph_context, cmdmap, "detail", detail); + cmd_getval(cct, cmdmap, "detail", detail); if (!f && detail == "detail") { ostringstream ss; osdmap.print_pools(ss); @@ -4020,7 +4020,7 @@ bool OSDMonitor::preprocess_command(MonOpRequestRef op) } else if (prefix == "osd crush get-tunable") { string tunable; - cmd_getval(g_ceph_context, cmdmap, "tunable", tunable); + cmd_getval(cct, cmdmap, "tunable", tunable); ostringstream rss; if (f) f->open_object_section("tunable"); @@ -4043,7 +4043,7 @@ bool OSDMonitor::preprocess_command(MonOpRequestRef op) } else if (prefix == "osd pool get") { string poolstr; - cmd_getval(g_ceph_context, cmdmap, "pool", poolstr); + cmd_getval(cct, cmdmap, "pool", poolstr); int64_t pool = osdmap.lookup_pg_pool_name(poolstr.c_str()); if (pool < 0) { ss << "unrecognized pool '" << poolstr << "'"; @@ -4053,7 +4053,7 @@ bool OSDMonitor::preprocess_command(MonOpRequestRef op) const pg_pool_t *p = osdmap.get_pg_pool(pool); string var; - cmd_getval(g_ceph_context, cmdmap, "var", var); + cmd_getval(cct, cmdmap, "var", var); typedef std::map choices_map_t; const choices_map_t ALL_CHOICES = { @@ -4486,7 +4486,7 @@ bool OSDMonitor::preprocess_command(MonOpRequestRef op) r = 0; } else if (prefix == "osd pool get-quota") { string pool_name; - cmd_getval(g_ceph_context, cmdmap, "pool", pool_name); + cmd_getval(cct, cmdmap, "pool", pool_name); int64_t poolid = osdmap.lookup_pg_pool_name(pool_name); if (poolid < 0) { @@ -4537,7 +4537,7 @@ bool OSDMonitor::preprocess_command(MonOpRequestRef op) } } else if (prefix == "osd crush rule ls-by-class") { string class_name; - cmd_getval(g_ceph_context, cmdmap, "class", class_name); + cmd_getval(cct, cmdmap, "class", class_name); if (class_name.empty()) { ss << "no class specified"; r = -EINVAL; @@ -4565,9 +4565,9 @@ bool OSDMonitor::preprocess_command(MonOpRequestRef op) } } else if (prefix == "osd crush rule dump") { string name; - cmd_getval(g_ceph_context, cmdmap, "name", name); + cmd_getval(cct, cmdmap, "name", name); string format; - cmd_getval(g_ceph_context, cmdmap, "format", format); + cmd_getval(cct, cmdmap, "format", format); boost::scoped_ptr f(Formatter::create(format, "json-pretty", "json-pretty")); if (name == "") { f->open_array_section("rules"); @@ -4588,7 +4588,7 @@ bool OSDMonitor::preprocess_command(MonOpRequestRef op) rdata.append(rs.str()); } else if (prefix == "osd crush dump") { string format; - cmd_getval(g_ceph_context, cmdmap, "format", format); + cmd_getval(cct, cmdmap, "format", format); boost::scoped_ptr f(Formatter::create(format, "json-pretty", "json-pretty")); f->open_object_section("crush_map"); osdmap.crush->dump(f.get()); @@ -4599,7 +4599,7 @@ bool OSDMonitor::preprocess_command(MonOpRequestRef op) rdata.append(rs.str()); } else if (prefix == "osd crush show-tunables") { string format; - cmd_getval(g_ceph_context, cmdmap, "format", format); + cmd_getval(cct, cmdmap, "format", format); boost::scoped_ptr f(Formatter::create(format, "json-pretty", "json-pretty")); f->open_object_section("crush_map_tunables"); osdmap.crush->dump_tunables(f.get()); @@ -4610,7 +4610,7 @@ bool OSDMonitor::preprocess_command(MonOpRequestRef op) rdata.append(rs.str()); } else if (prefix == "osd crush tree") { string shadow; - cmd_getval(g_ceph_context, cmdmap, "shadow", shadow); + cmd_getval(cct, cmdmap, "shadow", shadow); bool show_shadow = shadow == "--show-shadow"; boost::scoped_ptr f(Formatter::create(format)); if (f) { @@ -4629,7 +4629,7 @@ bool OSDMonitor::preprocess_command(MonOpRequestRef op) } } else if (prefix == "osd crush ls") { string name; - if (!cmd_getval(g_ceph_context, cmdmap, "node", name)) { + if (!cmd_getval(cct, cmdmap, "node", name)) { ss << "no node specified"; r = -EINVAL; goto reply; @@ -4673,7 +4673,7 @@ bool OSDMonitor::preprocess_command(MonOpRequestRef op) f->flush(rdata); } else if (prefix == "osd crush class ls-osd") { string name; - cmd_getval(g_ceph_context, cmdmap, "class", name); + cmd_getval(cct, cmdmap, "class", name); set osds; osdmap.crush->get_devices_by_class(name, &osds); if (f) { @@ -4742,7 +4742,7 @@ bool OSDMonitor::preprocess_command(MonOpRequestRef op) f->flush(rdata); } else if (prefix == "osd erasure-code-profile get") { string name; - cmd_getval(g_ceph_context, cmdmap, "name", name); + cmd_getval(cct, cmdmap, "name", name); if (!osdmap.has_erasure_code_profile(name)) { ss << "unknown erasure code profile '" << name << "'"; r = -ENOENT; @@ -4770,11 +4770,11 @@ bool OSDMonitor::preprocess_command(MonOpRequestRef op) boost::scoped_ptr f(Formatter::create(format, "json-pretty", "json-pretty")); string pool_name; - cmd_getval(g_ceph_context, cmdmap, "pool", pool_name); + cmd_getval(cct, cmdmap, "pool", pool_name); string app; - cmd_getval(g_ceph_context, cmdmap, "app", app); + cmd_getval(cct, cmdmap, "app", app); string key; - cmd_getval(g_ceph_context, cmdmap, "key", key); + cmd_getval(cct, cmdmap, "key", key); if (pool_name.empty()) { // all @@ -5339,7 +5339,7 @@ int OSDMonitor::prepare_pool_crush_rule(const unsigned pool_type, { if (rule_name == "") { // Use default rule - *crush_rule = osdmap.crush->get_osd_pool_default_crush_replicated_ruleset(g_ceph_context); + *crush_rule = osdmap.crush->get_osd_pool_default_crush_replicated_ruleset(cct); if (*crush_rule < 0) { // Errors may happen e.g. if no valid rule is available *ss << "No suitable CRUSH rule exists, check " @@ -5642,14 +5642,14 @@ int OSDMonitor::prepare_command_pool_set(map &cmdmap, stringstream& ss) { string poolstr; - cmd_getval(g_ceph_context, cmdmap, "pool", poolstr); + cmd_getval(cct, cmdmap, "pool", poolstr); int64_t pool = osdmap.lookup_pg_pool_name(poolstr.c_str()); if (pool < 0) { ss << "unrecognized pool '" << poolstr << "'"; return -ENOENT; } string var; - cmd_getval(g_ceph_context, cmdmap, "var", var); + cmd_getval(cct, cmdmap, "var", var); pg_pool_t p = *osdmap.get_pg_pool(pool); if (pending_inc.new_pools.count(pool)) @@ -5665,9 +5665,9 @@ int OSDMonitor::prepare_command_pool_set(map &cmdmap, int64_t n = 0; double f = 0; int64_t uf = 0; // micro-f - if (!cmd_getval(g_ceph_context, cmdmap, "val", val)) { + if (!cmd_getval(cct, cmdmap, "val", val)) { // wasn't a string; maybe an older mon forwarded json with an int? - if (!cmd_getval(g_ceph_context, cmdmap, "val", n)) + if (!cmd_getval(cct, cmdmap, "val", n)) return -EINVAL; // no value! } else { // we got a string. see if it contains an int. @@ -5784,7 +5784,7 @@ int OSDMonitor::prepare_command_pool_set(map &cmdmap, return r; } string force; - cmd_getval(g_ceph_context,cmdmap, "force", force); + cmd_getval(cct,cmdmap, "force", force); if (p.cache_mode != pg_pool_t::CACHEMODE_NONE && force != "--yes-i-really-mean-it") { ss << "splits in cache pools must be followed by scrubs and leave sufficient free space to avoid overfilling. use --yes-i-really-mean-it to force."; @@ -5851,7 +5851,7 @@ int OSDMonitor::prepare_command_pool_set(map &cmdmap, } else if (var == "hashpspool") { uint64_t flag = pg_pool_t::get_flag_by_name(var); string force; - cmd_getval(g_ceph_context, cmdmap, "force", force); + cmd_getval(cct, cmdmap, "force", force); if (force != "--yes-i-really-mean-it") { ss << "are you SURE? this will remap all placement groups in this pool," " this triggers large data movement," @@ -5913,7 +5913,7 @@ int OSDMonitor::prepare_command_pool_set(map &cmdmap, } else if (var == "use_gmt_hitset") { if (val == "true" || (interr.empty() && n == 1)) { string force; - cmd_getval(g_ceph_context, cmdmap, "force", force); + cmd_getval(cct, cmdmap, "force", force); if (!osdmap.get_num_up_osds() && force != "--yes-i-really-mean-it") { ss << "Not advisable to continue since no OSDs are up. Pass " << "--yes-i-really-mean-it if you really wish to continue."; @@ -6147,7 +6147,7 @@ int OSDMonitor::prepare_command_pool_application(const string &prefix, stringstream& ss) { string pool_name; - cmd_getval(g_ceph_context, cmdmap, "pool", pool_name); + cmd_getval(cct, cmdmap, "pool", pool_name); int64_t pool = osdmap.lookup_pg_pool_name(pool_name.c_str()); if (pool < 0) { ss << "unrecognized pool '" << pool_name << "'"; @@ -6160,7 +6160,7 @@ int OSDMonitor::prepare_command_pool_application(const string &prefix, } string app; - cmd_getval(g_ceph_context, cmdmap, "app", app); + cmd_getval(cct, cmdmap, "app", app); bool app_exists = (p.application_metadata.count(app) > 0); if (boost::algorithm::ends_with(prefix, "enable")) { @@ -6175,7 +6175,7 @@ int OSDMonitor::prepare_command_pool_application(const string &prefix, } string force; - cmd_getval(g_ceph_context, cmdmap, "force", force); + cmd_getval(cct, cmdmap, "force", force); if (!app_exists && !p.application_metadata.empty() && force != "--yes-i-really-mean-it") { @@ -6203,7 +6203,7 @@ int OSDMonitor::prepare_command_pool_application(const string &prefix, } else if (boost::algorithm::ends_with(prefix, "disable")) { string force; - cmd_getval(g_ceph_context, cmdmap, "force", force); + cmd_getval(cct, cmdmap, "force", force); if (force != "--yes-i-really-mean-it") { ss << "Are you SURE? Disabling an application within a pool might result " @@ -6234,7 +6234,7 @@ int OSDMonitor::prepare_command_pool_application(const string &prefix, } string key; - cmd_getval(g_ceph_context, cmdmap, "key", key); + cmd_getval(cct, cmdmap, "key", key); if (key.empty()) { ss << "key must be provided"; @@ -6256,7 +6256,7 @@ int OSDMonitor::prepare_command_pool_application(const string &prefix, } string value; - cmd_getval(g_ceph_context, cmdmap, "value", value); + cmd_getval(cct, cmdmap, "value", value); if (value.length() > MAX_POOL_APPLICATION_LENGTH) { ss << "value '" << value << "' too long; max length " << MAX_POOL_APPLICATION_LENGTH; @@ -6274,7 +6274,7 @@ int OSDMonitor::prepare_command_pool_application(const string &prefix, } string key; - cmd_getval(g_ceph_context, cmdmap, "key", key); + cmd_getval(cct, cmdmap, "key", key); auto it = p.application_metadata[app].find(key); if (it == p.application_metadata[app].end()) { ss << "application '" << app << "' on pool '" << pool_name @@ -6304,10 +6304,10 @@ int OSDMonitor::_prepare_command_osd_crush_remove( int err = 0; if (has_ancestor) { - err = newcrush.remove_item_under(g_ceph_context, id, ancestor, + err = newcrush.remove_item_under(cct, id, ancestor, unlink_only); } else { - err = newcrush.remove_item(g_ceph_context, id, unlink_only); + err = newcrush.remove_item(cct, id, unlink_only); } return err; } @@ -6562,7 +6562,7 @@ int OSDMonitor::prepare_command_osd_new( * If `id` is specified, and the osd has been previously marked * as destroyed, then the `id` will be reused. */ - if (!cmd_getval(g_ceph_context, cmdmap, "uuid", uuidstr)) { + if (!cmd_getval(cct, cmdmap, "uuid", uuidstr)) { ss << "requires the OSD's UUID to be specified."; return -EINVAL; } else if (!uuid.parse(uuidstr.c_str())) { @@ -6570,7 +6570,7 @@ int OSDMonitor::prepare_command_osd_new( return -EINVAL; } - if (cmd_getval(g_ceph_context, cmdmap, "id", id) && + if (cmd_getval(cct, cmdmap, "id", id) && (id < 0)) { ss << "invalid OSD id; must be greater or equal than zero."; return -EINVAL; @@ -6808,7 +6808,7 @@ static int parse_reweights(CephContext *cct, map* weights) { string weights_str; - if (!cmd_getval(g_ceph_context, cmdmap, "weights", weights_str)) { + if (!cmd_getval(cct, cmdmap, "weights", weights_str)) { return -EINVAL; } std::replace(begin(weights_str), end(weights_str), '\'', '"'); @@ -6991,15 +6991,15 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, int err = 0; string format; - cmd_getval(g_ceph_context, cmdmap, "format", format, string("plain")); + cmd_getval(cct, cmdmap, "format", format, string("plain")); boost::scoped_ptr f(Formatter::create(format)); string prefix; - cmd_getval(g_ceph_context, cmdmap, "prefix", prefix); + cmd_getval(cct, cmdmap, "prefix", prefix); int64_t osdid; string name; - bool osdid_present = cmd_getval(g_ceph_context, cmdmap, "id", osdid); + bool osdid_present = cmd_getval(cct, cmdmap, "id", osdid); if (osdid_present) { ostringstream oss; oss << "osd." << osdid; @@ -7057,7 +7057,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, } int64_t prior_version = 0; - if (cmd_getval(g_ceph_context, cmdmap, "prior_version", prior_version)) { + if (cmd_getval(cct, cmdmap, "prior_version", prior_version)) { if (prior_version == osdmap.get_crush_version() - 1) { // see if we are a resend of the last update. this is imperfect // (multiple racing updaters may not both get reliable success) @@ -7125,14 +7125,14 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, } else if (prefix == "osd crush set-device-class") { string device_class; - if (!cmd_getval(g_ceph_context, cmdmap, "class", device_class)) { + if (!cmd_getval(cct, cmdmap, "class", device_class)) { err = -EINVAL; // no value! goto reply; } bool stop = false; vector idvec; - cmd_getval(g_ceph_context, cmdmap, "ids", idvec); + cmd_getval(cct, cmdmap, "ids", idvec); CrushWrapper newcrush; _get_pending_crush(newcrush); set updated; @@ -7205,7 +7205,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, } else if (prefix == "osd crush rm-device-class") { bool stop = false; vector idvec; - cmd_getval(g_ceph_context, cmdmap, "ids", idvec); + cmd_getval(cct, cmdmap, "ids", idvec); CrushWrapper newcrush; _get_pending_crush(newcrush); set updated; @@ -7245,7 +7245,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, // in case the device is misclassified and user wants // to overridely reset... - err = newcrush.remove_device_class(g_ceph_context, osd, &ss); + err = newcrush.remove_device_class(cct, osd, &ss); if (err < 0) { // ss has reason for failure goto reply; @@ -7265,11 +7265,11 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, } } else if (prefix == "osd crush class rename") { string srcname, dstname; - if (!cmd_getval(g_ceph_context, cmdmap, "srcname", srcname)) { + if (!cmd_getval(cct, cmdmap, "srcname", srcname)) { err = -EINVAL; goto reply; } - if (!cmd_getval(g_ceph_context, cmdmap, "dstname", dstname)) { + if (!cmd_getval(cct, cmdmap, "dstname", dstname)) { err = -EINVAL; goto reply; } @@ -7299,9 +7299,9 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, // os crush add-bucket string name, typestr; vector argvec; - cmd_getval(g_ceph_context, cmdmap, "name", name); - cmd_getval(g_ceph_context, cmdmap, "type", typestr); - cmd_getval(g_ceph_context, cmdmap, "args", argvec); + cmd_getval(cct, cmdmap, "name", name); + cmd_getval(cct, cmdmap, "type", typestr); + cmd_getval(cct, cmdmap, "args", argvec); map loc; if (!argvec.empty()) { CrushWrapper::parse_loc_map(argvec, &loc); @@ -7348,9 +7348,9 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, } if (!loc.empty()) { - if (!newcrush.check_item_loc(g_ceph_context, bucketno, loc, + if (!newcrush.check_item_loc(cct, bucketno, loc, (int *)NULL)) { - err = newcrush.move_bucket(g_ceph_context, bucketno, loc); + err = newcrush.move_bucket(cct, bucketno, loc); if (err < 0) { ss << "error moving bucket '" << name << "' to location " << loc; goto reply; @@ -7373,8 +7373,8 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, goto update; } else if (prefix == "osd crush rename-bucket") { string srcname, dstname; - cmd_getval(g_ceph_context, cmdmap, "srcname", srcname); - cmd_getval(g_ceph_context, cmdmap, "dstname", dstname); + cmd_getval(cct, cmdmap, "srcname", srcname); + cmd_getval(cct, cmdmap, "dstname", dstname); err = crush_rename_bucket(srcname, dstname, &ss); if (err == -EALREADY) // equivalent to success for idempotency @@ -7406,14 +7406,14 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, goto reply; } string poolname, mode; - cmd_getval(g_ceph_context, cmdmap, "pool", poolname); + cmd_getval(cct, cmdmap, "pool", poolname); pool = osdmap.lookup_pg_pool_name(poolname.c_str()); if (pool < 0) { ss << "pool '" << poolname << "' not found"; err = -ENOENT; goto reply; } - cmd_getval(g_ceph_context, cmdmap, "mode", mode); + cmd_getval(cct, cmdmap, "mode", mode); if (mode != "flat" && mode != "positional") { ss << "unrecognized weight-set mode '" << mode << "'"; err = -EINVAL; @@ -7436,7 +7436,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, int64_t pool; if (prefix == "osd crush weight-set rm") { string poolname; - cmd_getval(g_ceph_context, cmdmap, "pool", poolname); + cmd_getval(cct, cmdmap, "pool", poolname); pool = osdmap.lookup_pg_pool_name(poolname.c_str()); if (pool < 0) { ss << "pool '" << poolname << "' not found"; @@ -7455,9 +7455,9 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, prefix == "osd crush weight-set reweight-compat") { string poolname, item; vector weight; - cmd_getval(g_ceph_context, cmdmap, "pool", poolname); - cmd_getval(g_ceph_context, cmdmap, "item", item); - cmd_getval(g_ceph_context, cmdmap, "weight", weight); + cmd_getval(cct, cmdmap, "pool", poolname); + cmd_getval(cct, cmdmap, "item", item); + cmd_getval(cct, cmdmap, "weight", weight); CrushWrapper newcrush; _get_pending_crush(newcrush); int64_t pool; @@ -7494,7 +7494,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, goto reply; } err = newcrush.choose_args_adjust_item_weightf( - g_ceph_context, + cct, newcrush.choose_args_get(pool), newcrush.get_item_id(item), weight, @@ -7519,7 +7519,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, } double weight; - if (!cmd_getval(g_ceph_context, cmdmap, "weight", weight)) { + if (!cmd_getval(cct, cmdmap, "weight", weight)) { ss << "unable to parse weight value '" << cmd_vartype_stringify(cmdmap["weight"]) << "'"; err = -EINVAL; @@ -7528,7 +7528,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, string args; vector argvec; - cmd_getval(g_ceph_context, cmdmap, "args", argvec); + cmd_getval(cct, cmdmap, "args", argvec); map loc; CrushWrapper::parse_loc_map(argvec, &loc); @@ -7549,12 +7549,12 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, string action; if (prefix == "osd crush set" || - newcrush.check_item_loc(g_ceph_context, osdid, loc, (int *)NULL)) { + newcrush.check_item_loc(cct, osdid, loc, (int *)NULL)) { action = "set"; - err = newcrush.update_item(g_ceph_context, osdid, weight, name, loc); + err = newcrush.update_item(cct, osdid, weight, name, loc); } else { action = "add"; - err = newcrush.insert_item(g_ceph_context, osdid, weight, name, loc); + err = newcrush.insert_item(cct, osdid, weight, name, loc); if (err == 0) err = 1; } @@ -7587,7 +7587,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, } double weight; - if (!cmd_getval(g_ceph_context, cmdmap, "weight", weight)) { + if (!cmd_getval(cct, cmdmap, "weight", weight)) { ss << "unable to parse weight value '" << cmd_vartype_stringify(cmdmap["weight"]) << "'"; err = -EINVAL; @@ -7596,7 +7596,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, string args; vector argvec; - cmd_getval(g_ceph_context, cmdmap, "args", argvec); + cmd_getval(cct, cmdmap, "args", argvec); map loc; CrushWrapper::parse_loc_map(argvec, &loc); @@ -7606,7 +7606,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, CrushWrapper newcrush; _get_pending_crush(newcrush); - err = newcrush.create_or_move_item(g_ceph_context, osdid, weight, name, loc); + err = newcrush.create_or_move_item(cct, osdid, weight, name, loc); if (err == 0) { ss << "create-or-move updated item name '" << name << "' weight " << weight << " at location " << loc << " to crush map"; @@ -7630,8 +7630,8 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, string args; vector argvec; - cmd_getval(g_ceph_context, cmdmap, "name", name); - cmd_getval(g_ceph_context, cmdmap, "args", argvec); + cmd_getval(cct, cmdmap, "name", name); + cmd_getval(cct, cmdmap, "args", argvec); map loc; CrushWrapper::parse_loc_map(argvec, &loc); @@ -7646,11 +7646,11 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, } int id = newcrush.get_item_id(name); - if (!newcrush.check_item_loc(g_ceph_context, id, loc, (int *)NULL)) { + if (!newcrush.check_item_loc(cct, id, loc, (int *)NULL)) { if (id >= 0) { - err = newcrush.create_or_move_item(g_ceph_context, id, 0, name, loc); + err = newcrush.create_or_move_item(cct, id, 0, name, loc); } else { - err = newcrush.move_bucket(g_ceph_context, id, loc); + err = newcrush.move_bucket(cct, id, loc); } if (err >= 0) { ss << "moved item id " << id << " name '" << name << "' to location " << loc << " in crush map"; @@ -7668,9 +7668,9 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, } while (false); } else if (prefix == "osd crush swap-bucket") { string source, dest, force; - cmd_getval(g_ceph_context, cmdmap, "source", source); - cmd_getval(g_ceph_context, cmdmap, "dest", dest); - cmd_getval(g_ceph_context, cmdmap, "force", force); + cmd_getval(cct, cmdmap, "source", source); + cmd_getval(cct, cmdmap, "dest", dest); + cmd_getval(cct, cmdmap, "force", force); CrushWrapper newcrush; _get_pending_crush(newcrush); if (!newcrush.name_exists(source)) { @@ -7700,7 +7700,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, err = -EPERM; goto reply; } - int r = newcrush.swap_bucket(g_ceph_context, sid, did); + int r = newcrush.swap_bucket(cct, sid, did); if (r < 0) { ss << "failed to swap bucket contents: " << cpp_strerror(r); err = r; @@ -7716,9 +7716,9 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, } else if (prefix == "osd crush link") { // osd crush link [ ...] string name; - cmd_getval(g_ceph_context, cmdmap, "name", name); + cmd_getval(cct, cmdmap, "name", name); vector argvec; - cmd_getval(g_ceph_context, cmdmap, "args", argvec); + cmd_getval(cct, cmdmap, "args", argvec); map loc; CrushWrapper::parse_loc_map(argvec, &loc); @@ -7732,7 +7732,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, } else { dout(5) << "resolved crush name '" << name << "' to id " << id << dendl; } - if (osdmap.crush->check_item_loc(g_ceph_context, id, loc, (int*) NULL)) { + if (osdmap.crush->check_item_loc(cct, id, loc, (int*) NULL)) { ss << "no need to move item id " << id << " name '" << name << "' to location " << loc << " in crush map"; err = 0; @@ -7749,8 +7749,8 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, goto reply; } else { int id = newcrush.get_item_id(name); - if (!newcrush.check_item_loc(g_ceph_context, id, loc, (int *)NULL)) { - err = newcrush.link_bucket(g_ceph_context, id, loc); + if (!newcrush.check_item_loc(cct, id, loc, (int *)NULL)) { + err = newcrush.link_bucket(cct, id, loc); if (err >= 0) { ss << "linked item id " << id << " name '" << name << "' to location " << loc << " in crush map"; @@ -7779,7 +7779,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, _get_pending_crush(newcrush); string name; - cmd_getval(g_ceph_context, cmdmap, "name", name); + cmd_getval(cct, cmdmap, "name", name); if (!osdmap.crush->name_exists(name)) { err = 0; @@ -7799,7 +7799,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, bool unlink_only = prefix == "osd crush unlink"; string ancestor_str; - if (cmd_getval(g_ceph_context, cmdmap, "ancestor", ancestor_str)) { + if (cmd_getval(cct, cmdmap, "ancestor", ancestor_str)) { if (!newcrush.name_exists(ancestor_str)) { err = -ENOENT; ss << "ancestor item '" << ancestor_str @@ -7832,7 +7832,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, CrushWrapper newcrush; _get_pending_crush(newcrush); - newcrush.reweight(g_ceph_context); + newcrush.reweight(cct); pending_inc.crush.clear(); newcrush.encode(pending_inc.crush, mon->get_quorum_con_features()); ss << "reweighted crush hierarchy"; @@ -7846,7 +7846,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, _get_pending_crush(newcrush); string name; - cmd_getval(g_ceph_context, cmdmap, "name", name); + cmd_getval(cct, cmdmap, "name", name); if (!newcrush.name_exists(name)) { err = -ENOENT; ss << "device '" << name << "' does not appear in the crush map"; @@ -7860,14 +7860,14 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, goto reply; } double w; - if (!cmd_getval(g_ceph_context, cmdmap, "weight", w)) { + if (!cmd_getval(cct, cmdmap, "weight", w)) { ss << "unable to parse weight value '" << cmd_vartype_stringify(cmdmap["weight"]) << "'"; err = -EINVAL; goto reply; } - err = newcrush.adjust_item_weightf(g_ceph_context, id, w); + err = newcrush.adjust_item_weightf(cct, id, w); if (err < 0) goto reply; pending_inc.crush.clear(); @@ -7884,7 +7884,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, _get_pending_crush(newcrush); string name; - cmd_getval(g_ceph_context, cmdmap, "name", name); + cmd_getval(cct, cmdmap, "name", name); if (!newcrush.name_exists(name)) { err = -ENOENT; ss << "device '" << name << "' does not appear in the crush map"; @@ -7898,14 +7898,14 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, goto reply; } double w; - if (!cmd_getval(g_ceph_context, cmdmap, "weight", w)) { + if (!cmd_getval(cct, cmdmap, "weight", w)) { ss << "unable to parse weight value '" << cmd_vartype_stringify(cmdmap["weight"]) << "'"; err = -EINVAL; goto reply; } - err = newcrush.adjust_subtree_weightf(g_ceph_context, id, w); + err = newcrush.adjust_subtree_weightf(cct, id, w); if (err < 0) goto reply; pending_inc.crush.clear(); @@ -7922,7 +7922,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, err = 0; string profile; - cmd_getval(g_ceph_context, cmdmap, "profile", profile); + cmd_getval(cct, cmdmap, "profile", profile); if (profile == "legacy" || profile == "argonaut") { newcrush.set_tunables_legacy(); } else if (profile == "bobtail") { @@ -7961,10 +7961,10 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, err = 0; string tunable; - cmd_getval(g_ceph_context, cmdmap, "tunable", tunable); + cmd_getval(cct, cmdmap, "tunable", tunable); int64_t value = -1; - if (!cmd_getval(g_ceph_context, cmdmap, "value", value)) { + if (!cmd_getval(cct, cmdmap, "value", value)) { err = -EINVAL; ss << "failed to parse integer value " << cmd_vartype_stringify(cmdmap["value"]); goto reply; @@ -7998,10 +7998,10 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, } else if (prefix == "osd crush rule create-simple") { string name, root, type, mode; - cmd_getval(g_ceph_context, cmdmap, "name", name); - cmd_getval(g_ceph_context, cmdmap, "root", root); - cmd_getval(g_ceph_context, cmdmap, "type", type); - cmd_getval(g_ceph_context, cmdmap, "mode", mode); + cmd_getval(cct, cmdmap, "name", name); + cmd_getval(cct, cmdmap, "root", root); + cmd_getval(cct, cmdmap, "type", type); + cmd_getval(cct, cmdmap, "mode", mode); if (mode == "") mode = "firstn"; @@ -8039,10 +8039,10 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, } else if (prefix == "osd crush rule create-replicated") { string name, root, type, device_class; - cmd_getval(g_ceph_context, cmdmap, "name", name); - cmd_getval(g_ceph_context, cmdmap, "root", root); - cmd_getval(g_ceph_context, cmdmap, "type", type); - cmd_getval(g_ceph_context, cmdmap, "class", device_class); + cmd_getval(cct, cmdmap, "name", name); + cmd_getval(cct, cmdmap, "root", root); + cmd_getval(cct, cmdmap, "type", type); + cmd_getval(cct, cmdmap, "class", device_class); if (osdmap.crush->rule_exists(name)) { // The name is uniquely associated to a ruleid and the rule it contains @@ -8079,7 +8079,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, } else if (prefix == "osd erasure-code-profile rm") { string name; - cmd_getval(g_ceph_context, cmdmap, "name", name); + cmd_getval(cct, cmdmap, "name", name); if (erasure_code_profile_in_use(pending_inc.new_pools, name, &ss)) goto wait; @@ -8110,9 +8110,9 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, } else if (prefix == "osd erasure-code-profile set") { string name; - cmd_getval(g_ceph_context, cmdmap, "name", name); + cmd_getval(cct, cmdmap, "name", name); vector profile; - cmd_getval(g_ceph_context, cmdmap, "profile", profile); + cmd_getval(cct, cmdmap, "profile", profile); bool force; if (profile.size() > 0 && profile.back() == "--force") { profile.pop_back(); @@ -8192,9 +8192,9 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, if (err) goto reply; string name, poolstr; - cmd_getval(g_ceph_context, cmdmap, "name", name); + cmd_getval(cct, cmdmap, "name", name); string profile; - cmd_getval(g_ceph_context, cmdmap, "profile", profile); + cmd_getval(cct, cmdmap, "profile", profile); if (profile == "") profile = "default"; if (profile == "default") { @@ -8205,7 +8205,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, } map profile_map; - err = osdmap.get_erasure_code_profile_default(g_ceph_context, + err = osdmap.get_erasure_code_profile_default(cct, profile_map, &ss); if (err) @@ -8248,7 +8248,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, } else if (prefix == "osd crush rule rm") { string name; - cmd_getval(g_ceph_context, cmdmap, "name", name); + cmd_getval(cct, cmdmap, "name", name); if (!osdmap.crush->rule_exists(name)) { ss << "rule " << name << " does not exist"; @@ -8292,8 +8292,8 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, } else if (prefix == "osd crush rule rename") { string srcname; string dstname; - cmd_getval(g_ceph_context, cmdmap, "srcname", srcname); - cmd_getval(g_ceph_context, cmdmap, "dstname", dstname); + cmd_getval(cct, cmdmap, "srcname", srcname); + cmd_getval(cct, cmdmap, "dstname", dstname); if (srcname.empty() || dstname.empty()) { ss << "must specify both source rule name and destination rule name"; err = -EINVAL; @@ -8330,7 +8330,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, } else if (prefix == "osd setmaxosd") { int64_t newmax; - if (!cmd_getval(g_ceph_context, cmdmap, "newmax", newmax)) { + if (!cmd_getval(cct, cmdmap, "newmax", newmax)) { ss << "unable to parse 'newmax' value '" << cmd_vartype_stringify(cmdmap["newmax"]) << "'"; err = -EINVAL; @@ -8372,7 +8372,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, prefix == "osd set-backfillfull-ratio" || prefix == "osd set-nearfull-ratio") { double n; - if (!cmd_getval(g_ceph_context, cmdmap, "ratio", n)) { + if (!cmd_getval(cct, cmdmap, "ratio", n)) { ss << "unable to parse 'ratio' value '" << cmd_vartype_stringify(cmdmap["ratio"]) << "'"; err = -EINVAL; @@ -8391,7 +8391,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, return true; } else if (prefix == "osd set-require-min-compat-client") { string v; - cmd_getval(g_ceph_context, cmdmap, "version", v); + cmd_getval(cct, cmdmap, "version", v); int vno = ceph_release_from_name(v.c_str()); if (vno <= 0) { ss << "version " << v << " is not recognized"; @@ -8412,7 +8412,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, goto reply; } string sure; - cmd_getval(g_ceph_context, cmdmap, "sure", sure); + cmd_getval(cct, cmdmap, "sure", sure); if (sure != "--yes-i-really-mean-it") { FeatureMap m; mon->get_combined_feature_map(&m); @@ -8464,9 +8464,9 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, } else if (prefix == "osd set") { string sure; - cmd_getval(g_ceph_context, cmdmap, "sure", sure); + cmd_getval(cct, cmdmap, "sure", sure); string key; - cmd_getval(g_ceph_context, cmdmap, "key", key); + cmd_getval(cct, cmdmap, "key", key); if (key == "full") return prepare_set_flag(op, CEPH_OSDMAP_FULL); else if (key == "pause") @@ -8575,7 +8575,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, } else if (prefix == "osd unset") { string key; - cmd_getval(g_ceph_context, cmdmap, "key", key); + cmd_getval(cct, cmdmap, "key", key); if (key == "full") return prepare_unset_flag(op, CEPH_OSDMAP_FULL); else if (key == "pause") @@ -8607,9 +8607,9 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, } else if (prefix == "osd require-osd-release") { string release; - cmd_getval(g_ceph_context, cmdmap, "release", release); + cmd_getval(cct, cmdmap, "release", release); string sure; - cmd_getval(g_ceph_context, cmdmap, "sure", sure); + cmd_getval(cct, cmdmap, "sure", sure); if (!osdmap.test_flag(CEPH_OSDMAP_SORTBITWISE)) { ss << "the sortbitwise flag must be set first"; err = -EPERM; @@ -8672,7 +8672,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, bool verbose = true; vector idvec; - cmd_getval(g_ceph_context, cmdmap, "ids", idvec); + cmd_getval(cct, cmdmap, "ids", idvec); for (unsigned j = 0; j < idvec.size() && !stop; j++) { set osds; @@ -8806,7 +8806,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, bool stop = false; vector idvec; - cmd_getval(g_ceph_context, cmdmap, "ids", idvec); + cmd_getval(cct, cmdmap, "ids", idvec); for (unsigned j = 0; j < idvec.size() && !stop; j++) { set osds; @@ -8940,7 +8940,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, bool stop = false; vector idvec; - cmd_getval(g_ceph_context, cmdmap, "ids", idvec); + cmd_getval(cct, cmdmap, "ids", idvec); for (unsigned j = 0; j < idvec.size() && !stop; j++) { @@ -9084,7 +9084,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, } } else if (prefix == "osd pg-temp") { string pgidstr; - if (!cmd_getval(g_ceph_context, cmdmap, "pgid", pgidstr)) { + if (!cmd_getval(cct, cmdmap, "pgid", pgidstr)) { ss << "unable to parse 'pgid' value '" << cmd_vartype_stringify(cmdmap["pgid"]) << "'"; err = -EINVAL; @@ -9109,7 +9109,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, vector id_vec; vector new_pg_temp; - cmd_getval(g_ceph_context, cmdmap, "id", id_vec); + cmd_getval(cct, cmdmap, "id", id_vec); if (id_vec.empty()) { pending_inc.new_pg_temp[pgid] = mempool::osdmap::vector(); ss << "done cleaning up pg_temp of " << pgid; @@ -9146,7 +9146,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, goto update; } else if (prefix == "osd primary-temp") { string pgidstr; - if (!cmd_getval(g_ceph_context, cmdmap, "pgid", pgidstr)) { + if (!cmd_getval(cct, cmdmap, "pgid", pgidstr)) { ss << "unable to parse 'pgid' value '" << cmd_vartype_stringify(cmdmap["pgid"]) << "'"; err = -EINVAL; @@ -9165,7 +9165,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, } int64_t osd; - if (!cmd_getval(g_ceph_context, cmdmap, "id", osd)) { + if (!cmd_getval(cct, cmdmap, "id", osd)) { ss << "unable to parse 'id' value '" << cmd_vartype_stringify(cmdmap["id"]) << "'"; err = -EINVAL; @@ -9208,7 +9208,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, if (err < 0) goto reply; string pgidstr; - if (!cmd_getval(g_ceph_context, cmdmap, "pgid", pgidstr)) { + if (!cmd_getval(cct, cmdmap, "pgid", pgidstr)) { ss << "unable to parse 'pgid' value '" << cmd_vartype_stringify(cmdmap["pgid"]) << "'"; err = -EINVAL; @@ -9275,7 +9275,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, case OP_PG_UPMAP: { vector id_vec; - if (!cmd_getval(g_ceph_context, cmdmap, "id", id_vec)) { + if (!cmd_getval(cct, cmdmap, "id", id_vec)) { ss << "unable to parse 'id' value(s) '" << cmd_vartype_stringify(cmdmap["id"]) << "'"; err = -EINVAL; @@ -9335,7 +9335,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, case OP_PG_UPMAP_ITEMS: { vector id_vec; - if (!cmd_getval(g_ceph_context, cmdmap, "id", id_vec)) { + if (!cmd_getval(cct, cmdmap, "id", id_vec)) { ss << "unable to parse 'id' value(s) '" << cmd_vartype_stringify(cmdmap["id"]) << "'"; err = -EINVAL; @@ -9417,14 +9417,14 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, goto update; } else if (prefix == "osd primary-affinity") { int64_t id; - if (!cmd_getval(g_ceph_context, cmdmap, "id", id)) { + if (!cmd_getval(cct, cmdmap, "id", id)) { ss << "invalid osd id value '" << cmd_vartype_stringify(cmdmap["id"]) << "'"; err = -EINVAL; goto reply; } double w; - if (!cmd_getval(g_ceph_context, cmdmap, "weight", w)) { + if (!cmd_getval(cct, cmdmap, "weight", w)) { ss << "unable to parse 'weight' value '" << cmd_vartype_stringify(cmdmap["weight"]) << "'"; err = -EINVAL; @@ -9463,14 +9463,14 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, } } else if (prefix == "osd reweight") { int64_t id; - if (!cmd_getval(g_ceph_context, cmdmap, "id", id)) { + if (!cmd_getval(cct, cmdmap, "id", id)) { ss << "unable to parse osd id value '" << cmd_vartype_stringify(cmdmap["id"]) << "'"; err = -EINVAL; goto reply; } double w; - if (!cmd_getval(g_ceph_context, cmdmap, "weight", w)) { + if (!cmd_getval(cct, cmdmap, "weight", w)) { ss << "unable to parse weight value '" << cmd_vartype_stringify(cmdmap["weight"]) << "'"; err = -EINVAL; @@ -9496,7 +9496,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, } } else if (prefix == "osd reweightn") { map weights; - err = parse_reweights(g_ceph_context, cmdmap, osdmap, &weights); + err = parse_reweights(cct, cmdmap, osdmap, &weights); if (err) { ss << "unable to parse 'weights' value '" << cmd_vartype_stringify(cmdmap["weights"]) << "'"; @@ -9509,14 +9509,14 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, return true; } else if (prefix == "osd lost") { int64_t id; - if (!cmd_getval(g_ceph_context, cmdmap, "id", id)) { + if (!cmd_getval(cct, cmdmap, "id", id)) { ss << "unable to parse osd id value '" << cmd_vartype_stringify(cmdmap["id"]) << "'"; err = -EINVAL; goto reply; } string sure; - if (!cmd_getval(g_ceph_context, cmdmap, "sure", sure) || sure != "--yes-i-really-mean-it") { + if (!cmd_getval(cct, cmdmap, "sure", sure) || sure != "--yes-i-really-mean-it") { ss << "are you SURE? this might mean real, permanent data loss. pass " "--yes-i-really-mean-it if you really do."; err = -EPERM; @@ -9561,7 +9561,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, } int64_t id; - if (!cmd_getval(g_ceph_context, cmdmap, "id", id)) { + if (!cmd_getval(cct, cmdmap, "id", id)) { ss << "unable to parse osd id value '" << cmd_vartype_stringify(cmdmap["id"]) << ""; err = -EINVAL; @@ -9574,7 +9574,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, } string sure; - if (!cmd_getval(g_ceph_context, cmdmap, "sure", sure) || + if (!cmd_getval(cct, cmdmap, "sure", sure) || sure != "--yes-i-really-mean-it") { ss << "Are you SURE? This will mean real, permanent data loss, as well " << "as cephx and lockbox keys. Pass --yes-i-really-mean-it if you " @@ -9680,7 +9680,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, // optional id provided? int64_t id = -1, cmd_id = -1; - if (cmd_getval(g_ceph_context, cmdmap, "id", cmd_id)) { + if (cmd_getval(cct, cmdmap, "id", cmd_id)) { if (cmd_id < 0) { ss << "invalid osd id value '" << cmd_id << "'"; err = -EINVAL; @@ -9691,7 +9691,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, uuid_d uuid; string uuidstr; - if (cmd_getval(g_ceph_context, cmdmap, "uuid", uuidstr)) { + if (cmd_getval(cct, cmdmap, "uuid", uuidstr)) { if (!uuid.parse(uuidstr.c_str())) { ss << "invalid uuid value '" << uuidstr << "'"; err = -EINVAL; @@ -9757,7 +9757,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, return true; } else if (prefix == "osd blacklist") { string addrstr; - cmd_getval(g_ceph_context, cmdmap, "addr", addrstr); + cmd_getval(cct, cmdmap, "addr", addrstr); entity_addr_t addr; if (!addr.parse(addrstr.c_str(), 0)) { ss << "unable to parse address " << addrstr; @@ -9766,12 +9766,12 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, } else { string blacklistop; - cmd_getval(g_ceph_context, cmdmap, "blacklistop", blacklistop); + cmd_getval(cct, cmdmap, "blacklistop", blacklistop); if (blacklistop == "add") { utime_t expires = ceph_clock_now(); double d; // default one hour - cmd_getval(g_ceph_context, cmdmap, "expire", d, + cmd_getval(cct, cmdmap, "expire", d, g_conf->mon_osd_blacklist_default_expire); expires += d; @@ -9811,7 +9811,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, } } else if (prefix == "osd pool mksnap") { string poolstr; - cmd_getval(g_ceph_context, cmdmap, "pool", poolstr); + cmd_getval(cct, cmdmap, "pool", poolstr); int64_t pool = osdmap.lookup_pg_pool_name(poolstr.c_str()); if (pool < 0) { ss << "unrecognized pool '" << poolstr << "'"; @@ -9819,7 +9819,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, goto reply; } string snapname; - cmd_getval(g_ceph_context, cmdmap, "snap", snapname); + cmd_getval(cct, cmdmap, "snap", snapname); const pg_pool_t *p = osdmap.get_pg_pool(pool); if (p->is_unmanaged_snaps_mode()) { ss << "pool " << poolstr << " is in unmanaged snaps mode"; @@ -9854,7 +9854,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, return true; } else if (prefix == "osd pool rmsnap") { string poolstr; - cmd_getval(g_ceph_context, cmdmap, "pool", poolstr); + cmd_getval(cct, cmdmap, "pool", poolstr); int64_t pool = osdmap.lookup_pg_pool_name(poolstr.c_str()); if (pool < 0) { ss << "unrecognized pool '" << poolstr << "'"; @@ -9862,7 +9862,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, goto reply; } string snapname; - cmd_getval(g_ceph_context, cmdmap, "snap", snapname); + cmd_getval(cct, cmdmap, "snap", snapname); const pg_pool_t *p = osdmap.get_pg_pool(pool); if (p->is_unmanaged_snaps_mode()) { ss << "pool " << poolstr << " is in unmanaged snaps mode"; @@ -9895,16 +9895,16 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, } else if (prefix == "osd pool create") { int64_t pg_num; int64_t pgp_num; - cmd_getval(g_ceph_context, cmdmap, "pg_num", pg_num, int64_t(0)); - cmd_getval(g_ceph_context, cmdmap, "pgp_num", pgp_num, pg_num); + cmd_getval(cct, cmdmap, "pg_num", pg_num, int64_t(0)); + cmd_getval(cct, cmdmap, "pgp_num", pgp_num, pg_num); string pool_type_str; - cmd_getval(g_ceph_context, cmdmap, "pool_type", pool_type_str); + cmd_getval(cct, cmdmap, "pool_type", pool_type_str); if (pool_type_str.empty()) pool_type_str = g_conf->osd_pool_default_type; string poolstr; - cmd_getval(g_ceph_context, cmdmap, "pool", poolstr); + cmd_getval(cct, cmdmap, "pool", poolstr); int64_t pool_id = osdmap.lookup_pg_pool_name(poolstr); if (pool_id >= 0) { const pg_pool_t *p = osdmap.get_pg_pool(pool_id); @@ -9938,9 +9938,9 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, bool implicit_rule_creation = false; string rule_name; - cmd_getval(g_ceph_context, cmdmap, "rule", rule_name); + cmd_getval(cct, cmdmap, "rule", rule_name); string erasure_code_profile; - cmd_getval(g_ceph_context, cmdmap, "erasure_code_profile", erasure_code_profile); + cmd_getval(cct, cmdmap, "erasure_code_profile", erasure_code_profile); if (pool_type == pg_pool_t::TYPE_ERASURE) { if (erasure_code_profile == "") @@ -9954,7 +9954,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, } map profile_map; - err = osdmap.get_erasure_code_profile_default(g_ceph_context, + err = osdmap.get_erasure_code_profile_default(cct, profile_map, &ss); if (err) @@ -9991,7 +9991,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, } int64_t expected_num_objects; - cmd_getval(g_ceph_context, cmdmap, "expected_num_objects", expected_num_objects, int64_t(0)); + cmd_getval(cct, cmdmap, "expected_num_objects", expected_num_objects, int64_t(0)); if (expected_num_objects < 0) { ss << "'expected_num_objects' must be non-negative"; err = -EINVAL; @@ -9999,7 +9999,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, } int64_t fast_read_param; - cmd_getval(g_ceph_context, cmdmap, "fast_read", fast_read_param, int64_t(-1)); + cmd_getval(cct, cmdmap, "fast_read", fast_read_param, int64_t(-1)); FastReadType fast_read = FAST_READ_DEFAULT; if (fast_read_param == 0) fast_read = FAST_READ_OFF; @@ -10040,9 +10040,9 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, prefix == "osd pool rm") { // osd pool delete/rm --yes-i-really-really-mean-it string poolstr, poolstr2, sure; - cmd_getval(g_ceph_context, cmdmap, "pool", poolstr); - cmd_getval(g_ceph_context, cmdmap, "pool2", poolstr2); - cmd_getval(g_ceph_context, cmdmap, "sure", sure); + cmd_getval(cct, cmdmap, "pool", poolstr); + cmd_getval(cct, cmdmap, "pool2", poolstr2); + cmd_getval(cct, cmdmap, "sure", sure); int64_t pool = osdmap.lookup_pg_pool_name(poolstr.c_str()); if (pool < 0) { ss << "pool '" << poolstr << "' does not exist"; @@ -10069,8 +10069,8 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, goto update; } else if (prefix == "osd pool rename") { string srcpoolstr, destpoolstr; - cmd_getval(g_ceph_context, cmdmap, "srcpool", srcpoolstr); - cmd_getval(g_ceph_context, cmdmap, "destpool", destpoolstr); + cmd_getval(cct, cmdmap, "srcpool", srcpoolstr); + cmd_getval(cct, cmdmap, "destpool", destpoolstr); int64_t pool_src = osdmap.lookup_pg_pool_name(srcpoolstr.c_str()); int64_t pool_dst = osdmap.lookup_pg_pool_name(destpoolstr.c_str()); @@ -10127,7 +10127,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, if (err) goto reply; string poolstr; - cmd_getval(g_ceph_context, cmdmap, "pool", poolstr); + cmd_getval(cct, cmdmap, "pool", poolstr); int64_t pool_id = osdmap.lookup_pg_pool_name(poolstr); if (pool_id < 0) { ss << "unrecognized pool '" << poolstr << "'"; @@ -10135,7 +10135,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, goto reply; } string tierpoolstr; - cmd_getval(g_ceph_context, cmdmap, "tierpool", tierpoolstr); + cmd_getval(cct, cmdmap, "tierpool", tierpoolstr); int64_t tierpool_id = osdmap.lookup_pg_pool_name(tierpoolstr); if (tierpool_id < 0) { ss << "unrecognized pool '" << tierpoolstr << "'"; @@ -10153,7 +10153,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, // make sure new tier is empty string force_nonempty; - cmd_getval(g_ceph_context, cmdmap, "force_nonempty", force_nonempty); + cmd_getval(cct, cmdmap, "force_nonempty", force_nonempty); const pool_stat_t *pstats = mon->mgrstatmon()->get_pool_stat(tierpool_id); if (pstats && pstats->stats.sum.num_objects != 0 && force_nonempty != "--force-nonempty") { @@ -10191,7 +10191,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, } else if (prefix == "osd tier remove" || prefix == "osd tier rm") { string poolstr; - cmd_getval(g_ceph_context, cmdmap, "pool", poolstr); + cmd_getval(cct, cmdmap, "pool", poolstr); int64_t pool_id = osdmap.lookup_pg_pool_name(poolstr); if (pool_id < 0) { ss << "unrecognized pool '" << poolstr << "'"; @@ -10199,7 +10199,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, goto reply; } string tierpoolstr; - cmd_getval(g_ceph_context, cmdmap, "tierpool", tierpoolstr); + cmd_getval(cct, cmdmap, "tierpool", tierpoolstr); int64_t tierpool_id = osdmap.lookup_pg_pool_name(tierpoolstr); if (tierpool_id < 0) { ss << "unrecognized pool '" << tierpoolstr << "'"; @@ -10255,7 +10255,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, if (err) goto reply; string poolstr; - cmd_getval(g_ceph_context, cmdmap, "pool", poolstr); + cmd_getval(cct, cmdmap, "pool", poolstr); int64_t pool_id = osdmap.lookup_pg_pool_name(poolstr); if (pool_id < 0) { ss << "unrecognized pool '" << poolstr << "'"; @@ -10263,7 +10263,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, goto reply; } string overlaypoolstr; - cmd_getval(g_ceph_context, cmdmap, "overlaypool", overlaypoolstr); + cmd_getval(cct, cmdmap, "overlaypool", overlaypoolstr); int64_t overlaypool_id = osdmap.lookup_pg_pool_name(overlaypoolstr); if (overlaypool_id < 0) { ss << "unrecognized pool '" << overlaypoolstr << "'"; @@ -10308,7 +10308,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, } else if (prefix == "osd tier remove-overlay" || prefix == "osd tier rm-overlay") { string poolstr; - cmd_getval(g_ceph_context, cmdmap, "pool", poolstr); + cmd_getval(cct, cmdmap, "pool", poolstr); int64_t pool_id = osdmap.lookup_pg_pool_name(poolstr); if (pool_id < 0) { ss << "unrecognized pool '" << poolstr << "'"; @@ -10353,7 +10353,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, if (err) goto reply; string poolstr; - cmd_getval(g_ceph_context, cmdmap, "pool", poolstr); + cmd_getval(cct, cmdmap, "pool", poolstr); int64_t pool_id = osdmap.lookup_pg_pool_name(poolstr); if (pool_id < 0) { ss << "unrecognized pool '" << poolstr << "'"; @@ -10368,7 +10368,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, goto reply; } string modestr; - cmd_getval(g_ceph_context, cmdmap, "mode", modestr); + cmd_getval(cct, cmdmap, "mode", modestr); pg_pool_t::cache_mode_t mode = pg_pool_t::get_cache_mode_from_str(modestr); if (mode < 0) { ss << "'" << modestr << "' is not a valid cache mode"; @@ -10377,7 +10377,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, } string sure; - cmd_getval(g_ceph_context, cmdmap, "sure", sure); + cmd_getval(cct, cmdmap, "sure", sure); if ((mode != pg_pool_t::CACHEMODE_WRITEBACK && mode != pg_pool_t::CACHEMODE_NONE && mode != pg_pool_t::CACHEMODE_PROXY && @@ -10503,7 +10503,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, if (err) goto reply; string poolstr; - cmd_getval(g_ceph_context, cmdmap, "pool", poolstr); + cmd_getval(cct, cmdmap, "pool", poolstr); int64_t pool_id = osdmap.lookup_pg_pool_name(poolstr); if (pool_id < 0) { ss << "unrecognized pool '" << poolstr << "'"; @@ -10511,7 +10511,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, goto reply; } string tierpoolstr; - cmd_getval(g_ceph_context, cmdmap, "tierpool", tierpoolstr); + cmd_getval(cct, cmdmap, "tierpool", tierpoolstr); int64_t tierpool_id = osdmap.lookup_pg_pool_name(tierpoolstr); if (tierpool_id < 0) { ss << "unrecognized pool '" << tierpoolstr << "'"; @@ -10528,7 +10528,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, } int64_t size = 0; - if (!cmd_getval(g_ceph_context, cmdmap, "size", size)) { + if (!cmd_getval(cct, cmdmap, "size", size)) { ss << "unable to parse 'size' value '" << cmd_vartype_stringify(cmdmap["size"]) << "'"; err = -EINVAL; @@ -10593,7 +10593,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, return true; } else if (prefix == "osd pool set-quota") { string poolstr; - cmd_getval(g_ceph_context, cmdmap, "pool", poolstr); + cmd_getval(cct, cmdmap, "pool", poolstr); int64_t pool_id = osdmap.lookup_pg_pool_name(poolstr); if (pool_id < 0) { ss << "unrecognized pool '" << poolstr << "'"; @@ -10602,7 +10602,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, } string field; - cmd_getval(g_ceph_context, cmdmap, "field", field); + cmd_getval(cct, cmdmap, "field", field); if (field != "max_objects" && field != "max_bytes") { ss << "unrecognized field '" << field << "'; should be 'max_bytes' or 'max_objects'"; err = -EINVAL; @@ -10611,7 +10611,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, // val could contain unit designations, so we treat as a string string val; - cmd_getval(g_ceph_context, cmdmap, "val", val); + cmd_getval(cct, cmdmap, "val", val); stringstream tss; int64_t value = unit_to_bytesize(val, &tss); if (value < 0) { @@ -10650,7 +10650,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, } else if (prefix == "osd force-create-pg") { pg_t pgid; string pgidstr; - cmd_getval(g_ceph_context, cmdmap, "pgid", pgidstr); + cmd_getval(cct, cmdmap, "pgid", pgidstr); if (!pgid.parse(pgidstr.c_str())) { ss << "invalid pgid '" << pgidstr << "'"; err = -EINVAL; -- 2.39.5