From 6386c55cee50bad6a9979d1fab28e03bb8612ca7 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 14 Apr 2004 10:53:21 +0200 Subject: Initial revision of NDB Cluster files BitKeeper/etc/logging_ok: Logging to logging@openlogging.org accepted --- ndb/test/include/NdbRestarter.hpp | 95 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 ndb/test/include/NdbRestarter.hpp (limited to 'ndb/test/include/NdbRestarter.hpp') 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 +#include + +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 ndbNodes; + Vector mgmNodes; + Vector apiNodes; + + bool connected; + const char* addr; + const char* host; + int port; + NdbMgmHandle handle; + +}; + +#endif -- cgit v1.2.1