Signed-off-by: Sage Weil <sage@inktank.com>
ceph osd pool get rbd crush_ruleset | grep 'crush_ruleset: 0'
+ceph osd erasure-code-profile set fooprofile a=b c=d
+ceph osd erasure-code-profile set fooprofile a=b c=d
+expect_false ceph osd erasure-code-profile set fooprofile a=b c=d e=f
+ceph osd erasure-code-profile set fooprofile a=b c=d e=f --force
+ceph osd erasure-code-profile set fooprofile a=b c=d e=f
+expect_false ceph osd erasure-code-profile set fooprofile a=b c=d e=f g=h
+
set +e
if (err)
goto reply;
- if (osdmap.has_erasure_code_profile(name) && !force) {
- err = -EPERM;
- ss << "will not override erasure code profile " << name;
- goto reply;
+ if (osdmap.has_erasure_code_profile(name)) {
+ if (osdmap.get_erasure_code_profile(name) == profile_map) {
+ err = 0;
+ goto reply;
+ }
+ if (!force) {
+ err = -EPERM;
+ ss << "will not override erasure code profile " << name;
+ goto reply;
+ }
}
if (pending_inc.has_erasure_code_profile(name)) {