From 811963416a3156440de03719c5e8a7ad0c306b67 Mon Sep 17 00:00:00 2001 From: Iustin Pop <iustin@google.com> Date: Wed, 10 Mar 2010 14:45:08 +0100 Subject: [PATCH] Implement verify checks for node/instance names Since we index the nodes and instances by their name, we should have checks that the dict key to object.name mapping is correct. Signed-off-by: Iustin Pop <iustin@google.com> Reviewed-by: Michael Hanselmann <hansmi@google.com> --- lib/config.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/config.py b/lib/config.py index 3382907f6..d1f061c36 100644 --- a/lib/config.py +++ b/lib/config.py @@ -351,6 +351,9 @@ class ConfigWriter: # per-instance checks for instance_name in data.instances: instance = data.instances[instance_name] + if instance.name != instance_name: + result.append("instance '%s' is indexed by wrong name '%s'" % + (instance.name, instance_name)) if instance.primary_node not in data.nodes: result.append("instance '%s' has invalid primary node '%s'" % (instance_name, instance.primary_node)) @@ -416,7 +419,10 @@ class ConfigWriter: (mc_now, mc_max)) # node checks - for node in data.nodes.values(): + for node_name, node in data.nodes.items(): + if node.name != node_name: + result.append("Node '%s' is indexed by wrong name '%s'" % + (node.name, node_name)) if [node.master_candidate, node.drained, node.offline].count(True) > 1: result.append("Node %s state is invalid: master_candidate=%s," " drain=%s, offline=%s" % -- GitLab