From: Thierry Parmentelat Date: Fri, 23 May 2008 15:17:01 +0000 (+0000) Subject: api is smarter X-Git-Tag: tests-4.3-0~177 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=88898454d7af230b0bab627294e3aa769f1a4e1f;p=tests.git api is smarter --- diff --git a/system/TestPlc.py b/system/TestPlc.py index 095762a..ca5045c 100644 --- a/system/TestPlc.py +++ b/system/TestPlc.py @@ -420,15 +420,14 @@ class TestPlc: for (nodegroupname,group_nodes) in groups_dict.iteritems(): print 'nodegroups:','dealing with nodegroup',nodegroupname,'on nodes',group_nodes # first, check if the nodetagtype is here - tag_types = self.apiserver.GetNodeTagTypes(auth,{'name':nodegroupname}) + tag_types = self.apiserver.GetNodeTagTypes(auth,{'tagname':nodegroupname}) if tag_types: tag_type_id = tag_types[0]['node_tag_type_id'] print 'node-tag-type',nodegroupname,'already exists' else: tag_type_id = self.apiserver.AddNodeTagType(auth, - {'name':nodegroupname, - 'description': - 'for nodegroup %s'%nodegroupname, + {'tagname':nodegroupname, + 'description': 'for nodegroup %s'%nodegroupname, 'category':'test', 'min_role_id':10}) # create nodegroup @@ -439,20 +438,28 @@ class TestPlc: self.apiserver.AddNodeGroup(auth, {'groupname': nodegroupname, 'node_tag_type_id': tag_type_id, - 'value': 'yes'}) + 'tagvalue': 'yes'}) # set node tag on all nodes, value='yes' + overall = True for nodename in group_nodes: - # check if already set - # xxx need node_id - need improvement in the API - node_id = self.apiserver.GetNodes(auth,nodename)[0]['node_id'] - node_tag = self.apiserver.GetNodeTags(auth, - {'node_id':node_id, - 'node_tag_type_id':tag_type_id}) - if node_tag: - print 'node',nodename,'already has tag',nodegroupname - else: - self.apiserver.AddNodeTag(auth, node_id, nodegroupname,"yes") - return True + try: + self.apiserver.AddNodeTag(auth, nodename, nodegroupname, "yes") + except: + print 'node',nodename,'seems to already have tag',nodegroupname + # check anyway + try: + expect_yes = self.apiserver.GetNodeTags( + auth, + {'hostname':nodename, + 'tagname':nodegroupname}, + ['tagvalue'])[0]['tagvalue'] + if expect_yes != "yes": + print 'Mismatch node tag on node',nodename,'got',expect_yes + overall=False + except: + print 'Cannot find tag',nodegroupname,'on node',nodename + overall = False + return overall def all_hostnames (self) : hostnames = []