From e6d9066f94189939c85f9ca7e87dd3178123afd9 Mon Sep 17 00:00:00 2001 From: Loic Dachary Date: Sun, 16 Mar 2014 12:22:02 +0100 Subject: [PATCH] erasure-code: add ostream to factory() Modify calls to ErasureCodePlugin::factory() to provide the new ostream argument. Signed-off-by: Loic Dachary --- src/mon/OSDMonitor.cc | 2 +- src/osd/PGBackend.cc | 4 +++- src/test/erasure-code/TestErasureCodePlugin.cc | 16 +++++++++------- .../TestErasureCodePluginJerasure.cc | 6 ++++-- src/test/erasure-code/ceph_erasure_code.cc | 2 +- .../erasure-code/ceph_erasure_code_benchmark.cc | 4 ++-- 6 files changed, 20 insertions(+), 14 deletions(-) diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index 25afed85aa1e1..272a8e2afbfa0 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -2857,7 +2857,7 @@ int OSDMonitor::get_erasure_code(const map &properties, return -EINVAL; } ErasureCodePluginRegistry &instance = ErasureCodePluginRegistry::instance(); - return instance.factory(plugin->second, properties, erasure_code); + return instance.factory(plugin->second, profile, erasure_code, ss); } int OSDMonitor::check_cluster_features(uint64_t features, diff --git a/src/osd/PGBackend.cc b/src/osd/PGBackend.cc index 30dcbd452a93b..b93cd51fa923a 100644 --- a/src/osd/PGBackend.cc +++ b/src/osd/PGBackend.cc @@ -281,10 +281,12 @@ PGBackend *PGBackend::build_pg_backend( case pg_pool_t::TYPE_ERASURE: { ErasureCodeInterfaceRef ec_impl; assert(pool.properties.count("erasure-code-plugin")); + stringstream ss; ceph::ErasureCodePluginRegistry::instance().factory( pool.properties.find("erasure-code-plugin")->second, pool.properties, - &ec_impl); + &ec_impl, + ss); assert(ec_impl); return new ECBackend( l, diff --git a/src/test/erasure-code/TestErasureCodePlugin.cc b/src/test/erasure-code/TestErasureCodePlugin.cc index ac12518c28a80..a896e3f7e224a 100644 --- a/src/test/erasure-code/TestErasureCodePlugin.cc +++ b/src/test/erasure-code/TestErasureCodePlugin.cc @@ -33,7 +33,8 @@ protected: parameters["directory"] = ".libs"; ErasureCodePluginRegistry &instance = ErasureCodePluginRegistry::instance(); ErasureCodeInterfaceRef erasure_code; - instance.factory("hangs", parameters, &erasure_code); + stringstream ss; + instance.factory("hangs", parameters, &erasure_code, ss); return NULL; } }; @@ -74,22 +75,23 @@ TEST_F(ErasureCodePluginRegistryTest, all) parameters["directory"] = ".libs"; ErasureCodeInterfaceRef erasure_code; ErasureCodePluginRegistry &instance = ErasureCodePluginRegistry::instance(); + stringstream ss; EXPECT_FALSE(erasure_code); - EXPECT_EQ(-EIO, instance.factory("invalid", parameters, &erasure_code)); + EXPECT_EQ(-EIO, instance.factory("invalid", parameters, &erasure_code, ss)); EXPECT_FALSE(erasure_code); EXPECT_EQ(-ENOENT, instance.factory("missing_entry_point", parameters, - &erasure_code)); + &erasure_code, ss)); EXPECT_FALSE(erasure_code); EXPECT_EQ(-ESRCH, instance.factory("fail_to_initialize", parameters, - &erasure_code)); + &erasure_code, ss)); EXPECT_FALSE(erasure_code); EXPECT_EQ(-EBADF, instance.factory("fail_to_register", parameters, - &erasure_code)); + &erasure_code, ss)); EXPECT_FALSE(erasure_code); - EXPECT_EQ(0, instance.factory("example", parameters, &erasure_code)); + EXPECT_EQ(0, instance.factory("example", parameters, &erasure_code, ss)); EXPECT_TRUE(erasure_code); ErasureCodePlugin *plugin = 0; - EXPECT_EQ(-EEXIST, instance.load("example", parameters, &plugin)); + EXPECT_EQ(-EEXIST, instance.load("example", parameters, &plugin, ss)); } int main(int argc, char **argv) { diff --git a/src/test/erasure-code/TestErasureCodePluginJerasure.cc b/src/test/erasure-code/TestErasureCodePluginJerasure.cc index c416c2cdd9332..7dd33064b129a 100644 --- a/src/test/erasure-code/TestErasureCodePluginJerasure.cc +++ b/src/test/erasure-code/TestErasureCodePluginJerasure.cc @@ -29,7 +29,8 @@ TEST(ErasureCodePlugin, factory) { ErasureCodeInterfaceRef erasure_code; EXPECT_FALSE(erasure_code); - EXPECT_EQ(-ENOENT, instance.factory("jerasure", parameters, &erasure_code)); + EXPECT_EQ(-ENOENT, instance.factory("jerasure", parameters, + &erasure_code, cerr)); EXPECT_FALSE(erasure_code); } const char *techniques[] = { @@ -46,7 +47,8 @@ TEST(ErasureCodePlugin, factory) ErasureCodeInterfaceRef erasure_code; parameters["technique"] = *technique; EXPECT_FALSE(erasure_code); - EXPECT_EQ(0, instance.factory("jerasure", parameters, &erasure_code)); + EXPECT_EQ(0, instance.factory("jerasure", parameters, + &erasure_code, cerr)); EXPECT_TRUE(erasure_code); } } diff --git a/src/test/erasure-code/ceph_erasure_code.cc b/src/test/erasure-code/ceph_erasure_code.cc index 303a6ac34b5b9..f99e8454207de 100644 --- a/src/test/erasure-code/ceph_erasure_code.cc +++ b/src/test/erasure-code/ceph_erasure_code.cc @@ -119,7 +119,7 @@ int ErasureCodeCommand::run() { ErasureCodeInterfaceRef erasure_code; int code = instance.factory(parameters["plugin"], parameters, - &erasure_code); + &erasure_code, cerr); if (code) return code; diff --git a/src/test/erasure-code/ceph_erasure_code_benchmark.cc b/src/test/erasure-code/ceph_erasure_code_benchmark.cc index 264c870874a2f..9d702962e5f04 100644 --- a/src/test/erasure-code/ceph_erasure_code_benchmark.cc +++ b/src/test/erasure-code/ceph_erasure_code_benchmark.cc @@ -124,7 +124,7 @@ int ErasureCodeBench::encode() { ErasureCodePluginRegistry &instance = ErasureCodePluginRegistry::instance(); ErasureCodeInterfaceRef erasure_code; - int code = instance.factory(plugin, parameters, &erasure_code); + int code = instance.factory(plugin, parameters, &erasure_code, cerr); if (code) return code; int k = atoi(parameters["k"].c_str()); @@ -152,7 +152,7 @@ int ErasureCodeBench::decode() { ErasureCodePluginRegistry &instance = ErasureCodePluginRegistry::instance(); ErasureCodeInterfaceRef erasure_code; - int code = instance.factory(plugin, parameters, &erasure_code); + int code = instance.factory(plugin, parameters, &erasure_code, cerr); if (code) return code; int k = atoi(parameters["k"].c_str()); -- 2.39.5