}
int CrushTester::test_with_crushtool(const string& crushtool,
+ int max_id,
int timeout)
{
string timeout_string = stringify(timeout);
+ string opt_max_id = stringify(max_id);
vector<const char *> cmd_args;
cmd_args.push_back("timeout");
cmd_args.push_back(timeout_string.c_str());
cmd_args.push_back("-i");
cmd_args.push_back("-");
cmd_args.push_back("--test");
+ cmd_args.push_back("--check");
+ cmd_args.push_back(opt_max_id.c_str());
cmd_args.push_back(NULL);
int pipefds[2];
// then we would consistently trigger an election before the command
// finishes, having a flapping monitor unable to hold quorum.
CrushTester tester(crush, ess);
- if (!tester.check_name_maps(osdmap.get_max_osd())) {
- err = -EINVAL;
- ss << ess.str();
- goto reply;
- }
int r = tester.test_with_crushtool(g_conf->crushtool,
+ osdmap.get_max_osd(),
g_conf->mon_lease);
if (r < 0) {
if (r == -EINTR) {