diff --git a/lib/cmdlib.py b/lib/cmdlib.py index c764065e8735e2fd284d273520edfb3cd7d3b802..eb2e49a6f75b8c12b213782783844c1f4e91a7d7 100644 --- a/lib/cmdlib.py +++ b/lib/cmdlib.py @@ -5080,6 +5080,18 @@ class LUNodeAdd(LogicalUnit): if self.op.ndparams: utils.ForceDictType(self.op.ndparams, constants.NDS_PARAMETER_TYPES) + # check connectivity + result = self.rpc.call_version([self.new_node.name])[self.new_node.name] + result.Raise("Can't get version information from node %s" % node) + if constants.PROTOCOL_VERSION == result.payload: + logging.info("Communication to node %s fine, sw version %s match", + node, result.payload) + else: + raise errors.OpPrereqError("Version mismatch master version %s," + " node version %s" % + (constants.PROTOCOL_VERSION, result.payload), + errors.ECODE_ENVIRON) + def Exec(self, feedback_fn): """Adds the new node to the cluster. @@ -5115,17 +5127,6 @@ class LUNodeAdd(LogicalUnit): else: new_node.ndparams = {} - # check connectivity - result = self.rpc.call_version([node])[node] - result.Raise("Can't get version information from node %s" % node) - if constants.PROTOCOL_VERSION == result.payload: - logging.info("Communication to node %s fine, sw version %s match", - node, result.payload) - else: - raise errors.OpExecError("Version mismatch master version %s," - " node version %s" % - (constants.PROTOCOL_VERSION, result.payload)) - # Add node to our /etc/hosts, and add key to known_hosts if self.cfg.GetClusterInfo().modify_etc_hosts: master_node = self.cfg.GetMasterNode()