diff --git a/lib/mcpu.py b/lib/mcpu.py index 5cd356679586882c30da6b8e1622554e7db8f9bc..630f8775badc62106b3f2be62672415e13a59ffc 100644 --- a/lib/mcpu.py +++ b/lib/mcpu.py @@ -357,24 +357,33 @@ class HooksMaster(object): results = self._RunWrapper(nodes, hpath, phase) else: results = self._RunWrapper(self.node_list[phase], hpath, phase) - if phase == constants.HOOKS_PHASE_PRE: - errs = [] - if not results: - raise errors.HooksFailure("Communication failure") - for node_name in results: - res = results[node_name] - if res.offline: - continue - msg = res.RemoteFailMsg() - if msg: - self.lu.LogWarning("Communication failure to node %s: %s", - node_name, msg) - continue - for script, hkr, output in res.payload: - if hkr == constants.HKR_FAIL: + errs = [] + if not results: + msg = "Communication Failure" + if phase == constants.HOOKS_PHASE_PRE: + raise errors.HooksFailure(msg) + else: + self.lu.LogWarning(msg) + for node_name in results: + res = results[node_name] + if res.offline: + continue + msg = res.RemoteFailMsg() + if msg: + self.lu.LogWarning("Communication failure to node %s: %s", + node_name, msg) + continue + for script, hkr, output in res.payload: + if hkr == constants.HKR_FAIL: + if phase == constants.HOOKS_PHASE_PRE: errs.append((node_name, script, output)) - if errs: - raise errors.HooksAbort(errs) + else: + if not output: + output = "(no output)" + self.lu.LogWarning("On %s script %s failed, output: %s" % + (node_name, script, output)) + if errs and phase == constants.HOOKS_PHASE_PRE: + raise errors.HooksAbort(errs) return results def RunConfigUpdate(self):