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,
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,
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;
}
};
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) {
{
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[] = {
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);
}
}
ErasureCodeInterfaceRef erasure_code;
int code = instance.factory(parameters["plugin"],
parameters,
- &erasure_code);
+ &erasure_code, cerr);
if (code)
return code;
{
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());
{
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());