And one more interdiff:
--- a/lib/hooksmaster.py
+++ b/lib/hooksmaster.py
@@ -163,7 +163,7 @@ class HooksMaster(object):
"""
if node_list is None or not node_list:
- return
+ return {}
# Convert everything to strings
env = dict([(str(key), str(val)) for key, val in env.iteritems()])
On 11/25/2015 02:23 PM, Oleg Ponomarev wrote:
Fixed with the following interdiff:
diff --git a/lib/hooksmaster.py b/lib/hooksmaster.py
index 3769d45..4699335 100644
--- a/lib/hooksmaster.py
+++ b/lib/hooksmaster.py
@@ -159,6 +159,9 @@ class HooksMaster(object):
return env
def _CheckParamsAndExecHooks(self, node_list, hpath, phase, env):
+ """Check rpc parameters and call hooks_execution_fn (rpc).
+
+ """
if node_list is None or not node_list:
return
@@ -208,6 +211,8 @@ class HooksMaster(object):
if not is_global:
return self._CheckParamsAndExecHooks(node_list, hpath, phase, env)
+ # For global hooks, we need to send different env values to
master and
+ # to the others
ret = dict()
env["GANETI_IS_MASTER"] = constants.GLOBAL_HOOKS_MASTER
master_set = frozenset([self.master_uuid])
@@ -217,6 +222,7 @@ class HooksMaster(object):
node_list = frozenset(set(node_list) - master_set)
env["GANETI_IS_MASTER"] = constants.GLOBAL_HOOKS_NOT_MASTER
ret.update(self._CheckParamsAndExecHooks(node_list, hpath, phase,
env))
+
return ret
def RunPhase(self, phase, node_uuids=None, is_global=False,
Sincerely, Oleg Ponomarev