summaryrefslogtreecommitdiff
path: root/ndb/src/mgmsrv
diff options
context:
space:
mode:
Diffstat (limited to 'ndb/src/mgmsrv')
-rw-r--r--ndb/src/mgmsrv/CommandInterpreter.cpp47
-rw-r--r--ndb/src/mgmsrv/CommandInterpreter.hpp3
-rw-r--r--ndb/src/mgmsrv/MgmtSrvr.cpp27
-rw-r--r--ndb/src/mgmsrv/MgmtSrvr.hpp2
-rw-r--r--ndb/src/mgmsrv/Services.cpp34
-rw-r--r--ndb/src/mgmsrv/Services.hpp3
6 files changed, 62 insertions, 54 deletions
diff --git a/ndb/src/mgmsrv/CommandInterpreter.cpp b/ndb/src/mgmsrv/CommandInterpreter.cpp
index 2a054a01f1e..02bf24f1d9c 100644
--- a/ndb/src/mgmsrv/CommandInterpreter.cpp
+++ b/ndb/src/mgmsrv/CommandInterpreter.cpp
@@ -113,6 +113,11 @@ private:
void * m_ptr;
};
+const char *CommandInterpreter::get_error_text(int err_no)
+{
+ return _mgmtSrvr.getErrorText(err_no, m_err_str, sizeof(m_err_str));
+}
+
//*****************************************************************************
//*****************************************************************************
int CommandInterpreter::readAndExecute() {
@@ -600,8 +605,9 @@ stopCallback(int nodeId, void * anyData, int errCode){
ndbout << "\nNode " << nodeId << " has shutdown" << endl;
} else {
MgmtSrvr * mgm = (MgmtSrvr *)anyData;
+ char err_str[1024];
ndbout << "Node " << nodeId << " has not shutdown: "
- << mgm->getErrorText(errCode) << endl;
+ << mgm->getErrorText(errCode,err_str,sizeof(err_str)) << endl;
}
}
@@ -653,7 +659,8 @@ versionCallback(int nodeId, int version, void * anyData, int errCode){
} else {
MgmtSrvr * mgm = (MgmtSrvr *)anyData;
- ndbout << mgm->getErrorText(errCode) << endl;
+ char err_str[1024];
+ ndbout << mgm->getErrorText(errCode,err_str,sizeof(err_str)) << endl;
}
}
@@ -671,7 +678,7 @@ void CommandInterpreter::executeStop(int processId,
result = _mgmtSrvr.stopNode(processId, false, stopCallback, this);
if(result != 0)
- ndbout << _mgmtSrvr.getErrorText(result) << endl;
+ ndbout << get_error_text(result) << endl;
}
@@ -686,7 +693,7 @@ void CommandInterpreter::executeStart(int processId, const char* parameters,
int result = _mgmtSrvr.start(processId);
if (result != 0) {
- ndbout << _mgmtSrvr.getErrorText(result) << endl;
+ ndbout << get_error_text(result) << endl;
}
}
@@ -719,7 +726,7 @@ CommandInterpreter::executeRestart(int processId, const char* parameters,
stopCallback,
this);
if (result != 0) {
- ndbout << _mgmtSrvr.getErrorText(result) << endl;
+ ndbout << get_error_text(result) << endl;
}
}
@@ -760,7 +767,7 @@ CommandInterpreter::executeDumpState(int processId, const char* parameters,
free(tmpString);
int result = _mgmtSrvr.dumpState(processId, pars, no);
if (result != 0) {
- ndbout << _mgmtSrvr.getErrorText(result) << endl;
+ ndbout << get_error_text(result) << endl;
}
}
@@ -781,7 +788,7 @@ void CommandInterpreter::executeStatus(int processId,
&status, &version, &startPhase, &system,
&dynamicId, &nodeGroup, &connectCount);
if(result != 0){
- ndbout << _mgmtSrvr.getErrorText(result) << endl;
+ ndbout << get_error_text(result) << endl;
return;
}
@@ -875,7 +882,7 @@ void CommandInterpreter::executeLogLevel(int processId,
int result = _mgmtSrvr.setNodeLogLevel(processId, logLevel);
if (result != 0) {
- ndbout << _mgmtSrvr.getErrorText(result) << endl;
+ ndbout << get_error_text(result) << endl;
}
#endif
}
@@ -913,7 +920,7 @@ void CommandInterpreter::executeError(int processId,
int result = _mgmtSrvr.insertError(processId, errorNo);
if (result != 0) {
- ndbout << _mgmtSrvr.getErrorText(result) << endl;
+ ndbout << get_error_text(result) << endl;
}
free(newpar);
}
@@ -953,7 +960,7 @@ void CommandInterpreter::executeTrace(int processId,
int result = _mgmtSrvr.setTraceNo(processId, traceNo);
if (result != 0) {
- ndbout << _mgmtSrvr.getErrorText(result) << endl;
+ ndbout << get_error_text(result) << endl;
}
free(newpar);
}
@@ -974,7 +981,7 @@ void CommandInterpreter::executeLog(int processId,
int result = _mgmtSrvr.setSignalLoggingMode(processId, MgmtSrvr::InOut, blocks);
if (result != 0) {
- ndbout << _mgmtSrvr.getErrorText(result) << endl;
+ ndbout << get_error_text(result) << endl;
}
}
@@ -995,7 +1002,7 @@ void CommandInterpreter::executeLogIn(int processId,
int result = _mgmtSrvr.setSignalLoggingMode(processId, MgmtSrvr::In, blocks);
if (result != 0) {
- ndbout << _mgmtSrvr.getErrorText(result) << endl;
+ ndbout << get_error_text(result) << endl;
}
}
@@ -1014,7 +1021,7 @@ void CommandInterpreter::executeLogOut(int processId,
int result = _mgmtSrvr.setSignalLoggingMode(processId, MgmtSrvr::Out, blocks);
if (result != 0) {
- ndbout << _mgmtSrvr.getErrorText(result) << endl;
+ ndbout << get_error_text(result) << endl;
}
}
@@ -1035,7 +1042,7 @@ void CommandInterpreter::executeLogOff(int processId,
int result = _mgmtSrvr.setSignalLoggingMode(processId, MgmtSrvr::Off, blocks);
if (result != 0) {
- ndbout << _mgmtSrvr.getErrorText(result) << endl;
+ ndbout << get_error_text(result) << endl;
}
}
@@ -1054,7 +1061,7 @@ void CommandInterpreter::executeTestOn(int processId,
int result = _mgmtSrvr.startSignalTracing(processId);
if (result != 0) {
- ndbout << _mgmtSrvr.getErrorText(result) << endl;
+ ndbout << get_error_text(result) << endl;
}
}
@@ -1073,7 +1080,7 @@ void CommandInterpreter::executeTestOff(int processId,
int result = _mgmtSrvr.stopSignalTracing(processId);
if (result != 0) {
- ndbout << _mgmtSrvr.getErrorText(result) << endl;
+ ndbout << get_error_text(result) << endl;
}
}
@@ -1126,7 +1133,7 @@ void CommandInterpreter::executeEventReporting(int processId,
ndbout_c("processId %d", processId);
int result = _mgmtSrvr.setEventReportingLevel(processId, logLevel);
if (result != 0) {
- ndbout << _mgmtSrvr.getErrorText(result) << endl;
+ ndbout << get_error_text(result) << endl;
}
#endif
}
@@ -1136,7 +1143,7 @@ CommandInterpreter::executeStartBackup(char* parameters) {
Uint32 backupId;
int result = _mgmtSrvr.startBackup(backupId);
if (result != 0) {
- ndbout << _mgmtSrvr.getErrorText(result) << endl;
+ ndbout << get_error_text(result) << endl;
} else {
// ndbout << "Start of backup ordered" << endl;
}
@@ -1153,7 +1160,7 @@ CommandInterpreter::executeAbortBackup(char* parameters) {
}
int result = _mgmtSrvr.abortBackup(bid);
if (result != 0) {
- ndbout << _mgmtSrvr.getErrorText(result) << endl;
+ ndbout << get_error_text(result) << endl;
} else {
ndbout << "Abort of backup " << bid << " ordered" << endl;
}
@@ -1174,7 +1181,7 @@ CommandInterpreter::executeEnterSingleUser(char* parameters) {
}
int result = _mgmtSrvr.enterSingleUser(0, nodeId,0,0);
if (result != 0) {
- ndbout << _mgmtSrvr.getErrorText(result) << endl;
+ ndbout << get_error_text(result) << endl;
} else {
ndbout << "Entering single user mode, granting access for node "
<< nodeId << " OK." << endl;
diff --git a/ndb/src/mgmsrv/CommandInterpreter.hpp b/ndb/src/mgmsrv/CommandInterpreter.hpp
index db23f76a5bd..1a5184361d6 100644
--- a/ndb/src/mgmsrv/CommandInterpreter.hpp
+++ b/ndb/src/mgmsrv/CommandInterpreter.hpp
@@ -55,6 +55,9 @@ public:
int readAndExecute();
private:
+ char m_err_str[1024];
+ const char *get_error_text(int err_no);
+
/**
* Read a string, and return a pointer to it.
*
diff --git a/ndb/src/mgmsrv/MgmtSrvr.cpp b/ndb/src/mgmsrv/MgmtSrvr.cpp
index 986da71a8e8..061aa2e0cb8 100644
--- a/ndb/src/mgmsrv/MgmtSrvr.cpp
+++ b/ndb/src/mgmsrv/MgmtSrvr.cpp
@@ -49,6 +49,8 @@
#include <NdbAutoPtr.hpp>
+#include <ndberror.h>
+
#include <mgmapi.h>
#include <mgmapi_configuration.hpp>
#include <mgmapi_config_parameters.h>
@@ -264,16 +266,6 @@ MgmtSrvr::isEventLogFilterEnabled(int severity)
static ErrorItem errorTable[] =
{
- {200, "Backup undefined error"},
- {202, "Backup failed to allocate buffers (check configuration)"},
- {203, "Backup failed to setup fs buffers (check configuration)"},
- {204, "Backup failed to allocate tables (check configuration)"},
- {205, "Backup failed to insert file header (check configuration)"},
- {206, "Backup failed to insert table list (check configuration)"},
- {207, "Backup failed to allocate table memory (check configuration)"},
- {208, "Backup failed to allocate file record (check configuration)"},
- {209, "Backup failed to allocate attribute record (check configuration)"},
-
{MgmtSrvr::NO_CONTACT_WITH_PROCESS, "No contact with the process (dead ?)."},
{MgmtSrvr::PROCESS_NOT_CONFIGURED, "The process is not configured."},
{MgmtSrvr::WRONG_PROCESS_TYPE,
@@ -1856,18 +1848,21 @@ MgmtSrvr::dumpState(int processId, const Uint32 args[], Uint32 no)
//****************************************************************************
//****************************************************************************
-const char* MgmtSrvr::getErrorText(int errorCode)
+const char* MgmtSrvr::getErrorText(int errorCode, char *buf, int buf_sz)
{
- static char text[255];
for (int i = 0; i < noOfErrorCodes; ++i) {
if (errorCode == errorTable[i]._errorCode) {
- return errorTable[i]._errorText;
+ BaseString::snprintf(buf, buf_sz, errorTable[i]._errorText);
+ buf[buf_sz-1]= 0;
+ return buf;
}
}
-
- BaseString::snprintf(text, 255, "Unknown management server error code %d", errorCode);
- return text;
+
+ ndb_error_string(errorCode, buf, buf_sz);
+ buf[buf_sz-1]= 0;
+
+ return buf;
}
void
diff --git a/ndb/src/mgmsrv/MgmtSrvr.hpp b/ndb/src/mgmsrv/MgmtSrvr.hpp
index 2ab11250d81..1afb0848ecc 100644
--- a/ndb/src/mgmsrv/MgmtSrvr.hpp
+++ b/ndb/src/mgmsrv/MgmtSrvr.hpp
@@ -466,7 +466,7 @@ public:
* @param errorCode: Error code to get a match error text for.
* @return The error text.
*/
- const char* getErrorText(int errorCode);
+ const char* getErrorText(int errorCode, char *buf, int buf_sz);
/**
* Get configuration
diff --git a/ndb/src/mgmsrv/Services.cpp b/ndb/src/mgmsrv/Services.cpp
index 0394c4e80bb..0208805b2d3 100644
--- a/ndb/src/mgmsrv/Services.cpp
+++ b/ndb/src/mgmsrv/Services.cpp
@@ -579,7 +579,7 @@ MgmApiSession::insertError(Parser<MgmApiSession>::Context &,
m_output->println("insert error reply");
if(result != 0)
- m_output->println("result: %s", m_mgmsrv.getErrorText(result));
+ m_output->println("result: %s", get_error_text(result));
else
m_output->println("result: Ok");
m_output->println("");
@@ -597,7 +597,7 @@ MgmApiSession::setTrace(Parser<MgmApiSession>::Context &,
m_output->println("set trace reply");
if(result != 0)
- m_output->println("result: %s", m_mgmsrv.getErrorText(result));
+ m_output->println("result: %s", get_error_text(result));
else
m_output->println("result: Ok");
m_output->println("");
@@ -665,7 +665,7 @@ MgmApiSession::startBackup(Parser<MgmApiSession>::Context &,
m_output->println("start backup reply");
if(result != 0)
- m_output->println("result: %s(%d)", m_mgmsrv.getErrorText(result), result);
+ m_output->println("result: %s(%d)", get_error_text(result), result);
else{
m_output->println("result: Ok");
m_output->println("id: %d", backupId);
@@ -685,7 +685,7 @@ MgmApiSession::startBackup(Parser<MgmApiSession>::Context &,
m_output->println("start backup reply");
if(result != 0)
- m_output->println("result: %s", m_mgmsrv.getErrorText(result));
+ m_output->println("result: %s", get_error_text(result));
else{
m_output->println("result: Ok");
m_output->println("id: %d", backupId);
@@ -705,7 +705,7 @@ MgmApiSession::abortBackup(Parser<MgmApiSession>::Context &,
m_output->println("abort backup reply");
if(result != 0)
- m_output->println("result: %s", m_mgmsrv.getErrorText(result));
+ m_output->println("result: %s", get_error_text(result));
else
m_output->println("result: Ok");
m_output->println("");
@@ -727,7 +727,7 @@ MgmApiSession::repCommand(Parser<MgmApiSession>::Context &,
m_output->println("global replication reply");
if(result != 0)
- m_output->println("result: %s", m_mgmsrv.getErrorText(result));
+ m_output->println("result: %s", get_error_text(result));
else{
m_output->println("result: Ok");
m_output->println("id: %d", repReqId);
@@ -749,7 +749,7 @@ MgmApiSession::dumpState(Parser<MgmApiSession>::Context &,
int result = m_mgmsrv.dumpState(node, args_str.c_str());
m_output->println("dump state reply");
if(result != 0)
- m_output->println("result: %s", m_mgmsrv.getErrorText(result));
+ m_output->println("result: %s", get_error_text(result));
else
m_output->println("result: Ok");
m_output->println("");
@@ -834,7 +834,7 @@ MgmApiSession::stopSignalLog(Parser<MgmApiSession>::Context &,
m_output->println("stop signallog");
if(result != 0)
- m_output->println("result: %s", m_mgmsrv.getErrorText(result));
+ m_output->println("result: %s", get_error_text(result));
else
m_output->println("result: Ok");
m_output->println("");
@@ -874,7 +874,7 @@ MgmApiSession::restart(Parser<MgmApiSession>::Context &,
m_output->println("restart reply");
if(result != 0){
- m_output->println("result: %d-%s", result, m_mgmsrv.getErrorText(result));
+ m_output->println("result: %d-%s", result, get_error_text(result));
} else
m_output->println("result: Ok");
m_output->println("restarted: %d", restarted);
@@ -898,7 +898,7 @@ MgmApiSession::restartAll(Parser<MgmApiSession>::Context &,
m_output->println("restart reply");
if(result != 0)
- m_output->println("result: %s", m_mgmsrv.getErrorText(result));
+ m_output->println("result: %s", get_error_text(result));
else
m_output->println("result: Ok");
m_output->println("restarted: %d", count);
@@ -1029,7 +1029,7 @@ MgmApiSession::stop(Parser<MgmApiSession>::Context &,
m_output->println("stop reply");
if(result != 0)
- m_output->println("result: %s", m_mgmsrv.getErrorText(result));
+ m_output->println("result: %s", get_error_text(result));
else
m_output->println("result: Ok");
m_output->println("stopped: %d", stopped);
@@ -1051,7 +1051,7 @@ MgmApiSession::stopAll(Parser<MgmApiSession>::Context &,
m_output->println("stop reply");
if(result != 0)
- m_output->println("result: %s", m_mgmsrv.getErrorText(result));
+ m_output->println("result: %s", get_error_text(result));
else
m_output->println("result: Ok");
m_output->println("stopped: %d", stopped);
@@ -1067,7 +1067,7 @@ MgmApiSession::enterSingleUser(Parser<MgmApiSession>::Context &,
int result = m_mgmsrv.enterSingleUser(&stopped, nodeId);
m_output->println("enter single user reply");
if(result != 0) {
- m_output->println("result: %s", m_mgmsrv.getErrorText(result));
+ m_output->println("result: %s", get_error_text(result));
}
else {
m_output->println("result: Ok");
@@ -1082,7 +1082,7 @@ MgmApiSession::exitSingleUser(Parser<MgmApiSession>::Context &,
int result = m_mgmsrv.exitSingleUser(&stopped, false);
m_output->println("exit single user reply");
if(result != 0)
- m_output->println("result: %s", m_mgmsrv.getErrorText(result));
+ m_output->println("result: %s", get_error_text(result));
else
m_output->println("result: Ok");
m_output->println("");
@@ -1100,7 +1100,7 @@ MgmApiSession::startSignalLog(Parser<MgmApiSession>::Context &,
m_output->println("start signallog reply");
if(result != 0)
- m_output->println("result: %s", m_mgmsrv.getErrorText(result));
+ m_output->println("result: %s", get_error_text(result));
else
m_output->println("result: Ok");
m_output->println("");
@@ -1145,7 +1145,7 @@ MgmApiSession::logSignals(Parser<MgmApiSession>::Context &,
m_output->println("log signals reply");
if(result != 0)
- m_output->println("result: %s", m_mgmsrv.getErrorText(result));
+ m_output->println("result: %s", get_error_text(result));
else
m_output->println("result: Ok");
m_output->println("");
@@ -1162,7 +1162,7 @@ MgmApiSession::start(Parser<MgmApiSession>::Context &,
m_output->println("start reply");
if(result != 0)
- m_output->println("result: %s", m_mgmsrv.getErrorText(result));
+ m_output->println("result: %s", get_error_text(result));
else
m_output->println("result: Ok");
m_output->println("");
diff --git a/ndb/src/mgmsrv/Services.hpp b/ndb/src/mgmsrv/Services.hpp
index bfc915f18f1..7d614d6241c 100644
--- a/ndb/src/mgmsrv/Services.hpp
+++ b/ndb/src/mgmsrv/Services.hpp
@@ -39,10 +39,13 @@ private:
OutputStream *m_output;
Parser_t *m_parser;
MgmtSrvr::Allocated_resources *m_allocated_resources;
+ char m_err_str[1024];
void getConfig_common(Parser_t::Context &ctx,
const class Properties &args,
bool compat = false);
+ const char *get_error_text(int err_no)
+ { return m_mgmsrv.getErrorText(err_no, m_err_str, sizeof(m_err_str)); }
public:
MgmApiSession(class MgmtSrvr & mgm, NDB_SOCKET_TYPE sock);