From d152a24f62fa5a087f62dce31392f4120b68fc0e Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Wed, 12 Mar 2008 19:40:59 -0700 Subject: [PATCH] renamed crushtool --- src/Makefile.am | 6 +- src/{crush/crushmap.pl => crushtool} | 5 +- src/crushtool.cc | 142 --------------------------- 3 files changed, 7 insertions(+), 146 deletions(-) rename src/{crush/crushmap.pl => crushtool} (95%) delete mode 100644 src/crushtool.cc diff --git a/src/Makefile.am b/src/Makefile.am index d36712063fb03..dfb5b6af50a93 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -15,8 +15,8 @@ mkmonfs_SOURCES = mkmonfs.cc mkmonfs_LDADD = libmon.a libcommon.a libcrush.a monmaptool_SOURCES = monmaptool.cc monmaptool_LDADD = libcommon.a -crushtool_SOURCES = crushtool.cc -crushtool_LDADD = libcommon.a libcrush.a +#crushtool_SOURCES = crushtool.cc +#crushtool_LDADD = libcommon.a libcrush.a osdmaptool_SOURCES = osdmaptool.cc osdmaptool_LDADD = libmon.a libcommon.a libcrush.a @@ -98,7 +98,7 @@ noinst_LIBRARIES = \ libmon.a libmds.a libosdc.a libosd.a libebofs.a libclient.a # extra bits -EXTRA_DIST = start.sh stop.sh +EXTRA_DIST = start.sh stop.sh crushtool # libs libcommon_a_SOURCES = \ diff --git a/src/crush/crushmap.pl b/src/crushtool similarity index 95% rename from src/crush/crushmap.pl rename to src/crushtool index d5fdd7b4ea304..e5424d9fecbd5 100755 --- a/src/crush/crushmap.pl +++ b/src/crushtool @@ -1,5 +1,6 @@ #!/usr/bin/perl +use lib 'crush'; use CrushWrapper; use Config::General; use Tie::IxHash; @@ -18,7 +19,9 @@ my $alg_types = { $wrap->create(); -%conf = Config::General::ParseConfig( -ConfigFile => "sample.txt", -Tie => "Tie::IxHash", -MergeDuplicateBlocks => 1 ); +%conf = Config::General::ParseConfig( -ConfigFile => "crush/sample.txt", + -Tie => "Tie::IxHash", + -MergeDuplicateBlocks => 1 ); my $arr = \%conf; print Dumper $arr; diff --git a/src/crushtool.cc b/src/crushtool.cc deleted file mode 100644 index b22a881ce9473..0000000000000 --- a/src/crushtool.cc +++ /dev/null @@ -1,142 +0,0 @@ -// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- -// vim: ts=8 sw=2 smarttab -/* - * Ceph - scalable distributed file system - * - * Copyright (C) 2004-2006 Sage Weil - * - * This is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License version 2.1, as published by the Free Software - * Foundation. See file COPYING. - * - */ - -#include -#include -#include -#include - -#include -#include -#include -using namespace std; - -#include "config.h" - -#include "mon/MonMap.h" - -/* - -./monmaptool -f .ceph_monmap -./monmaptool -f .ceph_monmap --create --clobber --add 1.2.3.4:12345 -./monmaptool -f .ceph_monmap --add 1.2.3.4:12345 -./monmaptool -f .ceph_monmap --rm 1.2.3.4:12345 - - - */ - -void usage(const char *me) -{ - cout << me << " usage: [--print] [--create [--clobber]] [--add 1.2.3.4:567] [--rm 1.2.3.4:567]" << std::endl; - exit(1); -} - -void printmap(const char *me, MonMap *m) -{ - cout << me << ": monmap: epoch " << m->epoch << std::endl - << me << ": monmap: fsid " << m->fsid << std::endl; - for (unsigned i=0; imon_inst.size(); i++) - cout << me << ": monmap: " //<< "mon" << i << " " - << m->mon_inst[i] << std::endl; -} - -int main(int argc, const char **argv) -{ - vector args; - argv_to_vec(argc, argv, args); - - const char *me = argv[0]; - - const char *fn = ".ceph_monmap"; - bool print = false; - bool create = false; - bool clobber = false; - bool modified = false; - list add, rm; - - for (unsigned i=0; i= args.size()) usage(me); - entity_addr_t addr; - if (!parse_ip_port(args[i], addr)) { - cerr << me << ": invalid ip:port '" << args[i] << "'" << std::endl; - return -1; - } - //inst.name = entity_name_t::MON(monmap.size()); - if (strcmp(args[i-1], "--add") == 0) - add.push_back(addr); - else - rm.push_back(addr); - modified = true; - } else - usage(me); - } - - MonMap monmap; - - cout << me << ": monmap file " << fn << std::endl; - - int r = 0; - if (!(create && clobber)) - r = monmap.read(fn); - - if (!create && r < 0) { - cerr << me << ": couldn't open " << fn << ": " << strerror(errno) << std::endl; - return -1; - } - else if (create && !clobber && r == 0) { - cerr << me << ": " << fn << " exists, --clobber to overwrite" << std::endl; - return -1; - } - - for (list::iterator p = add.begin(); p != add.end(); p++) - monmap.add(*p); - for (list::iterator p = rm.begin(); p != rm.end(); p++) { - cout << me << ": removing " << *p << std::endl; - if (!monmap.remove(*p)) { - cerr << me << ": map does not contain " << *p << std::endl; - usage(me); - } - } - - if (!print && !modified) - usage(me); - - if (print) - printmap(me, &monmap); - - if (modified) { - monmap.epoch++; - - // write it out - cout << me << ": writing epoch " << monmap.epoch - << " to " << fn - << " (" << monmap.size() << " monitors)" - << std::endl; - int r = monmap.write(fn); - assert(r >= 0); - } - - - return 0; -} -- 2.39.5