From: Thierry Parmentelat Date: Sat, 6 Dec 2008 23:14:36 +0000 (+0000) Subject: checking tags: did it again X-Git-Tag: tests-4.3-0~44 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=e68f4b4c6a18e52d95b9b1f1ac0039737eb4fc71;p=tests.git checking tags: did it again --- diff --git a/system/plcsh-stress-test.py b/system/plcsh-stress-test.py index 6e14cd3..f8bffe8 100755 --- a/system/plcsh-stress-test.py +++ b/system/plcsh-stress-test.py @@ -926,54 +926,47 @@ class Test: node_fields = random_node(node_types,boot_states) self.api.UpdateNode(node_id, node_fields) + node = self.api.GetNodes([node_id])[0] + + # Add to a random set of node groups + nodegroup_ids = random.sample(self.nodegroup_ids, randint(0, len(self.nodegroup_ids))) + for nodegroup_id in (set(nodegroup_ids) - set(node['nodegroup_ids'])): + nodegroup = self.api.GetNodeGroups([nodegroup_id])[0] + tagname = nodegroup['tagname'] + node_tags = self.api.GetNodeTags({'node_id':node_id,'tagname':tagname}) + if not node_tags: + self.api.AddNodeTag(node_id,tagname,'yes') + else: + node_tag=node_tags[0] + self.api.UpdateNodeTag(node_tag['node_tag_id'],'yes') + for nodegroup_id in (set(node['nodegroup_ids']) - set(nodegroup_ids)): + nodegroup = self.api.GetNodeGroups([nodegroup_id])[0] + tagname = nodegroup['tagname'] + node_tags = self.api.GetNodeTags({'node_id':node_id,'tagname':tagname}) + if not node_tags: + self.api.AddNodeTag(node_id,tagname,'no') + else: + node_tag=node_tags[0] + self.api.UpdateNodeTag(node_tag['node_tag_id'],'no') + if self.check: - # for testing node arch - check=node_fields.copy() - columns=node_fields.keys() - for tagname in tag_fields: - check.pop(tagname) - columns.remove(tagname) - - node = self.api.GetNodes([node_id],columns)[0] - if dict(node) != check: - raise Exception,'Unexpected result in GetNodes() %r vs %r'%(node,check) - + # Check node + node = self.api.GetNodes([node_id])[0] + for field in node_fields: + if field not in tag_fields: + if node[field] != node_fields[field]: + raise Exception, "Unexpected field %s in node after GetNodes()"%field + assert set(nodegroup_ids) == set(node['nodegroup_ids']) + print 'WARNING: skipping updatenode with tags as this is not implemented yet' -# # again when fetching 'arch' explicitly -# node = self.api.GetNodes([node_id],columns+tag_fields)[0] -# if dict(node) != node_fields: -# raise Exception,"Unexpected result in GetNodes() with tags %r vs %r"%(node,node_fields) + # again when fetching 'arch' explicitly + node2 = self.api.GetNodes([node_id],node_fields.keys())[0] + for field in node_fields: + if node2[field] != node_fields[field]: + raise Exception, "Unexpected field %s in node after GetNodes(tags)"%field - # Add to a random set of node groups - nodegroup_ids = random.sample(self.nodegroup_ids, randint(0, len(self.nodegroup_ids))) - for nodegroup_id in (set(nodegroup_ids) - set(node['nodegroup_ids'])): - nodegroup = self.api.GetNodeGroups([nodegroup_id])[0] - tagname = nodegroup['tagname'] - node_tags = self.api.GetNodeTags({'node_id':node_id,'tagname':tagname}) - if not node_tags: - self.api.AddNodeTag(node_id,tagname,'yes') - else: - node_tag=node_tags[0] - self.api.UpdateNodeTag(node_tag['node_tag_id'],'yes') - for nodegroup_id in (set(node['nodegroup_ids']) - set(nodegroup_ids)): - nodegroup = self.api.GetNodeGroups([nodegroup_id])[0] - tagname = nodegroup['tagname'] - node_tags = self.api.GetNodeTags({'node_id':node_id,'tagname':tagname}) - if not node_tags: - self.api.AddNodeTag(node_id,tagname,'no') - else: - node_tag=node_tags[0] - self.api.UpdateNodeTag(node_tag['node_tag_id'],'no') - - if self.check: - # Check node - node = self.api.GetNodes([node_id])[0] - for field in node_fields: - assert node[field] == node_fields[field] - assert set(nodegroup_ids) == set(node['nodegroup_ids']) - - if self.verbose: - print "Updated node", node_id + if self.verbose: + print "Updated node", node_id def DeleteNodes(self): """