Loading mysql-test/r/ndb_config.result 0 → 100644 +5 −0 Original line number Diff line number Diff line ndbd,1,localhost ndbd,2,localhost ndb_mgmd,3, mysqld,4, mysqld,5, mysqld,6, mysqld,7, 1,localhost,41943040,12582912 2,localhost,41943040,12582912 1 localhost 41943040 12582912 2 localhost 41943040 12582912 1 2 mysql-test/t/ndb_config.test 0 → 100644 +4 −0 Original line number Diff line number Diff line --exec $NDB_TOOLS_DIR/ndb_config --no-defaults --query=type,nodeid,host 2> /dev/null --exec $NDB_TOOLS_DIR/ndb_config --no-defaults --query=nodeid,host,DataMemory,IndexMemory --type=ndbd 2> /dev/null --exec $NDB_TOOLS_DIR/ndb_config --no-defaults -r \\n -f " " --query=nodeid,host,DataMemory,IndexMemory --type=ndbd 2> /dev/null --exec $NDB_TOOLS_DIR/ndb_config --no-defaults --query=nodeid --type=ndbd --host=localhost 2> /dev/null ndb/include/mgmapi/mgmapi.h +7 −0 Original line number Diff line number Diff line Loading @@ -139,6 +139,7 @@ * @{ */ #include <stdio.h> #include <ndb_types.h> #include "ndb_logevent.h" #include "mgmapi_config_parameters.h" Loading Loading @@ -441,6 +442,12 @@ extern "C" { int ndb_mgm_get_latest_error_line(const NdbMgmHandle handle); #endif /** * Set error stream */ void ndb_mgm_set_error_stream(NdbMgmHandle, FILE *); /** @} *********************************************************************/ /** * @name Functions: Create/Destroy Management Server Handles Loading ndb/src/mgmapi/mgmapi.cpp +44 −33 Original line number Diff line number Diff line Loading @@ -101,6 +101,7 @@ struct ndb_mgm_handle { #ifdef MGMAPI_LOG FILE* logfile; #endif FILE *errstream; }; #define SET_ERROR(h, e, s) setError(h, e, __LINE__, s) Loading Loading @@ -154,6 +155,7 @@ ndb_mgm_create_handle() h->read_timeout = 50000; h->write_timeout = 100; h->cfg_i = -1; h->errstream = stdout; strncpy(h->last_error_desc, "No error", NDB_MGM_MAX_ERR_DESC_SIZE); Loading Loading @@ -219,6 +221,13 @@ ndb_mgm_destroy_handle(NdbMgmHandle * handle) DBUG_VOID_RETURN; } extern "C" void ndb_mgm_set_error_stream(NdbMgmHandle handle, FILE * file) { handle->errstream = file; } /***************************************************************************** * Error handling *****************************************************************************/ Loading Loading @@ -329,11 +338,8 @@ ndb_mgm_call(NdbMgmHandle handle, const ParserRow<ParserDummy> *command_reply, /** * Print some info about why the parser returns NULL */ ndbout << "Error in mgm protocol parser. " << "cmd: '" << cmd << "' status=" << (Uint32)ctx.m_status << ", curr=" << ctx.m_currentToken << endl; fprintf(h->errstream, "Error in mgm protocol parser. cmd: >%s< status: %d cyrr: %d\n", cmd, (Uint32)ctx.m_status, ctx.m_currentToken); DBUG_PRINT("info",("ctx.status: %d, ctx.m_currentToken: %s", ctx.m_status, ctx.m_currentToken)); } Loading Loading @@ -409,7 +415,7 @@ ndb_mgm_connect(NdbMgmHandle handle, int no_retries, #endif if (verbose > 0) { char buf[1024]; ndbout_c("Unable to connect with connect string: %s", fprintf(handle->errstream, "Unable to connect with connect string: %s\n", cfg.makeConnectString(buf,sizeof(buf))); verbose= -1; } Loading @@ -419,30 +425,33 @@ ndb_mgm_connect(NdbMgmHandle handle, int no_retries, "Unable to connect with connect string: %s", cfg.makeConnectString(buf,sizeof(buf))); if (verbose == -2) ndbout << ", failed." << endl; fprintf(handle->errstream, ", failed.\n"); DBUG_RETURN(-1); } if (verbose == -1) { ndbout << "Retrying every " << retry_delay_in_seconds << " seconds"; fprintf(handle->errstream, "Retrying every %d seconds", retry_delay_in_seconds); if (no_retries > 0) ndbout << ". Attempts left:"; fprintf(handle->errstream, ". Attempts left:"); else ndbout << ", until connected.";; ndbout << flush; fprintf(handle->errstream, ", until connected."); fflush(handle->errstream); verbose= -2; } if (no_retries > 0) { if (verbose == -2) { ndbout << " " << no_retries; ndbout << flush; fprintf(handle->errstream, " %d", no_retries); fflush(handle->errstream); } no_retries--; } NdbSleep_SecSleep(retry_delay_in_seconds); } if (verbose == -2) ndbout << endl; { fprintf(handle->errstream, "\n"); fflush(handle->errstream); } handle->cfg_i = i; handle->socket = sockfd; Loading Loading @@ -496,6 +505,8 @@ ndb_mgm_match_node_type(const char * type) for(int i = 0; i<no_of_type_values; i++) if(strcmp(type, type_values[i].str) == 0) return type_values[i].value; else if(strcmp(type, type_values[i].alias) == 0) return type_values[i].value; return NDB_MGM_NODE_TYPE_UNKNOWN; } Loading Loading @@ -1705,28 +1716,28 @@ ndb_mgm_get_configuration(NdbMgmHandle handle, unsigned int version) { do { const char * buf; if(!prop->get("result", &buf) || strcmp(buf, "Ok") != 0){ ndbout_c("ERROR Message: %s\n", buf); fprintf(handle->errstream, "ERROR Message: %s\n\n", buf); break; } buf = "<Unspecified>"; if(!prop->get("Content-Type", &buf) || strcmp(buf, "ndbconfig/octet-stream") != 0){ ndbout_c("Unhandled response type: %s", buf); fprintf(handle->errstream, "Unhandled response type: %s\n", buf); break; } buf = "<Unspecified>"; if(!prop->get("Content-Transfer-Encoding", &buf) || strcmp(buf, "base64") != 0){ ndbout_c("Unhandled encoding: %s", buf); fprintf(handle->errstream, "Unhandled encoding: %s\n", buf); break; } buf = "<Content-Length Unspecified>"; Uint32 len = 0; if(!prop->get("Content-Length", &len)){ ndbout_c("Invalid response: %s\n", buf); fprintf(handle->errstream, "Invalid response: %s\n\n", buf); break; } Loading @@ -1751,14 +1762,14 @@ ndb_mgm_get_configuration(NdbMgmHandle handle, unsigned int version) { const int res = base64_decode(buf64, len-1, tmp); delete[] buf64; if(res != 0){ ndbout_c("Failed to decode buffer"); fprintf(handle->errstream, "Failed to decode buffer\n"); break; } ConfigValuesFactory cvf; const int res2 = cvf.unpack(tmp); if(!res2){ ndbout_c("Failed to unpack buffer"); fprintf(handle->errstream, "Failed to unpack buffer\n"); break; } Loading Loading @@ -1868,7 +1879,7 @@ ndb_mgm_alloc_nodeid(NdbMgmHandle handle, unsigned int version, int nodetype) } Uint32 _nodeid; if(!prop->get("nodeid", &_nodeid) != 0){ ndbout_c("ERROR Message: <nodeid Unspecified>\n"); fprintf(handle->errstream, "ERROR Message: <nodeid Unspecified>\n"); break; } nodeid= _nodeid; Loading Loading @@ -1944,7 +1955,7 @@ ndb_mgm_set_int_parameter(NdbMgmHandle handle, do { const char * buf; if(!prop->get("result", &buf) || strcmp(buf, "Ok") != 0){ ndbout_c("ERROR Message: %s\n", buf); fprintf(handle->errstream, "ERROR Message: %s\n", buf); break; } res= 0; Loading Loading @@ -1987,7 +1998,7 @@ ndb_mgm_set_int64_parameter(NdbMgmHandle handle, do { const char * buf; if(!prop->get("result", &buf) || strcmp(buf, "Ok") != 0){ ndbout_c("ERROR Message: %s\n", buf); fprintf(handle->errstream, "ERROR Message: %s\n", buf); break; } res= 0; Loading Loading @@ -2030,7 +2041,7 @@ ndb_mgm_set_string_parameter(NdbMgmHandle handle, do { const char * buf; if(!prop->get("result", &buf) || strcmp(buf, "Ok") != 0){ ndbout_c("ERROR Message: %s\n", buf); fprintf(handle->errstream, "ERROR Message: %s\n", buf); break; } res= 0; Loading Loading @@ -2067,7 +2078,7 @@ ndb_mgm_purge_stale_sessions(NdbMgmHandle handle, char **purged){ do { const char * buf; if(!prop->get("result", &buf) || strcmp(buf, "Ok") != 0){ ndbout_c("ERROR Message: %s\n", buf); fprintf(handle->errstream, "ERROR Message: %s\n", buf); break; } if (purged) { Loading Loading @@ -2149,7 +2160,7 @@ ndb_mgm_set_connection_int_parameter(NdbMgmHandle handle, do { const char * buf; if(!prop->get("result", &buf) || strcmp(buf, "Ok") != 0){ ndbout_c("ERROR Message: %s\n", buf); fprintf(handle->errstream, "ERROR Message: %s\n", buf); break; } res= 0; Loading Loading @@ -2191,14 +2202,14 @@ ndb_mgm_get_connection_int_parameter(NdbMgmHandle handle, do { const char * buf; if(!prop->get("result", &buf) || strcmp(buf, "Ok") != 0){ ndbout_c("ERROR Message: %s\n", buf); fprintf(handle->errstream, "ERROR Message: %s\n", buf); break; } res= 0; } while(0); if(!prop->get("value",(Uint32*)value)){ ndbout_c("Unable to get value"); fprintf(handle->errstream, "Unable to get value\n"); res = -4; } Loading Loading @@ -2250,7 +2261,7 @@ ndb_mgm_get_mgmd_nodeid(NdbMgmHandle handle) CHECK_REPLY(prop, 0); if(!prop->get("nodeid",&nodeid)){ ndbout_c("Unable to get value"); fprintf(handle->errstream, "Unable to get value\n"); return 0; } Loading ndb/src/mgmsrv/ConfigInfo.hpp +3 −3 Original line number Diff line number Diff line Loading @@ -127,14 +127,14 @@ private: Properties m_info; Properties m_systemDefaults; static const ParamInfo m_ParamInfo[]; static const int m_NoOfParams; static const AliasPair m_sectionNameAliases[]; static const char* m_sectionNames[]; static const int m_noOfSectionNames; public: static const ParamInfo m_ParamInfo[]; static const int m_NoOfParams; static const SectionRule m_SectionRules[]; static const ConfigRule m_ConfigRules[]; static const int m_NoOfRules; Loading Loading
mysql-test/r/ndb_config.result 0 → 100644 +5 −0 Original line number Diff line number Diff line ndbd,1,localhost ndbd,2,localhost ndb_mgmd,3, mysqld,4, mysqld,5, mysqld,6, mysqld,7, 1,localhost,41943040,12582912 2,localhost,41943040,12582912 1 localhost 41943040 12582912 2 localhost 41943040 12582912 1 2
mysql-test/t/ndb_config.test 0 → 100644 +4 −0 Original line number Diff line number Diff line --exec $NDB_TOOLS_DIR/ndb_config --no-defaults --query=type,nodeid,host 2> /dev/null --exec $NDB_TOOLS_DIR/ndb_config --no-defaults --query=nodeid,host,DataMemory,IndexMemory --type=ndbd 2> /dev/null --exec $NDB_TOOLS_DIR/ndb_config --no-defaults -r \\n -f " " --query=nodeid,host,DataMemory,IndexMemory --type=ndbd 2> /dev/null --exec $NDB_TOOLS_DIR/ndb_config --no-defaults --query=nodeid --type=ndbd --host=localhost 2> /dev/null
ndb/include/mgmapi/mgmapi.h +7 −0 Original line number Diff line number Diff line Loading @@ -139,6 +139,7 @@ * @{ */ #include <stdio.h> #include <ndb_types.h> #include "ndb_logevent.h" #include "mgmapi_config_parameters.h" Loading Loading @@ -441,6 +442,12 @@ extern "C" { int ndb_mgm_get_latest_error_line(const NdbMgmHandle handle); #endif /** * Set error stream */ void ndb_mgm_set_error_stream(NdbMgmHandle, FILE *); /** @} *********************************************************************/ /** * @name Functions: Create/Destroy Management Server Handles Loading
ndb/src/mgmapi/mgmapi.cpp +44 −33 Original line number Diff line number Diff line Loading @@ -101,6 +101,7 @@ struct ndb_mgm_handle { #ifdef MGMAPI_LOG FILE* logfile; #endif FILE *errstream; }; #define SET_ERROR(h, e, s) setError(h, e, __LINE__, s) Loading Loading @@ -154,6 +155,7 @@ ndb_mgm_create_handle() h->read_timeout = 50000; h->write_timeout = 100; h->cfg_i = -1; h->errstream = stdout; strncpy(h->last_error_desc, "No error", NDB_MGM_MAX_ERR_DESC_SIZE); Loading Loading @@ -219,6 +221,13 @@ ndb_mgm_destroy_handle(NdbMgmHandle * handle) DBUG_VOID_RETURN; } extern "C" void ndb_mgm_set_error_stream(NdbMgmHandle handle, FILE * file) { handle->errstream = file; } /***************************************************************************** * Error handling *****************************************************************************/ Loading Loading @@ -329,11 +338,8 @@ ndb_mgm_call(NdbMgmHandle handle, const ParserRow<ParserDummy> *command_reply, /** * Print some info about why the parser returns NULL */ ndbout << "Error in mgm protocol parser. " << "cmd: '" << cmd << "' status=" << (Uint32)ctx.m_status << ", curr=" << ctx.m_currentToken << endl; fprintf(h->errstream, "Error in mgm protocol parser. cmd: >%s< status: %d cyrr: %d\n", cmd, (Uint32)ctx.m_status, ctx.m_currentToken); DBUG_PRINT("info",("ctx.status: %d, ctx.m_currentToken: %s", ctx.m_status, ctx.m_currentToken)); } Loading Loading @@ -409,7 +415,7 @@ ndb_mgm_connect(NdbMgmHandle handle, int no_retries, #endif if (verbose > 0) { char buf[1024]; ndbout_c("Unable to connect with connect string: %s", fprintf(handle->errstream, "Unable to connect with connect string: %s\n", cfg.makeConnectString(buf,sizeof(buf))); verbose= -1; } Loading @@ -419,30 +425,33 @@ ndb_mgm_connect(NdbMgmHandle handle, int no_retries, "Unable to connect with connect string: %s", cfg.makeConnectString(buf,sizeof(buf))); if (verbose == -2) ndbout << ", failed." << endl; fprintf(handle->errstream, ", failed.\n"); DBUG_RETURN(-1); } if (verbose == -1) { ndbout << "Retrying every " << retry_delay_in_seconds << " seconds"; fprintf(handle->errstream, "Retrying every %d seconds", retry_delay_in_seconds); if (no_retries > 0) ndbout << ". Attempts left:"; fprintf(handle->errstream, ". Attempts left:"); else ndbout << ", until connected.";; ndbout << flush; fprintf(handle->errstream, ", until connected."); fflush(handle->errstream); verbose= -2; } if (no_retries > 0) { if (verbose == -2) { ndbout << " " << no_retries; ndbout << flush; fprintf(handle->errstream, " %d", no_retries); fflush(handle->errstream); } no_retries--; } NdbSleep_SecSleep(retry_delay_in_seconds); } if (verbose == -2) ndbout << endl; { fprintf(handle->errstream, "\n"); fflush(handle->errstream); } handle->cfg_i = i; handle->socket = sockfd; Loading Loading @@ -496,6 +505,8 @@ ndb_mgm_match_node_type(const char * type) for(int i = 0; i<no_of_type_values; i++) if(strcmp(type, type_values[i].str) == 0) return type_values[i].value; else if(strcmp(type, type_values[i].alias) == 0) return type_values[i].value; return NDB_MGM_NODE_TYPE_UNKNOWN; } Loading Loading @@ -1705,28 +1716,28 @@ ndb_mgm_get_configuration(NdbMgmHandle handle, unsigned int version) { do { const char * buf; if(!prop->get("result", &buf) || strcmp(buf, "Ok") != 0){ ndbout_c("ERROR Message: %s\n", buf); fprintf(handle->errstream, "ERROR Message: %s\n\n", buf); break; } buf = "<Unspecified>"; if(!prop->get("Content-Type", &buf) || strcmp(buf, "ndbconfig/octet-stream") != 0){ ndbout_c("Unhandled response type: %s", buf); fprintf(handle->errstream, "Unhandled response type: %s\n", buf); break; } buf = "<Unspecified>"; if(!prop->get("Content-Transfer-Encoding", &buf) || strcmp(buf, "base64") != 0){ ndbout_c("Unhandled encoding: %s", buf); fprintf(handle->errstream, "Unhandled encoding: %s\n", buf); break; } buf = "<Content-Length Unspecified>"; Uint32 len = 0; if(!prop->get("Content-Length", &len)){ ndbout_c("Invalid response: %s\n", buf); fprintf(handle->errstream, "Invalid response: %s\n\n", buf); break; } Loading @@ -1751,14 +1762,14 @@ ndb_mgm_get_configuration(NdbMgmHandle handle, unsigned int version) { const int res = base64_decode(buf64, len-1, tmp); delete[] buf64; if(res != 0){ ndbout_c("Failed to decode buffer"); fprintf(handle->errstream, "Failed to decode buffer\n"); break; } ConfigValuesFactory cvf; const int res2 = cvf.unpack(tmp); if(!res2){ ndbout_c("Failed to unpack buffer"); fprintf(handle->errstream, "Failed to unpack buffer\n"); break; } Loading Loading @@ -1868,7 +1879,7 @@ ndb_mgm_alloc_nodeid(NdbMgmHandle handle, unsigned int version, int nodetype) } Uint32 _nodeid; if(!prop->get("nodeid", &_nodeid) != 0){ ndbout_c("ERROR Message: <nodeid Unspecified>\n"); fprintf(handle->errstream, "ERROR Message: <nodeid Unspecified>\n"); break; } nodeid= _nodeid; Loading Loading @@ -1944,7 +1955,7 @@ ndb_mgm_set_int_parameter(NdbMgmHandle handle, do { const char * buf; if(!prop->get("result", &buf) || strcmp(buf, "Ok") != 0){ ndbout_c("ERROR Message: %s\n", buf); fprintf(handle->errstream, "ERROR Message: %s\n", buf); break; } res= 0; Loading Loading @@ -1987,7 +1998,7 @@ ndb_mgm_set_int64_parameter(NdbMgmHandle handle, do { const char * buf; if(!prop->get("result", &buf) || strcmp(buf, "Ok") != 0){ ndbout_c("ERROR Message: %s\n", buf); fprintf(handle->errstream, "ERROR Message: %s\n", buf); break; } res= 0; Loading Loading @@ -2030,7 +2041,7 @@ ndb_mgm_set_string_parameter(NdbMgmHandle handle, do { const char * buf; if(!prop->get("result", &buf) || strcmp(buf, "Ok") != 0){ ndbout_c("ERROR Message: %s\n", buf); fprintf(handle->errstream, "ERROR Message: %s\n", buf); break; } res= 0; Loading Loading @@ -2067,7 +2078,7 @@ ndb_mgm_purge_stale_sessions(NdbMgmHandle handle, char **purged){ do { const char * buf; if(!prop->get("result", &buf) || strcmp(buf, "Ok") != 0){ ndbout_c("ERROR Message: %s\n", buf); fprintf(handle->errstream, "ERROR Message: %s\n", buf); break; } if (purged) { Loading Loading @@ -2149,7 +2160,7 @@ ndb_mgm_set_connection_int_parameter(NdbMgmHandle handle, do { const char * buf; if(!prop->get("result", &buf) || strcmp(buf, "Ok") != 0){ ndbout_c("ERROR Message: %s\n", buf); fprintf(handle->errstream, "ERROR Message: %s\n", buf); break; } res= 0; Loading Loading @@ -2191,14 +2202,14 @@ ndb_mgm_get_connection_int_parameter(NdbMgmHandle handle, do { const char * buf; if(!prop->get("result", &buf) || strcmp(buf, "Ok") != 0){ ndbout_c("ERROR Message: %s\n", buf); fprintf(handle->errstream, "ERROR Message: %s\n", buf); break; } res= 0; } while(0); if(!prop->get("value",(Uint32*)value)){ ndbout_c("Unable to get value"); fprintf(handle->errstream, "Unable to get value\n"); res = -4; } Loading Loading @@ -2250,7 +2261,7 @@ ndb_mgm_get_mgmd_nodeid(NdbMgmHandle handle) CHECK_REPLY(prop, 0); if(!prop->get("nodeid",&nodeid)){ ndbout_c("Unable to get value"); fprintf(handle->errstream, "Unable to get value\n"); return 0; } Loading
ndb/src/mgmsrv/ConfigInfo.hpp +3 −3 Original line number Diff line number Diff line Loading @@ -127,14 +127,14 @@ private: Properties m_info; Properties m_systemDefaults; static const ParamInfo m_ParamInfo[]; static const int m_NoOfParams; static const AliasPair m_sectionNameAliases[]; static const char* m_sectionNames[]; static const int m_noOfSectionNames; public: static const ParamInfo m_ParamInfo[]; static const int m_NoOfParams; static const SectionRule m_SectionRules[]; static const ConfigRule m_ConfigRules[]; static const int m_NoOfRules; Loading