Bug#12833 corrected parsing of CLUSTERLOG command in ndb_mgm

parent f1b97218
...@@ -1909,47 +1909,54 @@ CommandInterpreter::executeEventReporting(int processId, ...@@ -1909,47 +1909,54 @@ CommandInterpreter::executeEventReporting(int processId,
return; return;
} }
BaseString tmp(parameters); BaseString tmp(parameters);
Vector<BaseString> spec; Vector<BaseString> specs;
tmp.split(spec, "="); tmp.split(specs, " ");
if(spec.size() != 2){
ndbout << "Invalid loglevel specification: " << parameters << endl;
return;
}
spec[0].trim().ndb_toupper(); for (int i=0; i < specs.size(); i++)
int category = ndb_mgm_match_event_category(spec[0].c_str()); {
if(category == NDB_MGM_ILLEGAL_EVENT_CATEGORY){ Vector<BaseString> spec;
if(!convert(spec[0].c_str(), category) || specs[i].split(spec, "=");
category < NDB_MGM_MIN_EVENT_CATEGORY || if(spec.size() != 2){
category > NDB_MGM_MAX_EVENT_CATEGORY){ ndbout << "Invalid loglevel specification: " << specs[i] << endl;
ndbout << "Unknown category: \"" << spec[0].c_str() << "\"" << endl; continue;
return;
} }
}
int level; spec[0].trim().ndb_toupper();
if (!convert(spec[1].c_str(),level)) int category = ndb_mgm_match_event_category(spec[0].c_str());
{ if(category == NDB_MGM_ILLEGAL_EVENT_CATEGORY){
ndbout << "Invalid level: " << spec[1].c_str() << endl; if(!convert(spec[0].c_str(), category) ||
return; category < NDB_MGM_MIN_EVENT_CATEGORY ||
} category > NDB_MGM_MAX_EVENT_CATEGORY){
ndbout << "Unknown category: \"" << spec[0].c_str() << "\"" << endl;
continue;
}
}
ndbout << "Executing CLUSTERLOG on node " << processId << flush; int level;
if (!convert(spec[1].c_str(),level))
{
ndbout << "Invalid level: " << spec[1].c_str() << endl;
continue;
}
struct ndb_mgm_reply reply; ndbout << "Executing CLUSTERLOG " << spec[0] << "=" << spec[1]
int result; << " on node " << processId << flush;
result = ndb_mgm_set_loglevel_clusterlog(m_mgmsrv,
processId, struct ndb_mgm_reply reply;
(ndb_mgm_event_category)category, int result;
level, result = ndb_mgm_set_loglevel_clusterlog(m_mgmsrv,
&reply); processId,
(ndb_mgm_event_category)category,
level,
&reply);
if (result != 0) { if (result != 0) {
ndbout_c(" failed."); ndbout_c(" failed.");
printError(); printError();
} else { } else {
ndbout_c(" OK!"); ndbout_c(" OK!");
} }
}
} }
/***************************************************************************** /*****************************************************************************
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment