]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
KineticStore: Fix compile error and add _test_init 3016/head
authorHaomai Wang <haomaiwang@gmail.com>
Wed, 26 Nov 2014 12:37:53 +0000 (20:37 +0800)
committerHaomai Wang <haomaiwang@gmail.com>
Wed, 26 Nov 2014 19:26:40 +0000 (03:26 +0800)
Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
src/os/KeyValueDB.cc
src/os/KineticStore.cc
src/os/KineticStore.h

index e73932933329b1060dd8c438298a56f6c8825a51..7d7de3e42c388760ca53e220421c3373b45511b6 100644 (file)
@@ -14,8 +14,8 @@ KeyValueDB *KeyValueDB::create(CephContext *cct, const string& type,
     return new LevelDBStore(cct, dir);
   }
 #ifdef HAVE_KINETIC
-  if (kv_type == KV_TYPE_KINETIC) {
-    store = new KineticStore(g_ceph_context);
+  if (type == "kinetic") {
+    return new KineticStore(cct);
   }
 #endif
 #ifdef HAVE_LIBROCKSDB
@@ -32,8 +32,8 @@ int KeyValueDB::test_init(const string& type, const string& dir)
     return LevelDBStore::_test_init(dir);
   }
 #ifdef HAVE_KINETIC
-  if (kv_type == KV_TYPE_KINETIC) {
-    return 0;
+  if (type == "kinetic") {
+    return KineticStore::_test_init(g_ceph_context);
   }
 #endif
 #ifdef HAVE_LIBROCKSDB
index ba77376b539656c63bab0929ea01a984e276dbba..6aa05c9864266b6545318a36fa2831277df906bb 100644 (file)
@@ -25,6 +25,26 @@ int KineticStore::init()
   return 0;
 }
 
+int KineticStore::_test_init(CephContext *c)
+{
+  kinetic::KineticConnectionFactory conn_factory =
+    kinetic::NewKineticConnectionFactory();
+
+  kinetic::ConnectionOptions options;
+  options.host = cct->_conf->kinetic_host;
+  options.port = cct->_conf->kinetic_port;
+  options.user_id = cct->_conf->kinetic_user_id;
+  options.hmac_key = cct->_conf->kinetic_hmac_key;
+  options.use_ssl = cct->_conf->kinetic_use_ssl;
+
+  kinetic::Status status = conn_factory.NewThreadsafeBlockingConnection(options, kinetic_conn, 10);
+  kinetic_conn.reset();
+  if (!status.ok())
+    derr << __func__ << "Unable to connect to kinetic store " << options.host
+         << ":" << options.port << " : " << status.ToString() << dendl;
+  return status.ok() ? 0 : -EIO;
+}
+
 int KineticStore::do_open(ostream &out, bool create_if_missing)
 {
   kinetic::KineticConnectionFactory conn_factory =
index 57b8a49b5f06182691fb2bb4808f6af8d9b8e068..cbb7633466b1003153ff185182e520111ac379f0 100644 (file)
@@ -48,6 +48,7 @@ public:
   KineticStore(CephContext *c);
   ~KineticStore();
 
+  static int _test_init(CephContext *c);
   int init();
 
   /// Opens underlying db