int main(int argc, char** argv){ NDB_INIT(argv[0]); load_defaults("my",load_default_groups,&argc,&argv); const char* _hostName = NULL; #ifndef DBUG_OFF opt_debug= "d:t:O,/tmp/ndb_waiter.trace"; #endif if (handle_options(&argc, &argv, my_long_options, ndb_std_get_one_option)) return NDBT_ProgramExit(NDBT_WRONGARGS); _hostName = argv[0]; if (_hostName == 0) _hostName= opt_connect_str; enum ndb_mgm_node_status wait_status; if (_no_contact) { wait_status= NDB_MGM_NODE_STATUS_NO_CONTACT; } else if (_not_started) { wait_status= NDB_MGM_NODE_STATUS_NOT_STARTED; } else if (_single_user) { wait_status= NDB_MGM_NODE_STATUS_SINGLEUSER; } else { wait_status= NDB_MGM_NODE_STATUS_STARTED; } if (waitClusterStatus(_hostName, wait_status) != 0) return NDBT_ProgramExit(NDBT_FAILED); return NDBT_ProgramExit(NDBT_OK); }
int main(int argc, char** argv){ NDB_INIT(argv[0]); ndb_opt_set_usage_funcs(short_usage_sub, usage); load_defaults("my",load_default_groups,&argc,&argv); #ifndef DBUG_OFF opt_debug= "d:t:O,/tmp/ndb_waiter.trace"; #endif #ifndef _WIN32 // Catching signal to allow testing of EINTR safeness // with "while killall -USR1 ndbwaiter; do true; done" signal(SIGUSR1, catch_signal); #endif if (handle_options(&argc, &argv, my_long_options, ndb_std_get_one_option)) return NDBT_ProgramExit(NDBT_WRONGARGS); const char* connect_string = argv[0]; if (connect_string == 0) connect_string = opt_ndb_connectstring; enum ndb_mgm_node_status wait_status; if (_no_contact) { wait_status= NDB_MGM_NODE_STATUS_NO_CONTACT; } else if (_not_started) { wait_status= NDB_MGM_NODE_STATUS_NOT_STARTED; } else if (_single_user) { wait_status= NDB_MGM_NODE_STATUS_SINGLEUSER; } else { wait_status= NDB_MGM_NODE_STATUS_STARTED; } if (_nowait_nodes) { int res = parse_mask(_nowait_nodes, nowait_nodes_bitmask); if(res == -2 || (res > 0 && nowait_nodes_bitmask.get(0))) { ndbout_c("Invalid nodeid specified in nowait-nodes: %s", _nowait_nodes); exit(-1); } else if (res < 0) { ndbout_c("Unable to parse nowait-nodes argument: %s", _nowait_nodes); exit(-1); } } if (_wait_nodes) { if (_nowait_nodes) { ndbout_c("Can not set both wait-nodes and nowait-nodes."); exit(-1); } int res = parse_mask(_wait_nodes, nowait_nodes_bitmask); if (res == -2 || (res > 0 && nowait_nodes_bitmask.get(0))) { ndbout_c("Invalid nodeid specified in wait-nodes: %s", _wait_nodes); exit(-1); } else if (res < 0) { ndbout_c("Unable to parse wait-nodes argument: %s", _wait_nodes); exit(-1); } // Don't wait for any other nodes than the ones we have set explicitly nowait_nodes_bitmask.bitNOT(); } if (waitClusterStatus(connect_string, wait_status) != 0) return NDBT_ProgramExit(NDBT_FAILED); return NDBT_ProgramExit(NDBT_OK); }