if (m->cmd.size() > 1) {
if (m->cmd[1] == "add" ||
m->cmd[1] == "del" ||
+ m->cmd[1] == "get-or-create" ||
m->cmd[1] == "get-or-create-key" ||
m->cmd[1] == "caps") {
return false;
paxos->wait_for_commit(new Monitor::C_Command(mon, m, 0, rs, paxos->get_version()));
return true;
}
- else if (m->cmd[1] == "get-or-create-key" && m->cmd.size() >= 3) {
+ else if ((m->cmd[1] == "get-or-create-key" ||
+ m->cmd[1] == "get-or-create") &&
+ m->cmd.size() >= 3) {
// auth get-or-create <name> [mon osdcapa osd osdcapb ...]
EntityName entity;
if (!entity.from_str(m->cmd[2])) {
}
}
- ss << entity_auth.key;
+ if (m->cmd[1] == "get-or-create-key") {
+ ss << entity_auth.key;
+ } else {
+ KeyRing kr;
+ kr.add(entity, entity_auth.key);
+ kr.encode_plaintext(rdata);
+ }
err = 0;
goto done;
}
push_cephx_inc(auth_inc);
- ss << auth_inc.auth.key;
+ if (m->cmd[1] == "get-or-create-key") {
+ ss << auth_inc.auth.key;
+ } else {
+ KeyRing kr;
+ kr.add(entity, auth_inc.auth.key);
+ kr.encode_plaintext(rdata);
+ }
+
getline(ss, rs);
- paxos->wait_for_commit(new Monitor::C_Command(mon, m, 0, rs, paxos->get_version()));
+ paxos->wait_for_commit(new Monitor::C_Command(mon, m, 0, rs, rdata, paxos->get_version()));
return true;
}
else if (m->cmd[1] == "caps" && m->cmd.size() >= 3) {