diff --git a/lib/cmdlib.py b/lib/cmdlib.py index d714c5da90ccba1e47d91042b97815942edc39d2..592d1b1e4d45c0b8d00f86e05241abf5b1baeb22 100644 --- a/lib/cmdlib.py +++ b/lib/cmdlib.py @@ -1554,7 +1554,7 @@ class LUClusterVerify(LogicalUnit): node_current) for node, n_img in node_image.items(): - if (not node == node_current): + if node != node_current: test = instance in n_img.instances _ErrorIf(test, self.EINSTANCEWRONGNODE, instance, "instance should not run on node %s", node) @@ -1564,7 +1564,11 @@ class LUClusterVerify(LogicalUnit): for idx, (success, status) in enumerate(disks)] for nname, success, bdev_status, idx in diskdata: - _ErrorIf(instanceconfig.admin_up and not success, + # the 'ghost node' construction in Exec() ensures that we have a + # node here + snode = node_image[nname] + bad_snode = snode.ghost or snode.offline + _ErrorIf(instanceconfig.admin_up and not success and not bad_snode, self.EINSTANCEFAULTYDISK, instance, "couldn't retrieve status for disk/%s on %s: %s", idx, nname, bdev_status)