diff --git a/lib/cmdlib.py b/lib/cmdlib.py index 24cc95a12118d52ad8b1553b7f1aab708ae9700d..e3fb2292bd57521cf5351621f41f0b1d58f0fb0b 100644 --- a/lib/cmdlib.py +++ b/lib/cmdlib.py @@ -4108,6 +4108,19 @@ class LUSetNodeParams(LogicalUnit): self.new_role = new_role + if old_role == self._ROLE_OFFLINE and new_role != old_role: + # Trying to transition out of offline status + result = self.rpc.call_version([node.name])[node.name] + if result.fail_msg: + raise errors.OpPrereqError("Node %s is being de-offlined but fails" + " to report its version: %s" % + (node.name, result.fail_msg), + errors.ECODE_STATE) + else: + self.LogWarning("Transitioning node from offline to online state" + " without using re-add. Please make sure the node" + " is healthy!") + def Exec(self, feedback_fn): """Modifies a node.