]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
drop ceph_mon_store_converter 3359/head
authorSage Weil <sage@redhat.com>
Mon, 12 Jan 2015 17:37:08 +0000 (09:37 -0800)
committerSage Weil <sage@redhat.com>
Mon, 12 Jan 2015 17:37:08 +0000 (09:37 -0800)
This was needed for upgrades in the cuttlefish era; no longer useful.

Signed-off-by: Sage Weil <sage@redhat.com>
ceph.spec.in
debian/ceph.install
src/.gitignore
src/Makefile.am
src/tools/Makefile.am
src/tools/mon_store_converter.cc [deleted file]

index 126433eef0d6bb3ed6eb9e3dd0c23ece99e36de6..93692b177c3541adc9957218dcc7a635cb1fb57d 100644 (file)
@@ -461,7 +461,6 @@ fi
 %{_bindir}/cephfs-journal-tool
 %{_bindir}/ceph-debugpack
 %{_bindir}/ceph-coverage
-%{_bindir}/ceph_mon_store_converter
 %{_initrddir}/ceph
 %{_sbindir}/ceph-disk
 %{_sbindir}/ceph-disk-activate
index 2205e5e20b21b2cb0982ba2eacac42520c8bb87f..8089577c7a105827d7522f1b00526bfcde403c8d 100644 (file)
@@ -12,7 +12,6 @@ usr/bin/ceph-osd
 usr/bin/ceph-run
 usr/bin/ceph-rest-api
 usr/lib/python*/dist-packages/ceph_rest_api.py
-usr/bin/ceph_mon_store_converter
 usr/bin/crushtool
 usr/bin/monmaptool
 usr/bin/osdmaptool
index 6e76998b46e66175bb6110fbd9f70b83c1e2e52d..5bd73313c31887a1ba022018bd51913f92a82cda 100644 (file)
@@ -25,7 +25,6 @@ Makefile
 /ceph.conf
 /ceph_bench_log
 /ceph-objectstore-tool
-/ceph_mon_store_converter
 /ceph_multi_stress_watch
 /ceph_erasure_code
 /ceph_erasure_code_benchmark
index 303e9bd50c2e057bb064ab6c3748fd05b303ec4e..9e52d71e213196b11d4537bc8fb11031a9719213 100644 (file)
@@ -661,7 +661,7 @@ admin-tools: monmaptool osdmaptool crushtool ceph-authtool
 base: core-daemons admin-tools \
        cephfs ceph-syn ceph-conf \
        rados radosgw-admin librados-config \
-       init-ceph ceph_mon_store_converter ceph-post-file \
+       init-ceph ceph-post-file \
        ceph
 
 
index d92ed558536334f3f589cebb7b6dfb684943946b..b914aba710dd3e97b276645db2d744a3b21965a5 100644 (file)
@@ -94,10 +94,6 @@ ceph_authtool_SOURCES = tools/ceph_authtool.cc
 ceph_authtool_LDADD = $(CEPH_GLOBAL) $(LIBCOMMON)
 bin_PROGRAMS += ceph-authtool
 
-ceph_mon_store_converter_SOURCES = tools/mon_store_converter.cc
-ceph_mon_store_converter_LDADD = $(LIBMON) $(LIBOS) $(CEPH_GLOBAL)
-bin_PROGRAMS += ceph_mon_store_converter
-
 noinst_HEADERS += \
        tools/cephfs/JournalTool.h \
        tools/cephfs/JournalScanner.h \
