Commit 1bf19b82 authored by unknown's avatar unknown
Browse files

moved LocalConfig out of config retriver

parent 8a9cb1af
Loading
Loading
Loading
Loading
+2 −15
Original line number Diff line number Diff line
@@ -28,7 +28,7 @@
 */
class ConfigRetriever {
public:
  ConfigRetriever(Uint32 version, Uint32 nodeType);
  ConfigRetriever(LocalConfig &local_config, Uint32 version, Uint32 nodeType);
  ~ConfigRetriever();

  /**
@@ -54,16 +54,6 @@ public:
  
  const char * getErrorString();

  /**
   * Sets connectstring which can be used instead of local config file
   */
  void setConnectString(const char * connectString);

  /**
   * Sets name of local config file (usually not needed)
   */
  void setLocalConfigFileName(const char * connectString);

  /**
   * @return Node id of this node (as stated in local config or connectString)
   */
@@ -93,12 +83,9 @@ private:
  
  void setError(ErrorType, const char * errorMsg);
  
  BaseString            _localConfigFileName;
  struct LocalConfig    _localConfig;
  struct LocalConfig&   _localConfig;
  Uint32                _ownNodeId;
  
  BaseString            m_connectString;
  
  Uint32 m_version;
  Uint32 m_node_type;
  NdbMgmHandle m_handle;
+2 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@
#define CLUSTER_CONNECTION_HPP

class TransporterFacade;
class LocalConfig;
class ConfigRetriever;
class NdbThread;

@@ -37,6 +38,7 @@ private:
  void connect_thread();
  char *m_connect_string;
  TransporterFacade *m_facade;
  LocalConfig *m_local_config;
  ConfigRetriever *m_config_retriever;
  NdbThread *m_connect_thread;
  int (*m_connect_callback)(void);
+4 −21
Original line number Diff line number Diff line
@@ -45,8 +45,10 @@
//****************************************************************************
//****************************************************************************

ConfigRetriever::ConfigRetriever(Uint32 version, Uint32 node_type) {
  
ConfigRetriever::ConfigRetriever(LocalConfig &local_config,
				 Uint32 version, Uint32 node_type)
  : _localConfig(local_config)
{
  m_handle= 0;
  m_version = version;
  m_node_type = node_type;
@@ -66,15 +68,6 @@ ConfigRetriever::~ConfigRetriever(){
 
int 
ConfigRetriever::init() {
  if (!_localConfig.init(m_connectString.c_str(), 
			 _localConfigFileName.c_str())){
    
    setError(CR_ERROR, "error in retrieving contact info for mgmtsrvr");
    _localConfig.printError();
    _localConfig.printUsage();
    return -1;
  }
  
  return _ownNodeId = _localConfig._ownNodeId;
}

@@ -230,16 +223,6 @@ ConfigRetriever::getErrorString(){
  return errorString.c_str();
}

void 
ConfigRetriever::setLocalConfigFileName(const char * localConfigFileName) {
  _localConfigFileName.assign(localConfigFileName ? localConfigFileName : "");
}

void 
ConfigRetriever::setConnectString(const char * connectString) {
  m_connectString.assign(connectString ? connectString : "");
}

bool
ConfigRetriever::verifyConfig(const struct ndb_mgm_configuration * conf, Uint32 nodeid){

+11 −3
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@

#include <ndb_version.h>
#include "Configuration.hpp"
#include <LocalConfig.hpp>
#include <TransporterRegistry.hpp>

#include "vm/SimBlockList.hpp"
@@ -67,12 +68,19 @@ NDB_MAIN(ndb_kernel){
  // Parse command line options
  Configuration* theConfig = globalEmulatorData.theConfiguration;
  if(!theConfig->init(argc, argv)){
    return 0;
    return NRT_Default;
  }
  
  LocalConfig local_config;
  if (!local_config.init(theConfig->getConnectString(),0)){
    local_config.printError();
    local_config.printUsage();
    return NRT_Default;
  }

  { // Do configuration
    signal(SIGPIPE, SIG_IGN);
    theConfig->fetch_configuration();
    theConfig->fetch_configuration(local_config);
  }
  
  chdir(NdbConfig_get_path(0));
@@ -135,7 +143,7 @@ NDB_MAIN(ndb_kernel){
      exit(0);
    }
    g_eventLogger.info("Ndb has terminated (pid %d) restarting", child);
    theConfig->fetch_configuration();
    theConfig->fetch_configuration(local_config);
  }

  g_eventLogger.info("Angel pid: %d ndb pid: %d", getppid(), getpid());
+8 −3
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

#include <ndb_global.h>

#include <LocalConfig.hpp>
#include "Configuration.hpp"
#include <ErrorHandlingMacros.hpp>
#include "GlobalData.hpp"
@@ -184,7 +185,7 @@ Configuration::closeConfiguration(){
}

void
Configuration::fetch_configuration(){
Configuration::fetch_configuration(LocalConfig &local_config){
  /**
   * Fetch configuration from management server
   */
@@ -192,8 +193,7 @@ Configuration::fetch_configuration(){
    delete m_config_retriever;
  }

  m_config_retriever= new ConfigRetriever(NDB_VERSION, NODE_TYPE_DB);
  m_config_retriever->setConnectString(_connectString ? _connectString : "");
  m_config_retriever= new ConfigRetriever(local_config, NDB_VERSION, NODE_TYPE_DB);
  if(m_config_retriever->init() == -1 ||
     m_config_retriever->do_connect() == -1){
    
@@ -416,6 +416,11 @@ Configuration::setRestartOnErrorInsert(int i){
  m_restartOnErrorInsert = i;
}

const char *
Configuration::getConnectString() const {
  return _connectString;
}

char *
Configuration::getConnectStringCopy() const {
  if(_connectString != 0)
Loading