From 782a74cddd4a72c8106a25fbe9c255d4d4209d28 Mon Sep 17 00:00:00 2001 From: Haomai Wang Date: Wed, 26 Nov 2014 20:37:53 +0800 Subject: [PATCH] KineticStore: Fix compile error and add _test_init Signed-off-by: Haomai Wang --- src/os/KeyValueDB.cc | 8 ++++---- src/os/KineticStore.cc | 20 ++++++++++++++++++++ src/os/KineticStore.h | 1 + 3 files changed, 25 insertions(+), 4 deletions(-) diff --git a/src/os/KeyValueDB.cc b/src/os/KeyValueDB.cc index e73932933329b..7d7de3e42c388 100644 --- a/src/os/KeyValueDB.cc +++ b/src/os/KeyValueDB.cc @@ -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 diff --git a/src/os/KineticStore.cc b/src/os/KineticStore.cc index ba77376b53965..6aa05c9864266 100644 --- a/src/os/KineticStore.cc +++ b/src/os/KineticStore.cc @@ -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 = diff --git a/src/os/KineticStore.h b/src/os/KineticStore.h index 57b8a49b5f061..cbb7633466b10 100644 --- a/src/os/KineticStore.h +++ b/src/os/KineticStore.h @@ -48,6 +48,7 @@ public: KineticStore(CephContext *c); ~KineticStore(); + static int _test_init(CephContext *c); int init(); /// Opens underlying db -- 2.39.5