diff options
Diffstat (limited to 'ndb/test/include/NdbRestarter.hpp')
-rw-r--r-- | ndb/test/include/NdbRestarter.hpp | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/ndb/test/include/NdbRestarter.hpp b/ndb/test/include/NdbRestarter.hpp new file mode 100644 index 00000000000..cfd5409bb69 --- /dev/null +++ b/ndb/test/include/NdbRestarter.hpp @@ -0,0 +1,95 @@ +/* Copyright (C) 2003 MySQL AB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + +#ifndef NDBT_RESTARTER_HPP +#define NDBT_RESTARTER_HPP + +#include <mgmapi.h> +#include <Vector.hpp> + +class NdbRestarter { +public: + NdbRestarter(const char* _addr = 0); + ~NdbRestarter(); + + int getDbNodeId(int _i); + + int restartOneDbNode(int _nodeId, + bool initial = false, + bool nostart = false, + bool abort = false); + + int restartAll(bool initial = false, + bool nostart = false, + bool abort = false); + + int startAll(); + int startNodes(int * _nodes, int _num_nodes); + int waitClusterStarted(unsigned int _timeout = 120); + int waitClusterSingleUser(unsigned int _timeout = 120); + int waitClusterStartPhase(int _startphase, unsigned int _timeout = 120); + int waitClusterNoStart(unsigned int _timeout = 120); + int waitNodesStarted(int * _nodes, int _num_nodes, + unsigned int _timeout = 120); + int waitNodesStartPhase(int * _nodes, int _num_nodes, + int _startphase, unsigned int _timeout = 120); + int waitNodesNoStart(int * _nodes, int _num_nodes, + unsigned int _timeout = 120); + + + int getNumDbNodes(); + int insertErrorInNode(int _nodeId, int error); + int insertErrorInAllNodes(int error); + + int enterSingleUserMode(int _nodeId); + int exitSingleUserMode(); + + int dumpStateOneNode(int _nodeId, int * _args, int _num_args); + int dumpStateAllNodes(int * _args, int _num_args); + + int getMasterNodeId(); + int getRandomNodeOtherNodeGroup(int nodeId, int randomNumber); + int getRandomNotMasterNodeId(int randomNumber); + +protected: + + int waitClusterState(ndb_mgm_node_status _status, + unsigned int _timeout, + int _startphase = -1); + + int waitNodesState(int * _nodes, int _num_nodes, + ndb_mgm_node_status _status, + unsigned int _timeout, + int _startphase = -1); + + bool isConnected(); + int connect(); + void disconnect(); + int getStatus(); + + Vector<ndb_mgm_node_state> ndbNodes; + Vector<ndb_mgm_node_state> mgmNodes; + Vector<ndb_mgm_node_state> apiNodes; + + bool connected; + const char* addr; + const char* host; + int port; + NdbMgmHandle handle; + +}; + +#endif |