Fixed several bugs uncovered during writing the draft of the qa tests. Also, now universal hooks are always executed at least on the master node even if the master node is missing in the node list generated by the opcode for the usual hooks.
Oleg Ponomarev (11): Add global hooks support to the HooksMaster Run global hooks in case of succesfull opcode execution Execute POST-phase global hooks in case of failure Always execute global hooks at least on the master node Make SafeLoadJobFromDisk a @staticmethod Divide forkJobProcess into several functions Implement forkPostHooksProcess function Implement python process ececuting global POST hooks Implement python process ececuting global POST hooks Execute global POST hooks for disappeared job processes Update design document for global hooks Makefile.am | 3 +- doc/design-global-hooks.rst | 44 +++-- lib/cmdlib/common.py | 2 + lib/hooksmaster.py | 47 ++++-- lib/jqueue/__init__.py | 23 +-- lib/jqueue/exec.py | 8 +- lib/jqueue/post_hooks_exec.py | 116 ++++++++++++++ lib/mcpu.py | 82 ++++++---- src/Ganeti/Constants.hs | 14 ++ src/Ganeti/JQScheduler.hs | 21 ++- src/Ganeti/Path.hs | 7 + src/Ganeti/Query/Exec.hs | 223 +++++++++++++++++--------- test/py/cmdlib/cluster_unittest.py | 6 +- test/py/cmdlib/testsupport/cmdlib_testcase.py | 3 +- 14 files changed, 443 insertions(+), 156 deletions(-) create mode 100644 lib/jqueue/post_hooks_exec.py -- 2.6.0.rc2.230.g3dd15c0