diff --git a/src/tools/mon_store_converter.cc b/src/tools/mon_store_converter.cc
deleted file mode 100644 (file)
index 59b3265..0000000
+++ /dev/null
@@ -1,335 +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) 2012 Inktank, Inc.
-*
-* 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 <boost/scoped_ptr.hpp>
-
-#include <set>
-#include <string>
-
-#include "common/ceph_argparse.h"
-#include "common/debug.h"
-
-#include "include/types.h"
-#include "include/buffer.h"
-
-#include "global/global_init.h"
-
-#include "mon/MonitorDBStore.h"
-#include "mon/MonitorStore.h"
-
-using namespace std;
-
-class MonitorStoreConverter {
-
-  boost::scoped_ptr<MonitorDBStore> db;
-  boost::scoped_ptr<MonitorStore> store;
-
-  set<version_t> gvs;
-  version_t highest_last_pn;
-  version_t highest_accepted_pn;
-
-  static const int PAXOS_MAX_VERSIONS = 50;
-  string MONITOR_NAME;
-
- public:
-  MonitorStoreConverter(string &store_path, string &db_store_path)
-    : db(0), store(0),
-      highest_last_pn(0), highest_accepted_pn(0),
-      MONITOR_NAME("monitor")
-  {
-    MonitorStore *store_ptr = new MonitorStore(store_path);
-    assert(!store_ptr->mount());
-    store.reset(store_ptr);
-
-    MonitorDBStore *db_ptr = new MonitorDBStore(db_store_path);
-    db.reset(db_ptr);
-  }
-
-  int convert() {
-    if (db->open(std::cerr) >= 0) {
-      std::cerr << "store already exists" << std::endl;
-      return EEXIST;
-    }
-    assert(!db->create_and_open(std::cerr));
-    if (db->exists("mon_convert", "on_going")) {
-      std::cout << __func__ << " found a mon store in mid-convertion; abort!"
-               << std::endl;
-      return EEXIST;
-    }
-    _mark_convert_start();
-    _convert_monitor();
-    _convert_machines();
-    _mark_convert_finish();
-
-    std::cout << __func__ << " finished conversion" << std::endl;
-
-    return 0;
-  }
-
-  bool match() {
-    return true;
-  }
-
- private:
-
-  set<string> _get_machines_names() {
-    set<string> names;
-    names.insert("auth");
-    names.insert("logm");
-    names.insert("mdsmap");
-    names.insert("monmap");
-    names.insert("osdmap");
-    names.insert("pgmap");
-
-    return names;
-  }
-
-  void _mark_convert_start() {
-    MonitorDBStore::TransactionRef tx(new MonitorDBStore::Transaction);
-    tx->put("mon_convert", "on_going", 1);
-    db->apply_transaction(tx);
-  }
-
-  void _mark_convert_finish() {
-    MonitorDBStore::TransactionRef tx(new MonitorDBStore::Transaction);
-    tx->erase("mon_convert", "on_going");
-    db->apply_transaction(tx);
-  }
-
-  void _convert_monitor() {
-
-    assert(store->exists_bl_ss("magic"));
-    assert(store->exists_bl_ss("keyring"));
-    assert(store->exists_bl_ss("feature_set"));
-    assert(store->exists_bl_ss("election_epoch"));
-
-    MonitorDBStore::TransactionRef tx(new MonitorDBStore::Transaction);
-
-    if (store->exists_bl_ss("joined")) {
-      version_t joined = store->get_int("joined");
-      tx->put(MONITOR_NAME, "joined", joined);
-    }
-
-    vector<string> keys;
-    keys.push_back("magic");
-    keys.push_back("feature_set");
-    keys.push_back("election_epoch");
-    keys.push_back("cluster_uuid");
-
-    vector<string>::iterator it;
-    for (it = keys.begin(); it != keys.end(); ++it) {
-      if (!store->exists_bl_ss((*it).c_str()))
-       continue;
-
-      bufferlist bl;
-      int r = store->get_bl_ss(bl, (*it).c_str(), 0);
-      assert(r > 0);
-      tx->put(MONITOR_NAME, *it, bl);
-    }
-
-    assert(!tx->empty());
-    db->apply_transaction(tx);
-  }
-
-  void _convert_machines(string machine) {
-    std::cout << __func__ << " " << machine << std::endl;
-
-    version_t first_committed =
-      store->get_int(machine.c_str(), "first_committed");
-    version_t last_committed =
-      store->get_int(machine.c_str(), "last_committed");
-
-    version_t accepted_pn = store->get_int(machine.c_str(), "accepted_pn");
-    version_t last_pn = store->get_int(machine.c_str(), "last_pn");
-
-    if (accepted_pn > highest_accepted_pn)
-      highest_accepted_pn = accepted_pn;
-    if (last_pn > highest_last_pn)
-      highest_last_pn = last_pn;
-
-    string machine_gv(machine);
-    machine_gv.append("_gv");
-    bool has_gv = true;
-
-    if (!store->exists_bl_ss(machine_gv.c_str())) {
-      std::cerr << __func__ << " " << machine
-               << " no gv dir '" << machine_gv << "'" << std::endl;
-      has_gv = false;
-    }
-
-    for (version_t ver = first_committed; ver <= last_committed; ver++) {
-      if (!store->exists_bl_sn(machine.c_str(), ver)) {
-       std::cerr << __func__ << " " << machine
-                 << " ver " << ver << " dne" << std::endl;
-       continue;
-      }
-
-      bufferlist bl;
-      int r = store->get_bl_sn(bl, machine.c_str(), ver);
-      assert(r >= 0);
-      std::cout << __func__ << " " << machine
-               << " ver " << ver << " bl " << bl.length() << std::endl;
-
-      MonitorDBStore::TransactionRef tx(new MonitorDBStore::Transaction);
-      tx->put(machine, ver, bl);
-      tx->put(machine, "last_committed", ver);
-
-      if (has_gv && store->exists_bl_sn(machine_gv.c_str(), ver)) {
-       stringstream s;
-       s << ver;
-       string ver_str = s.str();
-
-       version_t gv = store->get_int(machine_gv.c_str(), ver_str.c_str());
-       std::cerr << __func__ << " " << machine
-                 << " ver " << ver << " -> " << gv << std::endl;
-
-       if (gvs.count(gv) == 0) {
-         gvs.insert(gv);
-       } else {
-         std::cerr << __func__ << " " << machine
-                   << " gv " << gv << " already exists"
-                   << std::endl;
-       }
-
-       bufferlist tx_bl;
-       tx->encode(tx_bl);
-       tx->put("paxos", gv, tx_bl);
-      }
-      db->apply_transaction(tx);
-    }
-
-    version_t lc = db->get(machine, "last_committed");
-    assert(lc == last_committed);
-
-    MonitorDBStore::TransactionRef tx(new MonitorDBStore::Transaction);
-    tx->put(machine, "first_committed", first_committed);
-    tx->put(machine, "last_committed", last_committed);
-
-    if (store->exists_bl_ss(machine.c_str(), "latest")) {
-      bufferlist latest_bl_raw;
-      int r = store->get_bl_ss(latest_bl_raw, machine.c_str(), "latest");
-      assert(r >= 0);
-      if (!latest_bl_raw.length()) {
-       std::cerr << __func__ << " machine " << machine
-                 << " skip latest with size 0" << std::endl;
-       goto out;
-      }
-
-      tx->put(machine, "latest", latest_bl_raw);
-
-      bufferlist::iterator lbl_it = latest_bl_raw.begin();
-      bufferlist latest_bl;
-      version_t latest_ver;
-      ::decode(latest_ver, lbl_it);
-      ::decode(latest_bl, lbl_it);
-
-      std::cout << __func__ << " machine " << machine
-               << " latest ver " << latest_ver << std::endl;
-
-      tx->put(machine, "full_latest", latest_ver);
-      stringstream os;
-      os << "full_" << latest_ver;
-      tx->put(machine, os.str(), latest_bl);
-    }
-  out:
-    db->apply_transaction(tx);
-  }
-
-  void _convert_paxos() {
-    assert(!gvs.empty());
-
-    set<version_t>::reverse_iterator rit = gvs.rbegin();
-    version_t highest_gv = *rit;
-    version_t last_gv = highest_gv;
-
-    int n = 0;
-    for (; (rit != gvs.rend()) && (n < PAXOS_MAX_VERSIONS); ++rit, ++n) {
-
-      version_t gv = *rit;
-
-      if (last_gv == gv)
-       continue;
-
-      if ((last_gv - gv) > 1) {
-         // we are done; we found a gap and we are only interested in keeping
-         // contiguous paxos versions.
-         break;
-      }
-      last_gv = gv;
-    }
-
-    // erase all paxos versions between [first, last_gv[, with first being the
-    // first gv in the map.
-    MonitorDBStore::TransactionRef tx(new MonitorDBStore::Transaction);
-    set<version_t>::iterator it = gvs.begin();
-    std::cout << __func__ << " first gv " << (*it)
-             << " last gv " << last_gv << std::endl;
-    for (; it != gvs.end() && (*it < last_gv); ++it) {
-      tx->erase("paxos", *it);
-    }
-    tx->put("paxos", "first_committed", last_gv);
-    tx->put("paxos", "last_committed", highest_gv);
-    tx->put("paxos", "accepted_pn", highest_accepted_pn);
-    tx->put("paxos", "last_pn", highest_last_pn);
-    db->apply_transaction(tx);
-  }
-
-  void _convert_machines() {
-
-    set<string> machine_names = _get_machines_names();
-    set<string>::iterator it = machine_names.begin();
-
-    std::cout << __func__ << std::endl;
-
-    for (; it != machine_names.end(); ++it) {
-      _convert_machines(*it);
-    }
-
-    _convert_paxos();
-  }
-};
-
-
-void usage(const char *pname)
-{
-  std::cerr << "Usage: " << pname << " <old store path>\n"
-    << std::endl;
-}
-
-int main(int argc, const char *argv[])
-{
-  vector<const char*> def_args;
-  vector<const char*> args;
-  const char *our_name = argv[0];
-  argv_to_vec(argc, argv, args);
-
-  global_init(&def_args, args,
-             CEPH_ENTITY_TYPE_CLIENT, CODE_ENVIRONMENT_UTILITY,
-             CINIT_FLAG_NO_DEFAULT_CONFIG_FILE);
-  common_init_finish(g_ceph_context);
-  g_ceph_context->_conf->apply_changes(NULL);
-
-  if (args.empty()) {
-    usage(our_name);
-    return 1;
-  }
-  string store(args[0]);
-  string new_store(store);
-  MonitorStoreConverter converter(store, new_store);
-  int ret = converter.convert();
-  assert(!ret);
-  assert(converter.match());
-
-  std::cout << "store successfully converted to new format" << std::endl;
-
-  return 0;
-}