NdbConfig.cpp
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:2k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /* Copyright (C) 2003 MySQL AB
  2.    This program is free software; you can redistribute it and/or modify
  3.    it under the terms of the GNU General Public License as published by
  4.    the Free Software Foundation; either version 2 of the License, or
  5.    (at your option) any later version.
  6.    This program is distributed in the hope that it will be useful,
  7.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  8.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  9.    GNU General Public License for more details.
  10.    You should have received a copy of the GNU General Public License
  11.    along with this program; if not, write to the Free Software
  12.    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
  13. #include "NdbConfig.hpp"
  14. #include <NdbOut.hpp>
  15. #include <NDBT_Output.hpp>
  16. #include <assert.h>
  17. #include <NdbConfig.h>
  18. #include <ConfigRetriever.hpp>
  19. #include <ndb_version.h>
  20. #include <mgmapi.h>
  21. #include <mgmapi_config_parameters.h>
  22. #include <mgmapi_configuration.hpp>
  23. bool
  24. NdbConfig::getHostName(unsigned int node_id, const char ** hostname) {
  25.   
  26.   ndb_mgm_configuration * p = getConfig();
  27.   if(p == 0){
  28.     return false;
  29.   }
  30.   
  31.   /**
  32.    * Setup cluster configuration data
  33.    */
  34.   ndb_mgm_configuration_iterator iter(* p, CFG_SECTION_NODE);
  35.   if (iter.find(CFG_NODE_ID, node_id)){
  36.     ndbout << "Invalid configuration fetched, DB missing" << endl;
  37.     return false;
  38.   }
  39.   if (iter.get(CFG_NODE_HOST, hostname)){
  40.     ndbout << "Host not found" << endl;
  41.     return false;
  42.   }
  43.   
  44.   return true;
  45. }
  46. bool
  47. NdbConfig::getProperty(unsigned nodeid, 
  48.        unsigned type, unsigned key, Uint32 * val){
  49.   ndb_mgm_configuration * p = getConfig();
  50.   if(p == 0){
  51.     return false;
  52.   }
  53.   
  54.   /**
  55.    * Setup cluster configuration data
  56.    */
  57.   ndb_mgm_configuration_iterator iter(* p, CFG_SECTION_NODE);
  58.   if (iter.find(CFG_NODE_ID, nodeid)){
  59.     ndbout << "Invalid configuration fetched, DB missing" << endl;
  60.     return false;
  61.   }
  62.   unsigned _type;
  63.   if (iter.get(CFG_TYPE_OF_SECTION, &_type) || type != _type){
  64.     ndbout << "No such node in configuration" << endl;
  65.     return false;
  66.   }
  67.   if (iter.get(key, val)){
  68.     ndbout << "No such key: " << key << " in configuration" << endl;
  69.     return false;
  70.   }
  71.   
  72.   return true;
  73. }