From f5677ab376448d76dcb612c9be8a58a770704d84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Nussbaumer?= <rn@google.com> Date: Tue, 4 Jan 2011 13:34:49 +0100 Subject: [PATCH] out of band verification in gnt-cluster verify MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This adds the verify tests for out of band management Signed-off-by: RenΓ© Nussbaumer <rn@google.com> Reviewed-by: Michael Hanselmann <hansmi@google.com> --- lib/cmdlib.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/lib/cmdlib.py b/lib/cmdlib.py index 8c9e06d68..274c4cabd 100644 --- a/lib/cmdlib.py +++ b/lib/cmdlib.py @@ -1235,6 +1235,7 @@ class LUVerifyCluster(LogicalUnit): ENODEVERSION = (TNODE, "ENODEVERSION") ENODESETUP = (TNODE, "ENODESETUP") ENODETIME = (TNODE, "ENODETIME") + ENODEOOBPATH = (TNODE, "ENODEOOBPATH") ETYPE_FIELD = "code" ETYPE_ERROR = "ERROR" @@ -1825,6 +1826,22 @@ class LUVerifyCluster(LogicalUnit): "OSes present on reference node %s but missing on this node: %s", base.name, utils.CommaJoin(missing)) + def _VerifyOob(self, ninfo, nresult): + """Verifies out of band functionality of a node. + + @type ninfo: L{objects.Node} + @param ninfo: the node to check + @param nresult: the remote results for the node + + """ + node = ninfo.name + # We just have to verify the paths on master and/or master candidates + # as the oob helper is invoked on the master + if ((ninfo.master_candidate or ninfo.master) and + constants.NV_OOB_PATHS in nresult): + for path_result in nresult[constants.NV_OOB_PATHS]: + self._ErrorIf(path_result, self.ENODEOOBPATH, node, path_result) + def _UpdateNodeVolumes(self, ninfo, nresult, nimg, vg_name): """Verifies and updates the node volume data. @@ -2107,6 +2124,16 @@ class LUVerifyCluster(LogicalUnit): vm_capable=node.vm_capable)) for node in nodeinfo) + # Gather OOB paths + oob_paths = [] + for node in nodeinfo: + path = _SupportsOob(self.cfg, node) + if path and path not in oob_paths: + oob_paths.append(path) + + if oob_paths: + node_verify_param[constants.NV_OOB_PATHS] = oob_paths + for instance in instancelist: inst_config = instanceinfo[instance] @@ -2186,6 +2213,8 @@ class LUVerifyCluster(LogicalUnit): self._VerifyNodeFiles(node_i, nresult, file_names, local_checksums, master_files) + self._VerifyOob(node_i, nresult) + if nimg.vm_capable: self._VerifyNodeLVM(node_i, nresult, vg_name) self._VerifyNodeDrbd(node_i, nresult, instanceinfo, drbd_helper, -- GitLab