- # 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