]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
erasure-code: add ostream to factory()
authorLoic Dachary <loic@dachary.org>
Sun, 16 Mar 2014 11:22:02 +0000 (12:22 +0100)
committerLoic Dachary <loic@dachary.org>
Mon, 17 Mar 2014 08:48:03 +0000 (09:48 +0100)
Modify calls to ErasureCodePlugin::factory() to provide the new
ostream argument.

Signed-off-by: Loic Dachary <loic@dachary.org>
src/mon/OSDMonitor.cc
src/osd/PGBackend.cc
src/test/erasure-code/TestErasureCodePlugin.cc
src/test/erasure-code/TestErasureCodePluginJerasure.cc
src/test/erasure-code/ceph_erasure_code.cc
src/test/erasure-code/ceph_erasure_code_benchmark.cc

index 25afed85aa1e1c1b4da836d433ae18bf8b9f69f7..272a8e2afbfa059112294cdd8a3000175de73a6d 100644 (file)
@@ -2857,7 +2857,7 @@ int OSDMonitor::get_erasure_code(const map<string,string> &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,
index 30dcbd452a93b1fa7a2bd1d3eff195e5a8f35f51..b93cd51fa923ae10ac74cd965a07569e5bdd2efd 100644 (file)
@@ -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,
index ac12518c28a80b550928436e31e981f33ea8cfef..a896e3f7e224a427c396787ec892756646dfc82d 100644 (file)
@@ -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) {
index c416c2cdd933293ac01e1a126823558b920988a6..7dd33064b129ad2044530ca89627b17841e25454 100644 (file)
@@ -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);
   }
 }
index 303a6ac34b5b9aeeb0e4309d4c59f8c2a32f5d3c..f99e8454207de37611653ca7351cada6538de257 100644 (file)
@@ -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;
 
index 264c870874a2f2bb612b491a33b254f51e41f8cb..9d702962e5f04cf638506e4fd78b4f33ef659e66 100644 (file)
@@ -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());