From: Haomai Wang Date: Wed, 26 Nov 2014 12:37:53 +0000 (+0800) Subject: KineticStore: Fix compile error and add _test_init X-Git-Tag: v0.90~38^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F3016%2Fhead;p=ceph.git KineticStore: Fix compile error and add _test_init Signed-off-by: Haomai Wang --- diff --git a/src/os/KeyValueDB.cc b/src/os/KeyValueDB.cc index e73932933329..7d7de3e42c38 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 ba77376b5396..6aa05c986426 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 57b8a49b5f06..cbb7633466b1 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