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
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
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 =