#define dout_subsys ceph_subsys_mon
#undef dout_prefix
-#define dout_prefix _prefix(_dout, mon, get_version())
+#define dout_prefix _prefix(_dout, mon, get_last_committed())
static ostream& _prefix(std::ostream *_dout, Monitor *mon, version_t v) {
return *_dout << "mon." << mon->name << "@" << mon->rank
<< "(" << mon->get_state_name()
void AuthMonitor::update_from_paxos(bool *need_bootstrap)
{
dout(10) << __func__ << dendl;
- version_t version = get_version();
+ version_t version = get_last_committed();
version_t keys_ver = mon->key_server.get_ver();
if (version == keys_ver)
return;
void AuthMonitor::create_pending()
{
pending_auth.clear();
- dout(10) << "create_pending v " << (get_version() + 1) << dendl;
+ dout(10) << "create_pending v " << (get_last_committed() + 1) << dendl;
}
void AuthMonitor::encode_pending(MonitorDBStore::Transaction *t)
{
- dout(10) << __func__ << " v " << (get_version() + 1) << dendl;
+ dout(10) << __func__ << " v " << (get_last_committed() + 1) << dendl;
bufferlist bl;
t->put(get_service_name(), "format_version", format_version);
}
- version_t version = get_version() + 1;
+ version_t version = get_last_committed() + 1;
put_version(t, version, bl);
put_last_committed(t, version);
}
{
version_t version = mon->key_server.get_ver();
dout(10) << __func__ << " auth v " << version << dendl;
- assert(get_version() == version);
+ assert(get_last_committed() == version);
bufferlist full_bl;
Mutex::Locker l(mon->key_server.get_lock());
void AuthMonitor::update_trim()
{
unsigned max = g_conf->paxos_max_join_drift * 2;
- version_t version = get_version();
+ version_t version = get_last_committed();
if (mon->is_leader() && (version > max))
set_trim_to(version - max);
}
if (!cmdmap_from_json(m->cmd, &cmdmap, ss)) {
// ss has reason for failure
string rs = ss.str();
- mon->reply_command(m, -EINVAL, rs, rdata, get_version());
+ mon->reply_command(m, -EINVAL, rs, rdata, get_last_committed());
return true;
}
MonSession *session = m->get_session();
if (!session ||
(!mon->_allowed_command(session, cmdmap))) {
- mon->reply_command(m, -EACCES, "access denied", rdata, get_version());
+ mon->reply_command(m, -EACCES, "access denied", rdata, get_last_committed());
return true;
}
rdata.append(ds);
string rs;
getline(ss, rs, '\0');
- mon->reply_command(m, r, rs, rdata, get_version());
+ mon->reply_command(m, r, rs, rdata, get_last_committed());
return true;
}
if (!cmdmap_from_json(m->cmd, &cmdmap, ss)) {
// ss has reason for failure
string rs = ss.str();
- mon->reply_command(m, -EINVAL, rs, rdata, get_version());
+ mon->reply_command(m, -EINVAL, rs, rdata, get_last_committed());
return true;
}
MonSession *session = m->get_session();
if (!session ||
(!mon->_allowed_command(session, cmdmap))) {
- mon->reply_command(m, -EACCES, "access denied", rdata, get_version());
+ mon->reply_command(m, -EACCES, "access denied", rdata, get_last_committed());
return true;
}
ss << "imported keyring";
getline(ss, rs);
err = 0;
- wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_version()));
- //paxos->wait_for_commit(new Monitor::C_Command(mon, m, 0, rs, get_version()));
+ wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_last_committed()));
+ //paxos->wait_for_commit(new Monitor::C_Command(mon, m, 0, rs, get_last_committed()));
return true;
} else if (prefix == "auth add") {
KeyServerData::Incremental auth_inc;
ss << "added key for " << auth_inc.name;
getline(ss, rs);
- wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_version()));
- //paxos->wait_for_commit(new Monitor::C_Command(mon, m, 0, rs, get_version()));
+ wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_last_committed()));
+ //paxos->wait_for_commit(new Monitor::C_Command(mon, m, 0, rs, get_last_committed()));
return true;
} else if ((prefix == "auth get-or-create-key" ||
prefix == "auth get-or-create") &&
::decode(auth_inc, q);
if (auth_inc.op == KeyServerData::AUTH_INC_ADD &&
auth_inc.name == entity) {
- wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_version()));
+ wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_last_committed()));
//paxos->wait_for_commit(new C_RetryMessage(this, m));
return true;
}
rdata.append(ds);
getline(ss, rs);
- wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, rdata, get_version()));
- //paxos->wait_for_commit(new Monitor::C_Command(mon, m, 0, rs, get_version()));
+ wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, rdata, get_last_committed()));
+ //paxos->wait_for_commit(new Monitor::C_Command(mon, m, 0, rs, get_last_committed()));
return true;
} else if (prefix == "auth caps" && !entity_name.empty()) {
KeyServerData::Incremental auth_inc;
ss << "updated caps for " << auth_inc.name;
getline(ss, rs);
- wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_version()));
- //paxos->wait_for_commit(new Monitor::C_Command(mon, m, 0, rs, get_version()));
+ wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_last_committed()));
+ //paxos->wait_for_commit(new Monitor::C_Command(mon, m, 0, rs, get_last_committed()));
return true;
} else if (prefix == "auth del" && !entity_name.empty()) {
KeyServerData::Incremental auth_inc;
ss << "updated";
getline(ss, rs);
- wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_version()));
- //paxos->wait_for_commit(new Monitor::C_Command(mon, m, 0, rs, get_version()));
+ wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_last_committed()));
+ //paxos->wait_for_commit(new Monitor::C_Command(mon, m, 0, rs, get_last_committed()));
return true;
}
done:
rdata.append(ds);
getline(ss, rs, '\0');
- mon->reply_command(m, err, rs, rdata, get_version());
+ mon->reply_command(m, err, rs, rdata, get_last_committed());
return false;
}
#define dout_subsys ceph_subsys_mon
#undef dout_prefix
-#define dout_prefix _prefix(_dout, mon, get_version())
+#define dout_prefix _prefix(_dout, mon, get_last_committed())
static ostream& _prefix(std::ostream *_dout, Monitor *mon, version_t v) {
return *_dout << "mon." << mon->name << "@" << mon->rank
<< "(" << mon->get_state_name()
void LogMonitor::update_from_paxos(bool *need_bootstrap)
{
dout(10) << __func__ << dendl;
- version_t version = get_version();
+ version_t version = get_last_committed();
dout(10) << __func__ << " version " << version
<< " summary v " << summary.version << dendl;
if (version == summary.version)
{
pending_log.clear();
pending_summary = summary;
- dout(10) << "create_pending v " << (get_version() + 1) << dendl;
+ dout(10) << "create_pending v " << (get_last_committed() + 1) << dendl;
}
void LogMonitor::encode_pending(MonitorDBStore::Transaction *t)
{
- version_t version = get_version() + 1;
+ version_t version = get_last_committed() + 1;
bufferlist bl;
dout(10) << __func__ << " v" << version << dendl;
__u8 v = 1;
void LogMonitor::encode_full(MonitorDBStore::Transaction *t)
{
dout(10) << __func__ << " log v " << summary.version << dendl;
- assert(get_version() == summary.version);
+ assert(get_last_committed() == summary.version);
bufferlist summary_bl;
::encode(summary, summary_bl);
void LogMonitor::update_trim()
{
unsigned max = g_conf->mon_max_log_epochs;
- version_t version = get_version();
+ version_t version = get_last_committed();
if (mon->is_leader() && version > max)
set_trim_to(version - max);
}
if (r != -1) {
string rs;
getline(ss, rs);
- mon->reply_command(m, r, rs, rdata, get_version());
+ mon->reply_command(m, r, rs, rdata, get_last_committed());
return true;
} else
return false;
if (!cmdmap_from_json(m->cmd, &cmdmap, ss)) {
// ss has reason for failure
string rs = ss.str();
- mon->reply_command(m, -EINVAL, rs, get_version());
+ mon->reply_command(m, -EINVAL, rs, get_last_committed());
return true;
}
if (!session ||
(!session->is_capable("log", MON_CAP_W) &&
!mon->_allowed_command(session, cmdmap))) {
- mon->reply_command(m, -EACCES, "access denied", get_version());
+ mon->reply_command(m, -EACCES, "access denied", get_last_committed());
return true;
}
le.msg = ds.str();
pending_summary.add(le);
pending_log.insert(pair<utime_t,LogEntry>(le.stamp, le));
- wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, string(), get_version()));
+ wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, string(), get_last_committed()));
return true;
}
getline(ss, rs);
- mon->reply_command(m, err, rs, get_version());
+ mon->reply_command(m, err, rs, get_last_committed());
return false;
}
void MDSMonitor::update_from_paxos(bool *need_bootstrap)
{
- version_t version = get_version();
+ version_t version = get_last_committed();
if (version == mdsmap.epoch)
return;
assert(version >= mdsmap.epoch);
//print_map(pending_mdsmap);
// apply to paxos
- assert(get_version() + 1 == pending_mdsmap.epoch);
+ assert(get_last_committed() + 1 == pending_mdsmap.epoch);
bufferlist mdsmap_bl;
pending_mdsmap.encode(mdsmap_bl, mon->get_quorum_features());
if (!cmdmap_from_json(m->cmd, &cmdmap, ss)) {
// ss has reason for failure
string rs = ss.str();
- mon->reply_command(m, -EINVAL, rs, rdata, get_version());
+ mon->reply_command(m, -EINVAL, rs, rdata, get_last_committed());
return true;
}
if (!session ||
(!session->is_capable("mds", MON_CAP_R) &&
!mon->_allowed_command(session, cmdmap))) {
- mon->reply_command(m, -EACCES, "access denied", rdata, get_version());
+ mon->reply_command(m, -EACCES, "access denied", rdata, get_last_committed());
return true;
}
i != mds_info.end();
++i) {
m->cmd = args_vec;
- mon->send_command(i->second.get_inst(), m->cmd, get_version());
+ mon->send_command(i->second.get_inst(), m->cmd, get_last_committed());
r = 0;
}
if (r == -ENOENT) {
if (!errno && who >= 0) {
if (mdsmap.is_up(who)) {
m->cmd = args_vec;
- mon->send_command(mdsmap.get_inst(who), m->cmd, get_version());
+ mon->send_command(mdsmap.get_inst(who), m->cmd, get_last_committed());
r = 0;
ss << "ok";
} else {
rdata.append(ds);
string rs;
getline(ss, rs);
- mon->reply_command(m, r, rs, rdata, get_version());
+ mon->reply_command(m, r, rs, rdata, get_last_committed());
return true;
} else
return false;
map<string, cmd_vartype> cmdmap;
if (!cmdmap_from_json(m->cmd, &cmdmap, ss)) {
string rs = ss.str();
- mon->reply_command(m, -EINVAL, rs, rdata, get_version());
+ mon->reply_command(m, -EINVAL, rs, rdata, get_last_committed());
return true;
}
if (!session ||
(!session->is_capable("mds", MON_CAP_W) &&
!mon->_allowed_command(session, cmdmap))) {
- mon->reply_command(m, -EACCES, "access denied", rdata, get_version());
+ mon->reply_command(m, -EACCES, "access denied", rdata, get_last_committed());
return true;
}
map.epoch = pending_mdsmap.epoch; // make sure epoch is correct
pending_mdsmap = map;
string rs = "set mds map";
- wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_version()));
+ wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_last_committed()));
return true;
} else {
ss << "next mdsmap epoch " << pending_mdsmap.epoch << " != " << e;
ss << "set mds gid " << gid << " to state " << state << " " << ceph_mds_state_name(state);
string rs;
getline(ss, rs);
- wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_version()));
+ wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_last_committed()));
return true;
}
ss << "removed mds gid " << gid;
string rs;
getline(ss, rs);
- wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_version()));
+ wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_last_committed()));
return true;
}
} else if (prefix == "mds rmfailed") {
ss << "removed failed mds." << w;
string rs;
getline(ss, rs);
- wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_version()));
+ wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_last_committed()));
return true;
} else if (prefix == "mds cluster_fail") {
r = cluster_fail(ss);
ss << "new fs with metadata pool " << metadata << " and data pool " << data;
string rs;
getline(ss, rs);
- wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_version()));
+ wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_last_committed()));
return true;
}
}
if (r >= 0) {
// success.. delay reply
- wait_for_finished_proposal(new Monitor::C_Command(mon, m, r, rs, get_version()));
+ wait_for_finished_proposal(new Monitor::C_Command(mon, m, r, rs, get_last_committed()));
return true;
} else {
// reply immediately
- mon->reply_command(m, r, rs, rdata, get_version());
+ mon->reply_command(m, r, rs, rdata, get_last_committed());
return false;
}
}
// we need to bootstrap authentication keys so we can form an
// initial quorum.
- if (authmon()->get_version() == 0) {
+ if (authmon()->get_last_committed() == 0) {
dout(10) << "loading initial keyring to bootstrap authentication for mkfs" << dendl;
bufferlist bl;
store->get("mkfs", "keyring", bl);
void MonmapMonitor::update_from_paxos(bool *need_bootstrap)
{
- version_t version = get_version();
+ version_t version = get_last_committed();
if (version <= mon->monmap->get_epoch())
return;
void MonmapMonitor::on_active()
{
- if (get_version() >= 1 && !mon->has_ever_joined) {
+ if (get_last_committed() >= 1 && !mon->has_ever_joined) {
// make note of the fact that i was, once, part of the quorum.
dout(10) << "noting that i was, once, part of an active quorum." << dendl;
map<string, cmd_vartype> cmdmap;
if (!cmdmap_from_json(m->cmd, &cmdmap, ss)) {
string rs = ss.str();
- mon->reply_command(m, -EINVAL, rs, rdata, get_version());
+ mon->reply_command(m, -EINVAL, rs, rdata, get_last_committed());
return true;
}
if (!session ||
(!session->is_capable("mon", MON_CAP_R) &&
!mon->_allowed_command(session, cmdmap))) {
- mon->reply_command(m, -EACCES, "access denied", get_version());
+ mon->reply_command(m, -EACCES, "access denied", get_last_committed());
return true;
}
string rs;
getline(ss, rs);
- mon->reply_command(m, r, rs, rdata, get_version());
+ mon->reply_command(m, r, rs, rdata, get_last_committed());
return true;
} else
return false;
map<string, cmd_vartype> cmdmap;
if (!cmdmap_from_json(m->cmd, &cmdmap, ss)) {
string rs = ss.str();
- mon->reply_command(m, -EINVAL, rs, get_version());
+ mon->reply_command(m, -EINVAL, rs, get_last_committed());
return true;
}
if (!session ||
(!session->is_capable("mon", MON_CAP_R) &&
!mon->_allowed_command(session, cmdmap))) {
- mon->reply_command(m, -EACCES, "access denied", get_version());
+ mon->reply_command(m, -EACCES, "access denied", get_last_committed());
return true;
}
pending_map.last_changed = ceph_clock_now(g_ceph_context);
ss << "added mon." << name << " at " << addr;
getline(ss, rs);
- wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_version()));
+ wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_last_committed()));
return true;
} else if (prefix == "mon remove") {
ss << "removed mon." << name << " at " << addr << ", there are now " << pending_map.size() << " monitors" ;
getline(ss, rs);
// send reply immediately in case we get removed
- mon->reply_command(m, 0, rs, get_version());
+ mon->reply_command(m, 0, rs, get_last_committed());
return true;
}
else
out:
getline(ss, rs);
- mon->reply_command(m, err, rs, get_version());
+ mon->reply_command(m, err, rs, get_last_committed());
return false;
}
void OSDMonitor::update_from_paxos(bool *need_bootstrap)
{
- version_t version = get_version();
+ version_t version = get_last_committed();
if (version == osdmap.epoch)
return;
assert(version >= osdmap.epoch);
}
// encode
- assert(get_version() + 1 == pending_inc.epoch);
+ assert(get_last_committed() + 1 == pending_inc.epoch);
::encode(pending_inc, bl, CEPH_FEATURES_ALL);
/* put everything in the transaction */
void OSDMonitor::encode_full(MonitorDBStore::Transaction *t)
{
dout(10) << __func__ << " osdmap e " << osdmap.epoch << dendl;
- assert(get_version() == osdmap.epoch);
+ assert(get_last_committed() == osdmap.epoch);
bufferlist osdmap_bl;
osdmap.encode(osdmap_bl);
epoch_t floor = mon->pgmon()->pg_map.calc_min_last_epoch_clean();
dout(10) << " min_last_epoch_clean " << floor << dendl;
unsigned min = g_conf->mon_min_osdmap_epochs;
- if (floor + min > get_version()) {
- if (min < get_version())
- floor = get_version() - min;
+ if (floor + min > get_last_committed()) {
+ if (min < get_last_committed())
+ floor = get_last_committed() - min;
else
floor = 0;
}
map<string, cmd_vartype> cmdmap;
if (!cmdmap_from_json(m->cmd, &cmdmap, ss)) {
string rs = ss.str();
- mon->reply_command(m, -EINVAL, rs, get_version());
+ mon->reply_command(m, -EINVAL, rs, get_last_committed());
return true;
}
if (!session ||
(!session->is_capable("osd", MON_CAP_R) &&
!mon->_allowed_command(session, cmdmap))) {
- mon->reply_command(m, -EACCES, "access denied", rdata, get_version());
+ mon->reply_command(m, -EACCES, "access denied", rdata, get_last_committed());
return true;
}
if (whostr == "*") {
for (int i = 0; i < osdmap.get_max_osd(); ++i)
if (osdmap.is_up(i))
- mon->send_command(osdmap.get_inst(i), argvec, get_version());
+ mon->send_command(osdmap.get_inst(i), argvec, get_last_committed());
ss << "ok";
} else {
errno = 0;
r = -EINVAL;
} else {
if (osdmap.is_up(who)) {
- mon->send_command(osdmap.get_inst(who), argvec, get_version());
+ mon->send_command(osdmap.get_inst(who), argvec, get_last_committed());
ss << "ok";
} else {
ss << "osd." << who << " not up";
reply:
string rs;
getline(ss, rs);
- mon->reply_command(m, r, rs, rdata, get_version());
+ mon->reply_command(m, r, rs, rdata, get_last_committed());
return true;
}
pending_inc.new_flags = osdmap.get_flags();
pending_inc.new_flags |= flag;
ss << "set " << OSDMap::get_flag_string(flag);
- wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, ss.str(), get_version()));
+ wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, ss.str(), get_last_committed()));
return true;
}
pending_inc.new_flags = osdmap.get_flags();
pending_inc.new_flags &= ~flag;
ss << "unset " << OSDMap::get_flag_string(flag);
- wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, ss.str(), get_version()));
+ wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, ss.str(), get_last_committed()));
return true;
}
map<string, cmd_vartype> cmdmap;
if (!cmdmap_from_json(m->cmd, &cmdmap, ss)) {
string rs = ss.str();
- mon->reply_command(m, -EINVAL, rs, get_version());
+ mon->reply_command(m, -EINVAL, rs, get_last_committed());
return true;
}
if (!session ||
(!session->is_capable("osd", MON_CAP_W) &&
!mon->_allowed_command(session, cmdmap))) {
- mon->reply_command(m, -EACCES, "access denied", get_version());
+ mon->reply_command(m, -EACCES, "access denied", get_last_committed());
return true;
}
ss << action << " item id " << id << " name '" << name << "' weight "
<< weight << " at location " << loc << " to crush map";
getline(ss, rs);
- wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_version()));
+ wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_last_committed()));
return true;
}
} while (false);
ss << "create-or-move updating item name '" << name << "' weight " << weight
<< " at location " << loc << " to crush map";
getline(ss, rs);
- wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_version()));
+ wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_last_committed()));
return true;
}
} while (false);
pending_inc.crush.clear();
newcrush.encode(pending_inc.crush);
getline(ss, rs);
- wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_version()));
+ wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_last_committed()));
return true;
}
} else {
pending_inc.crush.clear();
newcrush.encode(pending_inc.crush);
getline(ss, rs);
- wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_version()));
+ wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_last_committed()));
return true;
}
} else {
newcrush.encode(pending_inc.crush);
ss << "removed item id " << id << " name '" << name << "' from crush map";
getline(ss, rs);
- wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_version()));
+ wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_last_committed()));
return true;
}
} while (false);
ss << "reweighted item id " << id << " name '" << name << "' to " << w
<< " in crush map";
getline(ss, rs);
- wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_version()));
+ wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_last_committed()));
return true;
}
} while (false);
newcrush.encode(pending_inc.crush);
ss << "adjusted tunables profile to " << profile;
getline(ss, rs);
- wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_version()));
+ wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_last_committed()));
return true;
} else if (prefix == "osd crush rule create-simple") {
newcrush.encode(pending_inc.crush);
}
getline(ss, rs);
- wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_version()));
+ wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_last_committed()));
return true;
} else if (prefix == "osd crush rule rm") {
newcrush.encode(pending_inc.crush);
}
getline(ss, rs);
- wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_version()));
+ wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_last_committed()));
return true;
} else if (prefix == "osd setmaxosd") {
pending_inc.new_max_osd = newmax;
ss << "set new max_osd = " << pending_inc.new_max_osd;
getline(ss, rs);
- wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_version()));
+ wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_last_committed()));
return true;
} else if (prefix == "osd pause") {
}
if (any) {
getline(ss, rs);
- wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_version()));
+ wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_last_committed()));
return true;
}
} else if (prefix == "osd reweight") {
pending_inc.new_weight[id] = ww;
ss << "reweighted osd." << id << " to " << w << " (" << ios::hex << ww << ios::dec << ")";
getline(ss, rs);
- wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_version()));
+ wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_last_committed()));
return true;
}
pending_inc.new_lost[id] = e;
ss << "marked osd lost in epoch " << e;
getline(ss, rs);
- wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_version()));
+ wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_last_committed()));
return true;
}
pending_inc.new_uuid[i] = uuid;
ss << i;
rdata.append(ss);
- wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, rdata, get_version()));
+ wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, rdata, get_last_committed()));
return true;
} else if (prefix == "osd blacklist") {
pending_inc.new_blacklist[addr] = expires;
ss << "blacklisting " << addr << " until " << expires << " (" << d << " sec)";
getline(ss, rs);
- wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_version()));
+ wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_last_committed()));
return true;
} else if (blacklistop == "rm") {
if (osdmap.is_blacklisted(addr) ||
pending_inc.new_blacklist.erase(addr);
ss << "un-blacklisting " << addr;
getline(ss, rs);
- wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_version()));
+ wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_last_committed()));
return true;
}
ss << addr << " isn't blacklisted";
pp->set_snap_epoch(pending_inc.epoch);
ss << "created pool " << poolstr << " snap " << snapname;
getline(ss, rs);
- wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_version()));
+ wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_last_committed()));
return true;
}
}
pp->set_snap_epoch(pending_inc.epoch);
ss << "removed pool " << poolstr << " snap " << snapname;
getline(ss, rs);
- wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_version()));
+ wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_last_committed()));
return true;
}
}
ss << "pool '" << poolstr << "' created";
}
getline(ss, rs);
- wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_version()));
+ wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_last_committed()));
return true;
} else if (prefix == "osd pool delete") {
if (ret == 0)
ss << "pool '" << poolstr << "' deleted";
getline(ss, rs);
- wait_for_finished_proposal(new Monitor::C_Command(mon, m, ret, rs, get_version()));
+ wait_for_finished_proposal(new Monitor::C_Command(mon, m, ret, rs, get_last_committed()));
return true;
} else if (prefix == "osd pool rename") {
string srcpoolstr, destpoolstr;
<< cpp_strerror(ret);
}
getline(ss, rs);
- wait_for_finished_proposal(new Monitor::C_Command(mon, m, ret, rs, get_version()));
+ wait_for_finished_proposal(new Monitor::C_Command(mon, m, ret, rs, get_last_committed()));
return true;
}
} else if (prefix == "osd pool set") {
}
pending_inc.new_pools[pool].last_change = pending_inc.epoch;
getline(ss, rs);
- wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_version()));
+ wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_last_committed()));
return true;
}
} else if (prefix == "osd pool set-quota") {
}
ss << "set-quota " << field << " = " << value << " for pool " << poolstr;
rs = ss.str();
- wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_version()));
+ wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_last_committed()));
return true;
} else if (prefix == "osd pool get") {
} else {
ss << "SUCCESSFUL reweight-by-utilization: " << out_str;
getline(ss, rs);
- wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_version()));
+ wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_last_committed()));
return true;
}
getline(ss, rs);
if (err < 0 && rs.length() == 0)
rs = cpp_strerror(err);
- mon->reply_command(m, err, rs, rdata, get_version());
+ mon->reply_command(m, err, rs, rdata, get_last_committed());
return ret;
update:
getline(ss, rs);
- wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_version()));
+ wait_for_finished_proposal(new Monitor::C_Command(mon, m, 0, rs, get_last_committed()));
return true;
}
{
dout(20) << "_pool_op_reply " << ret << dendl;
MPoolOpReply *reply = new MPoolOpReply(m->fsid, m->get_tid(),
- ret, epoch, get_version(), blp);
+ ret, epoch, get_last_committed(), blp);
mon->send_reply(m, reply);
m->put();
}
void PGMonitor::update_from_paxos(bool *need_bootstrap)
{
- version_t version = get_version();
+ version_t version = get_last_committed();
if (version == pg_map.version)
return;
assert(version >= pg_map.version);
{
version_t version = pending_inc.version;
dout(10) << __func__ << " v " << version << dendl;
- assert(get_version() + 1 == version);
+ assert(get_last_committed() + 1 == version);
pending_inc.stamp = ceph_clock_now(g_ceph_context);
bufferlist bl;
void PGMonitor::encode_full(MonitorDBStore::Transaction *t)
{
dout(10) << __func__ << " pgmap v " << pg_map.version << dendl;
- assert(get_version() == pg_map.version);
+ assert(get_last_committed() == pg_map.version);
bufferlist full_bl;
pg_map.encode(full_bl, mon->get_quorum_features());
void PGMonitor::update_trim()
{
unsigned max = g_conf->mon_max_pgmap_epochs;
- version_t version = get_version();
+ version_t version = get_last_committed();
if (mon->is_leader() && (version > max))
set_trim_to(version - max);
}
}
// fill out stfs
- reply = new MStatfsReply(mon->monmap->fsid, statfs->get_tid(), get_version());
+ reply = new MStatfsReply(mon->monmap->fsid, statfs->get_tid(), get_last_committed());
// these are in KB.
reply->h.st.kb = pg_map.osd_sum.kb;
goto out;
}
- reply = new MGetPoolStatsReply(m->fsid, m->get_tid(), get_version());
+ reply = new MGetPoolStatsReply(m->fsid, m->get_tid(), get_last_committed());
for (list<string>::iterator p = m->pools.begin();
p != m->pools.end();
if (!cmdmap_from_json(m->cmd, &cmdmap, ss)) {
// ss has reason for failure
string rs = ss.str();
- mon->reply_command(m, -EINVAL, rs, rdata, get_version());
+ mon->reply_command(m, -EINVAL, rs, rdata, get_last_committed());
return true;
}
if (!session ||
(!session->is_capable("pg", MON_CAP_R) &&
!mon->_allowed_command(session, cmdmap))) {
- mon->reply_command(m, -EACCES, "access denied", rdata, get_version());
+ mon->reply_command(m, -EACCES, "access denied", rdata, get_last_committed());
return true;
}
string rs;
getline(ss, rs);
rdata.append(ds);
- mon->reply_command(m, r, rs, rdata, get_version());
+ mon->reply_command(m, r, rs, rdata, get_last_committed());
return true;
}
if (!cmdmap_from_json(m->cmd, &cmdmap, ss)) {
// ss has reason for failure
string rs = ss.str();
- mon->reply_command(m, -EINVAL, rs, get_version());
+ mon->reply_command(m, -EINVAL, rs, get_last_committed());
return true;
}
if (!session ||
(!session->is_capable("pg", MON_CAP_W) &&
!mon->_allowed_command(session, cmdmap))) {
- mon->reply_command(m, -EACCES, "access denied", get_version());
+ mon->reply_command(m, -EACCES, "access denied", get_last_committed());
return true;
}
getline(ss, rs);
if (r < 0 && rs.length() == 0)
rs = cpp_strerror(r);
- mon->reply_command(m, r, rs, get_version());
+ mon->reply_command(m, r, rs, get_last_committed());
return false;
update:
getline(ss, rs);
- wait_for_finished_proposal(new Monitor::C_Command(mon, m, r, rs, get_version()));
+ wait_for_finished_proposal(new Monitor::C_Command(mon, m, r, rs, get_last_committed()));
return true;
}
*/
return (!latest_full ||
(latest_full <= get_trim_to()) ||
- (get_version() - latest_full > (unsigned)g_conf->paxos_stash_full_interval));
+ (get_last_committed() - latest_full > (unsigned)g_conf->paxos_stash_full_interval));
}
void PaxosService::restart()
have_pending = true;
}
- if (get_version() == 0) {
+ if (get_last_committed() == 0) {
// create initial state
create_initial();
propose_pending();
version_t get_last_committed() {
return cached_last_committed;
}
- /**
- * Get our current version
- *
- * @returns Our current version
- */
- version_t get_version() {
- return get_last_committed();
- }
/**
* @}