From: Adam Crume Date: Tue, 22 Jul 2014 23:09:29 +0000 (-0700) Subject: rbd-replay: Add --pool option X-Git-Tag: v0.86~231^2~41 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=2a66e09abe7864bd48362b1985cce31a1cb6ed2a;p=ceph.git rbd-replay: Add --pool option Signed-off-by: Adam Crume --- diff --git a/src/rbd_replay/Replayer.cc b/src/rbd_replay/Replayer.cc index afd45ec59a40..c7de2062b1e1 100644 --- a/src/rbd_replay/Replayer.cc +++ b/src/rbd_replay/Replayer.cc @@ -130,7 +130,8 @@ bool Worker::readonly() const { Replayer::Replayer(int num_action_trackers) - : m_num_action_trackers(num_action_trackers), + : m_pool_name("rbd"), + m_num_action_trackers(num_action_trackers), m_action_trackers(new action_tracker_d[m_num_action_trackers]) { assertf(num_action_trackers > 0, "num_action_trackers = %d", num_action_trackers); } @@ -159,8 +160,7 @@ void Replayer::run(const std::string replay_file) { } m_ioctx = new librados::IoCtx(); { - const char* pool_name = "rbd"; - r = rados.ioctx_create(pool_name, *m_ioctx); + r = rados.ioctx_create(m_pool_name.c_str(), *m_ioctx); if (r) { cerr << "Unable to create IoCtx: " << r << std::endl; goto out2; @@ -296,3 +296,11 @@ bool Replayer::readonly() const { void Replayer::set_readonly(bool readonly) { m_readonly = readonly; } + +string Replayer::pool_name() const { + return m_pool_name; +} + +void Replayer::set_pool_name(string pool_name) { + m_pool_name = pool_name; +} diff --git a/src/rbd_replay/Replayer.hpp b/src/rbd_replay/Replayer.hpp index f88eb55194d2..870fabf2ecc8 100644 --- a/src/rbd_replay/Replayer.hpp +++ b/src/rbd_replay/Replayer.hpp @@ -96,6 +96,10 @@ public: void wait_for_actions(const std::vector &deps); + std::string pool_name() const; + + void set_pool_name(std::string pool_name); + void set_latency_multiplier(float f); bool readonly() const; @@ -120,6 +124,7 @@ private: librbd::RBD* m_rbd; librados::IoCtx* m_ioctx; + std::string m_pool_name; float m_latency_multiplier; bool m_readonly; diff --git a/src/rbd_replay/rbd-replay.cc b/src/rbd_replay/rbd-replay.cc index 94be674662ca..bb95787fa4af 100644 --- a/src/rbd_replay/rbd-replay.cc +++ b/src/rbd_replay/rbd-replay.cc @@ -36,6 +36,7 @@ static const char* get_remainder(const char *string, const char *prefix) { static void usage(const char* program) { cout << "Usage: " << program << " --conf= " << std::endl; cout << "Options:" << std::endl; + cout << " -p, --pool-name Name of the pool to use. Default: rbd" << std::endl; cout << " --latency-multiplier Multiplies inter-request latencies. Default: 1" << std::endl; cout << " --read-only Only perform non-destructive operations." << std::endl; } @@ -48,6 +49,7 @@ int main(int argc, const char **argv) { global_init(NULL, args, CEPH_ENTITY_TYPE_CLIENT, CODE_ENVIRONMENT_UTILITY, 0); std::vector::iterator i; + string pool_name = "rbd"; float latency_multiplier = 1; bool readonly = false; std::string val; @@ -55,6 +57,8 @@ int main(int argc, const char **argv) { for (i = args.begin(); i != args.end(); ) { if (ceph_argparse_double_dash(args, i)) { break; + } else if (ceph_argparse_witharg(args, i, &val, "-p", "--pool", (char*)NULL)) { + pool_name = val; } else if (ceph_argparse_withfloat(args, i, &latency_multiplier, &err, "--latency-multiplier", (char*)NULL)) { if (!err.str().empty()) { @@ -89,6 +93,7 @@ int main(int argc, const char **argv) { unsigned int nthreads = boost::thread::hardware_concurrency(); Replayer replayer(2 * nthreads + 1); replayer.set_latency_multiplier(latency_multiplier); + replayer.set_pool_name(pool_name); replayer.set_readonly(readonly); replayer.run(replay_file); }