diff --git a/lib/cmdlib.py b/lib/cmdlib.py index 3cb115645b5eab90d8c242d5ba4c112a11a16629..f338da5f9c31b775fc05d0dad3aa027a0a99a2b8 100644 --- a/lib/cmdlib.py +++ b/lib/cmdlib.py @@ -3329,6 +3329,7 @@ class LUReplaceDisks(LogicalUnit): raise errors.OpPrereqError("Instance '%s' not known" % self.op.instance_name) self.instance = instance + self.op.instance_name = instance.name if instance.disk_template not in constants.DTS_NET_MIRROR: raise errors.OpPrereqError("Instance's disk layout is not" @@ -3367,6 +3368,11 @@ class LUReplaceDisks(LogicalUnit): raise errors.OpPrereqError("Template 'remote_raid1' only allows all" " disks replacement, not individual ones") if instance.disk_template == constants.DT_DRBD8: + if (self.op.mode == constants.REPLACE_DISK_ALL and + remote_node is not None): + # switch to replace secondary mode + self.op.mode = constants.REPLACE_DISK_SEC + if self.op.mode == constants.REPLACE_DISK_ALL: raise errors.OpPrereqError("Template 'drbd8' only allows primary or" " secondary disk replacement, not"