Removing a non-existent device class should be generally okay.
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
ceph osd crush class rename TEMP CLASS || return 1
ceph osd crush class ls | grep CLASS || return 1
ceph osd crush class rm CLASS || return 1
- expect_failure $dir ENOENT ceph osd crush class rm CLASS || return 1
+ ceph osd crush class rm CLASS || return 1 # test idempotence
# test rm-device-class
ceph osd crush set-device-class aaa osd.0 || return 1
goto reply;
}
+ if (!osdmap.crush->class_exists(device_class)) {
+ err = 0;
+ goto reply;
+ }
+
CrushWrapper newcrush;
_get_pending_crush(newcrush);
if (!newcrush.class_exists(device_class)) {
- err = -ENOENT;
- ss << "class '" << device_class << "' does not exist";
- goto reply;
+ err = 0; // make command idempotent
+ goto wait;
}
int class_id = newcrush.get_class_id(device_class);
stringstream ts;