int ioctx_create(const char *name, IoCtx &pioctx);
+ // Features useful for test cases
+ void test_blacklist_self(bool set);
+
/* listing objects */
int pool_list(std::list<std::string>& v);
int get_pool_stats(std::list<std::string>& v,
}
}
+void librados::RadosClient::blacklist_self(bool set) {
+ Mutex::Locker l(lock);
+ objecter->blacklist_self(set);
+}
class C_WatchNotify : public Context {
librados::WatchContext *ctx;
void watch_notify(MWatchNotify *m);
void get();
bool put();
+ void blacklist_self(bool set);
};
#endif
return 0;
}
+void librados::Rados::test_blacklist_self(bool set)
+{
+ client->blacklist_self(set);
+}
+
int librados::Rados::get_pool_stats(std::list<string>& v, std::map<string, stats_map>& result)
{
string category;
vector<string> cmd;
MMonCommand() : PaxosServiceMessage(MSG_MON_COMMAND, 0) {}
- MMonCommand(uuid_d &f, version_t v) :
+ MMonCommand(const uuid_d &f, version_t v) :
PaxosServiceMessage(MSG_MON_COMMAND, v),
fsid(f) { }
#include "messages/MStatfsReply.h"
#include "messages/MOSDFailure.h"
+#include "messages/MMonCommand.h"
#include <errno.h>
out.append(ss);
return true;
}
+
+void Objecter::blacklist_self(bool set)
+{
+ ldout(cct, 10) << "blacklist_self " << (set ? "add" : "rm") << dendl;
+
+ vector<string> cmd;
+ cmd.push_back("osd");
+ cmd.push_back("blacklist");
+ if (set)
+ cmd.push_back("add");
+ else
+ cmd.push_back("rm");
+ stringstream ss;
+ ss << messenger->get_myaddr();
+ cmd.push_back(ss.str());
+
+ MMonCommand *m = new MMonCommand(monc->get_fsid(), last_seen_osdmap_version);
+ m->cmd = cmd;
+
+ monc->send_mon_message(m);
+}
void ms_handle_connect(Connection *con);
void ms_handle_reset(Connection *con);
void ms_handle_remote_reset(Connection *con);
+ void blacklist_self(bool set);
};
#endif