The testprofile erasure code profile is destroyed before creating a new
one so that it does not fail when another testprofile erasure code
profile already exists with different parameters.
This must be done when creating erasure coded pools with the C++
interface, in the same way it's done with the C interface.
http://tracker.ceph.com/issues/13664 Fixes: #13664
Signed-off-by: Loic Dachary <ldachary@redhat.com>
if (err.length())
return err;
+ int ret = destroy_ec_profile_pp(cluster);
+ if (ret) {
+ cluster.shutdown();
+ std::ostringstream oss;
+ oss << "rados_mon_command erasure-code-profile rm testprofile failed with error " << ret;
+ return oss.str();
+ }
+
bufferlist inbl;
ret = cluster.mon_command(
"{\"prefix\": \"osd erasure-code-profile set\", \"name\": \"testprofile\", \"profile\": [ \"k=2\", \"m=1\", \"ruleset-failure-domain=osd\"]}",