]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
journaler: remove ununsed synchronous API routines
authorVenky Shankar <vshankar@redhat.com>
Thu, 7 Jul 2016 06:50:52 +0000 (12:20 +0530)
committerVenky Shankar <vshankar@redhat.com>
Sun, 7 Aug 2016 13:24:00 +0000 (18:54 +0530)
Synchronous callers now call the asynchronous version wrapped
around C_SaferCond. Also take care of mocked methods.

Fixes: http://tracker.ceph.com/issues/15321
Signed-off-by: Venky Shankar <vshankar@redhat.com>
src/journal/JournalTrimmer.cc
src/journal/JournalTrimmer.h
src/journal/Journaler.cc
src/journal/Journaler.h
src/librbd/Journal.cc
src/test/journal/mock/MockJournaler.h
src/test/journal/test_JournalTrimmer.cc
src/test/journal/test_Journaler.cc

index 591ce83c22d36eec8abea0d96b90ae688d02349f..5e68349513cfa6c0ae390218bffbeea4199d2970 100644 (file)
@@ -47,38 +47,6 @@ void JournalTrimmer::shut_down(Context *on_finish) {
   m_journal_metadata->flush_commit_position(on_finish);
 }
 
-int JournalTrimmer::remove_objects(bool force) {
-  ldout(m_cct, 20) << __func__ << dendl;
-  m_async_op_tracker.wait_for_ops();
-
-  C_SaferCond ctx;
-  {
-    Mutex::Locker locker(m_lock);
-
-    if (m_remove_set_pending) {
-      return -EBUSY;
-    }
-
-    if (!force) {
-      JournalMetadata::RegisteredClients registered_clients;
-      m_journal_metadata->get_registered_clients(&registered_clients);
-
-      if (registered_clients.size() == 0) {
-       return -EINVAL;
-      } else if (registered_clients.size() > 1) {
-       return -EBUSY;
-      }
-    }
-
-    m_remove_set = std::numeric_limits<uint64_t>::max();
-    m_remove_set_pending = true;
-    m_remove_set_ctx = &ctx;
-
-    remove_set(m_journal_metadata->get_minimum_set());
-  }
-  return ctx.wait();
-}
-
 void JournalTrimmer::remove_objects(bool force, Context *on_finish) {
   ldout(m_cct, 20) << __func__ << dendl;
 
index 41c4a379f77d2b34cb0ff6a309aeec4737f7add7..89de0205cbf8b743ea36014c34a47fc1e1ad6409 100644 (file)
@@ -27,7 +27,6 @@ public:
 
   void shut_down(Context *on_finish);
 
-  int remove_objects(bool force);
   void remove_objects(bool force, Context *on_finish);
   void committed(uint64_t commit_tid);
 
index 1d69f63edaa158fa896fbae1ca613e670b9be6bd..3487b756178c84adebb5815180e103fdc8477a42 100644 (file)
@@ -115,16 +115,6 @@ Journaler::~Journaler() {
   delete m_threads;
 }
 
-int Journaler::exists(bool *header_exists) const {
-  int r = m_header_ioctx.stat(m_header_oid, NULL, NULL);
-  if (r < 0 && r != -ENOENT) {
-    return r;
-  }
-
-  *header_exists = (r == 0);
-  return 0;
-}
-
 void Journaler::exists(Context *on_finish) const {
   librados::ObjectReadOperation op;
   op.stat(NULL, NULL, NULL);
@@ -213,25 +203,6 @@ void Journaler::get_mutable_metadata(uint64_t *minimum_set,
   m_metadata->get_mutable_metadata(minimum_set, active_set, clients, on_finish);
 }
 
-int Journaler::create(uint8_t order, uint8_t splay_width, int64_t pool_id) {
-  if (order > 64 || order < 12) {
-    lderr(m_cct) << "order must be in the range [12, 64]" << dendl;
-    return -EDOM;
-  }
-  if (splay_width == 0) {
-    return -EINVAL;
-  }
-
-  ldout(m_cct, 5) << "creating new journal: " << m_header_oid << dendl;
-  int r = client::create(m_header_ioctx, m_header_oid, order, splay_width,
-                        pool_id);
-  if (r < 0) {
-    lderr(m_cct) << "failed to create journal: " << cpp_strerror(r) << dendl;
-    return r;
-  }
-  return 0;
-}
-
 void Journaler::create(uint8_t order, uint8_t splay_width,
                       int64_t pool_id, Context *on_finish) {
   if (order > 64 || order < 12) {
@@ -256,28 +227,6 @@ void Journaler::create(uint8_t order, uint8_t splay_width,
   comp->release();
 }
 
-int Journaler::remove(bool force) {
-  C_SaferCond ctx;
-  m_metadata->shut_down(&ctx);
-  ctx.wait();
-
-  ldout(m_cct, 5) << "removing journal: " << m_header_oid << dendl;
-  int r = m_trimmer->remove_objects(force);
-  if (r < 0) {
-    lderr(m_cct) << "failed to remove journal objects: " << cpp_strerror(r)
-                 << dendl;
-    return r;
-  }
-
-  r = m_header_ioctx.remove(m_header_oid);
-  if (r < 0) {
-    lderr(m_cct) << "failed to remove journal header: " << cpp_strerror(r)
-                 << dendl;
-    return r;
-  }
-  return 0;
-}
-
 void Journaler::remove(bool force, Context *on_finish) {
   // chain journal removal (reverse order)
   on_finish = new FunctionContext([this, on_finish](int r) {
index 6c38a3962816280c3bcf6dcffefe5a10e27291e2..49d1f67aec975c76fddcc437b81648d9d652d6be 100644 (file)
@@ -58,11 +58,8 @@ public:
            const std::string &client_id, const Settings &settings);
   ~Journaler();
 
-  int exists(bool *header_exists) const;
   void exists(Context *on_finish) const;
-  int create(uint8_t order, uint8_t splay_width, int64_t pool_id);
   void create(uint8_t order, uint8_t splay_width, int64_t pool_id, Context *ctx);
-  int remove(bool force);
   void remove(bool force, Context *on_finish);
 
   void init(Context *on_init);
index 3d249b69b68702df152cb076296d138577360825..71743c14107019edfa24bf9f1d980eff6f529252 100644 (file)
@@ -414,7 +414,9 @@ int Journal<I>::reset(librados::IoCtx &io_ctx, const std::string &image_id) {
     }
   }
 
-  r = journaler.remove(true);
+  C_SaferCond ctx1;
+  journaler.remove(true, &ctx1);
+  r = ctx1.wait();
   if (r < 0) {
     lderr(cct) << __func__ << ": "
                << "failed to reset journal: " << cpp_strerror(r) << dendl;
index 3912a47ff4e938a3d2fbf2363a9696b7c1047272..f4eceebe8e64da40eb4484f027491d6f042ef762 100644 (file)
@@ -147,14 +147,14 @@ struct MockJournalerProxy {
     MockJournaler::get_instance().construct();
   }
 
-  int exists(bool *header_exists) const {
-    return -EINVAL;
+  void exists(Context *on_finish) const {
+    on_finish->complete(-EINVAL);
   }
-  int create(uint8_t order, uint8_t splay_width, int64_t pool_id) {
-    return -EINVAL;
+  void create(uint8_t order, uint8_t splay_width, int64_t pool_id, Context *on_finish) {
+    on_finish->complete(-EINVAL);
   }
-  int remove(bool force) {
-    return -EINVAL;
+  void remove(bool force, Context *on_finish) {
+    on_finish->complete(-EINVAL);
   }
   int register_client(const bufferlist &data) {
     return -EINVAL;
index 2849019a4f9b463cb87692c0b03d8dac80c8126b..8e09e870d2542c2c9211038b6e678a94221268dc 100644 (file)
@@ -163,7 +163,10 @@ TEST_F(TestJournalTrimmer, RemoveObjects) {
 
   journal::JournalTrimmer *trimmer = create_trimmer(oid, metadata);
 
-  ASSERT_EQ(0, trimmer->remove_objects(false));
+  C_SaferCond cond;
+  trimmer->remove_objects(false, &cond);
+  ASSERT_EQ(0, cond.wait());
+
   ASSERT_TRUE(wait_for_update(metadata));
 
   ASSERT_EQ(-ENOENT, assert_exists(oid + ".0"));
@@ -183,7 +186,13 @@ TEST_F(TestJournalTrimmer, RemoveObjectsWithOtherClient) {
   ASSERT_TRUE(wait_for_update(metadata));
 
   journal::JournalTrimmer *trimmer = create_trimmer(oid, metadata);
-  ASSERT_EQ(-EBUSY, trimmer->remove_objects(false));
-  ASSERT_EQ(0, trimmer->remove_objects(true));
+
+  C_SaferCond ctx1;
+  trimmer->remove_objects(false, &ctx1);
+  ASSERT_EQ(-EBUSY, ctx1.wait());
+
+  C_SaferCond ctx2;
+  trimmer->remove_objects(true, &ctx2);
+  ASSERT_EQ(0, ctx2.wait());
 }
 
index d40069505c10825a93d37c49eec44efc196ed360..7b8be81b5607efd998752b236d0b1f22f9bf0cc3 100644 (file)
@@ -31,7 +31,9 @@ public:
   }
 
   int create_journal(uint8_t order, uint8_t splay_width) {
-    return m_journaler->create(order, splay_width, -1);
+    C_SaferCond cond;
+    m_journaler->create(order, splay_width, -1, &cond);
+    return cond.wait();
   }
 
   int init_journaler() {