X-Git-Url: https://code.grnet.gr/git/ganeti-local/blobdiff_plain/249069a17f15db3897467cca2bc1ed6509daeeb6..b07a692207d48182a8396fd89746c116a952c13c:/lib/mcpu.py diff --git a/lib/mcpu.py b/lib/mcpu.py index d941aef..228465b 100644 --- a/lib/mcpu.py +++ b/lib/mcpu.py @@ -53,6 +53,7 @@ class Processor(object): opcodes.OpDumpClusterConfig: cmdlib.LUDumpClusterConfig, opcodes.OpRenameCluster: cmdlib.LURenameCluster, opcodes.OpVerifyDisks: cmdlib.LUVerifyDisks, + opcodes.OpSetClusterParams: cmdlib.LUSetClusterParams, # node lu opcodes.OpAddNode: cmdlib.LUAddNode, opcodes.OpQueryNodes: cmdlib.LUQueryNodes, @@ -73,12 +74,13 @@ class Processor(object): opcodes.OpConnectConsole: cmdlib.LUConnectConsole, opcodes.OpQueryInstances: cmdlib.LUQueryInstances, opcodes.OpQueryInstanceData: cmdlib.LUQueryInstanceData, - opcodes.OpSetInstanceParms: cmdlib.LUSetInstanceParms, + opcodes.OpSetInstanceParams: cmdlib.LUSetInstanceParams, # os lu opcodes.OpDiagnoseOS: cmdlib.LUDiagnoseOS, # exports lu opcodes.OpQueryExports: cmdlib.LUQueryExports, opcodes.OpExportInstance: cmdlib.LUExportInstance, + opcodes.OpRemoveExport: cmdlib.LURemoveExport, # tags lu opcodes.OpGetTags: cmdlib.LUGetTags, opcodes.OpSearchTags: cmdlib.LUSearchTags, @@ -86,6 +88,7 @@ class Processor(object): opcodes.OpDelTags: cmdlib.LUDelTags, # test lu opcodes.OpTestDelay: cmdlib.LUTestDelay, + opcodes.OpTestAllocator: cmdlib.LUTestAllocator, } def __init__(self, feedback=None): @@ -125,14 +128,16 @@ class Processor(object): lu.CheckPrereq() hm = HooksMaster(rpc.call_hooks_runner, self, lu) hm.RunPhase(constants.HOOKS_PHASE_PRE) - result = lu.Exec(self._feedback_fn) - hm.RunPhase(constants.HOOKS_PHASE_POST) - if lu.cfg is not None: - # we use lu.cfg and not self.cfg as for init cluster, self.cfg - # is None but lu.cfg has been recently initialized in the - # lu.Exec method - if write_count != lu.cfg.write_count: - hm.RunConfigUpdate() + try: + result = lu.Exec(self._feedback_fn) + hm.RunPhase(constants.HOOKS_PHASE_POST) + finally: + if lu.cfg is not None: + # we use lu.cfg and not self.cfg as for init cluster, self.cfg + # is None but lu.cfg has been recently initialized in the + # lu.Exec method + if write_count != lu.cfg.write_count: + hm.RunConfigUpdate() return result @@ -259,6 +264,12 @@ class HooksMaster(object): This is the main function of the HookMaster. + Args: + phase: the hooks phase to run + + Returns: + the result of the hooks multi-node rpc call + """ if not self.node_list[phase]: # empty node list, we should not attempt to run this as either @@ -282,6 +293,7 @@ class HooksMaster(object): errs.append((node_name, script, output)) if errs: raise errors.HooksAbort(errs) + return results def RunConfigUpdate(self): """Run the special configuration update hook