X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;ds=sidebyside;f=system%2FTestPlc.py;h=095762ab2f68833ba4051723aae21f4893241a5f;hb=070ac7cd04e9258f40fba3757c809388f60bdb55;hp=1c3cb7cfed6b23eb8c1208d37702e079b2964c34;hpb=0624e57024b81944ff321677f8c22e83f2433241;p=tests.git diff --git a/system/TestPlc.py b/system/TestPlc.py index 1c3cb7c..095762a 100644 --- a/system/TestPlc.py +++ b/system/TestPlc.py @@ -72,7 +72,8 @@ class TestPlc: 'check_initscripts', 'check_tcp',SEP, 'force_gather_logs', 'force_kill_qemus', 'force_record_tracker','force_free_tracker' ] other_steps = [ 'stop_all_vservers','fresh_install', 'cache_rpm', 'stop', SEP, - 'clean_sites', 'clean_nodes', 'clean_slices', 'clean_keys', SEP, + 'clean_initscripts', 'clean_sites', 'clean_nodes', + 'clean_slices', 'clean_keys', SEP, 'show_boxes', 'list_all_qemus', 'list_qemus', SEP, 'db_dump' , 'db_restore', ' cleanup_tracker', 'standby_1 through 20' @@ -417,12 +418,40 @@ class TestPlc: groups_dict[nodegroupname].append(test_node.name()) auth=self.auth_root() for (nodegroupname,group_nodes) in groups_dict.iteritems(): - try: - self.apiserver.GetNodeGroups(auth,{'name':nodegroupname})[0] - except: - self.apiserver.AddNodeGroup(auth,{'name':nodegroupname}) - for node in group_nodes: - self.apiserver.AddNodeToNodeGroup(auth,node,nodegroupname) + 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}) + 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, + 'category':'test', + 'min_role_id':10}) + # create nodegroup + nodegroups = self.apiserver.GetNodeGroups (auth, {'groupname':nodegroupname}) + if nodegroups: + print 'nodegroup',nodegroupname,'already exists' + else: + self.apiserver.AddNodeGroup(auth, + {'groupname': nodegroupname, + 'node_tag_type_id': tag_type_id, + 'value': 'yes'}) + # set node tag on all nodes, value='yes' + 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 def all_hostnames (self) : @@ -556,6 +585,17 @@ class TestPlc: self.apiserver.AddInitScript(self.auth_root(),initscript['initscript_fields']) return True + def clean_initscripts (self): + for initscript in self.plc_spec['initscripts']: + initscript_name = initscript['initscript_fields']['name'] + print('Attempting to delete %s in plc %s'%(initscript_name,self.plc_spec['name'])) + try: + self.apiserver.DeleteInitScript(self.auth_root(),initscript_name) + print initscript_name,'deleted' + except: + print 'deletion went wrong - probably did not exist' + return True + def slices (self): return self.do_slices()