'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'
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) :
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()