printConfig.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 <ndb_global.h>
  14. #include <NdbMain.h>
  15. #include <mgmapi.h>
  16. #include <ConfigRetriever.hpp>
  17. #include <Properties.hpp>
  18. #include <NdbOut.hpp>
  19. void usage(const char * prg){
  20.   ndbout << "Usage " << prg 
  21.  << " host <mgm host> <mgm port> <node id> [<ver id>]" << endl;
  22.   
  23.   char buf[255];
  24.   for(unsigned i = 0; i<strlen(prg); i++)
  25.     buf[i] = ' ';
  26.   buf[strlen(prg)] = 0;
  27.   ndbout << "      " << buf << "  file <filename> <node id> [<ver id>]"
  28.  << endl;
  29. }
  30. NDB_COMMAND(printConfig, 
  31.     "printConfig", "printConfig", "Prints configuration", 16384){ 
  32.   if(argc < 4){
  33.     usage(argv[0]);
  34.     return 0;
  35.   }
  36.   if(strcmp("file", argv[1]) != 0 && strcmp("host", argv[1]) != 0){
  37.     usage(argv[0]);
  38.     return 0;
  39.   }
  40.   
  41.   if(strcmp("host", argv[1]) == 0 && argc < 5){
  42.     usage(argv[0]);
  43.     return 0;
  44.   }
  45.   
  46.   ConfigRetriever c; 
  47.   struct ndb_mgm_configuration * p = 0;
  48.   if(strcmp("host", argv[1]) == 0){
  49.     int verId = 0;
  50.     if(argc > 5)
  51.       verId = atoi(argv[5]);
  52.     
  53.     ndbout << "Getting config from: " << argv[2] << ":" << atoi(argv[3]) 
  54.    << " NodeId =" << atoi(argv[4]) 
  55.    << " VersionId = " << verId << endl;
  56.     
  57.     p = c.getConfig(argv[2], 
  58.     atoi(argv[3]), 
  59.     verId);
  60.   } else if (strcmp("file", argv[1]) == 0){
  61.     int verId = 0;
  62.     if(argc > 4)
  63.       verId = atoi(argv[4]);
  64.     
  65.     ndbout << "Getting config from: " << argv[2]
  66.    << " NodeId =" << atoi(argv[3]) 
  67.    << " VersionId = " << verId << endl;
  68.     
  69.     p = c.getConfig(argv[2], atoi(argv[3]), verId);
  70.   }
  71.   
  72.   if(p != 0){
  73.     //
  74.     free(p);
  75.   } else {
  76.     ndbout << "Configuration not found: " << c.getErrorString() << endl;
  77.   }
  78.   return 0;
  79. }