From: Jason Dillaman Date: Thu, 30 Jul 2015 13:00:57 +0000 (-0400) Subject: librados_test_stub: implement conf get/set API methods X-Git-Tag: v0.94.4~29^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=b68d7574d12944589b246281474bcad01f5347be;p=ceph.git librados_test_stub: implement conf get/set API methods Signed-off-by: Jason Dillaman (cherry picked from commit 4d03c664f2a9362009c7e3077ed65e2989f0f21b) --- diff --git a/src/test/librados_test_stub/LibradosTestStub.cc b/src/test/librados_test_stub/LibradosTestStub.cc index f7f597c6f31..8efd6ac5e42 100644 --- a/src/test/librados_test_stub/LibradosTestStub.cc +++ b/src/test/librados_test_stub/LibradosTestStub.cc @@ -113,6 +113,14 @@ extern "C" rados_config_t rados_cct(rados_t cluster) return reinterpret_cast(client->cct()); } +extern "C" int rados_conf_set(rados_t cluster, const char *option, + const char *value) { + librados::TestRadosClient *impl = + reinterpret_cast(cluster); + CephContext *cct = impl->cct(); + return cct->_conf->set_val(option, value); +} + extern "C" int rados_conf_parse_env(rados_t cluster, const char *var) { librados::TestRadosClient *client = reinterpret_cast(cluster); @@ -198,6 +206,12 @@ extern "C" void rados_ioctx_destroy(rados_ioctx_t io) { ctx->put(); } +extern "C" rados_t rados_ioctx_get_cluster(rados_ioctx_t io) { + librados::TestIoCtxImpl *ctx = + reinterpret_cast(io); + return reinterpret_cast(ctx->get_rados_client()); +} + extern "C" int rados_mon_command(rados_t cluster, const char **cmd, size_t cmdlen, const char *inbuf, size_t inbuflen, char **outbuf, @@ -704,6 +718,31 @@ int Rados::blacklist_add(const std::string& client_address, return impl->blacklist_add(client_address, expire_seconds); } +config_t Rados::cct() { + TestRadosClient *impl = reinterpret_cast(client); + return reinterpret_cast(impl->cct()); +} + +int Rados::conf_set(const char *option, const char *value) { + return rados_conf_set(reinterpret_cast(client), option, value); +} + +int Rados::conf_get(const char *option, std::string &val) { + TestRadosClient *impl = reinterpret_cast(client); + CephContext *cct = impl->cct(); + + char *str = NULL; + int ret = cct->_conf->get_val(option, &str, -1); + if (ret != 0) { + free(str); + return ret; + } + + val = str; + free(str); + return 0; +} + int Rados::conf_parse_env(const char *env) const { return rados_conf_parse_env(reinterpret_cast(client), env); }