def get_server_status_dict_host(authTokenId, novaUrl, server, host_id): '''Returns the value of the following items from a Server Details: task_state: server['OS-EXT-STS:task_state'] vm_state: server['OS-EXT-STS:vm_state'] power_state = server['OS-EXT-STS:power_state'] host = server['OS-EXT-SRV-ATTR:host'] health_value = server['health_status']['health_value'] ''' serverStatus = dict() for i in range(5): try: responseTuple = novaUtils.showServer(novaUrl, authTokenId, server['id'], host_id) if responseTuple and responseTuple[1] and\ 'server' in responseTuple[1]: break except ssl.SSLError, e: time.sleep(1) if i == 4: print 'SSLError: {0}'.format(e) raise e except HttpError, e: if e.code == 404: raise e else: if i == 4: print '{0}'.format(e) raise e else: continue
def get_migration_status(token, novaUrl, server, from_host, to_host): for i in range(5): try: response, body = \ novaUtils.showServer(novaUrl, token, server['id']) if response and body: break except ssl.SSLError as e: print('SSLError: {0}'.format(e.body)) time.sleep(1) if i == 4: raise e trace = 'vm_state:{0} task_state:{1} power_state:{2} host:{3} health:{4}' if body and 'server' in body: server = body['server'] vm_state = server['OS-EXT-STS:vm_state'] task_state = server['OS-EXT-STS:task_state'] power_state = server['OS-EXT-STS:power_state'] host = server['OS-EXT-SRV-ATTR:host'] health = server['health_status']['health_value'] print(trace.format(vm_state, task_state, power_state, host, health)) if vm_state == 'error': return 'error' elif task_state == None: if vm_state == 'active': if health == 'OK': if power_state == 1: if host != from_host: return 'success' else: return 'failed' return 'waiting'
def get_server_host_status_dict(authTokenId, novaUrl, server): '''Returns the value of the following items from a Server Details: task_state: server['OS-EXT-STS:task_state'] vm_state: server['OS-EXT-STS:vm_state'] power_state = server['OS-EXT-STS:power_state'] host = server['OS-EXT-SRV-ATTR:hypervisor_hostname'] health_value = server['health_status']['health_value'] ''' serverStatus = dict() for i in range(5): try: responseTuple = novaUtils.showServer(novaUrl, authTokenId, server['id']) if responseTuple and responseTuple[1] and\ 'server' in responseTuple[1]: break except ssl.SSLError as e: time.sleep(1) if i == 4: print('SSLError: {0}'.format(e)) raise e except HttpError as e: if e.code == 404: raise e else: if i == 4: print('{0}'.format(e)) raise e else: continue except Exception as err: if i == 4: print('{0}'.format(err)) raise err servDetail = None if responseTuple[1] and 'server' in responseTuple[1]: servDetail = responseTuple[1]['server'] if servDetail and 'OS-EXT-STS:task_state' in servDetail: serverStatus['task_state'] = servDetail['OS-EXT-STS:task_state'] if servDetail and 'OS-EXT-STS:vm_state' in servDetail: serverStatus['vm_state'] = servDetail['OS-EXT-STS:vm_state'] if servDetail and 'OS-EXT-STS:power_state' in servDetail: serverStatus['power_state'] = servDetail['OS-EXT-STS:power_state'] if servDetail and 'OS-EXT-SRV-ATTR:hypervisor_hostname' in servDetail: serverStatus['host'] = servDetail[ 'OS-EXT-SRV-ATTR:hypervisor_hostname'] #print servDetail; if servDetail and 'health_status' in servDetail: if servDetail['health_status'].get("health_value"): serverStatus['health_value'] = \ servDetail['health_status']['health_value'] else: serverStatus['health_value'] = "" return serverStatus
def get_migration_status(token, novaUrl, server, from_host, to_host): for i in range(5): try: response, body = \ novaUtils.showServer(novaUrl, token, server['id']) if response and body: break except ssl.SSLError, e: print 'SSLError: {0}'.format(e.body) time.sleep(1) if i == 4: raise e
def get_server(authTokenId, novaUrl, server_id, fields=['*ALL']): responseTuple = novaUtils.showServer(novaUrl, authTokenId, server_id) if responseTuple and 'server' in responseTuple[1]: if fields == ['*ALL']: return responseTuple[1]['server'] else: server = {} for key in fields: if key in responseTuple[1]['server']: server[key] = responseTuple[1]['server'][key] return server else: return None
def get_server_state(authTokenId, novaUrl, server, state_type='vm_state'): """Returns the value of the server's state for the given state-type. :param state_type: Alternate state-types: 'task_state', 'power_state' """ serverState = None for i in range(5): try: response, body = \ novaUtils.showServer(novaUrl, authTokenId, server['id']) if response and body: break except ssl.SSLError, e: print 'SSLError: {0}'.format(e.body) time.sleep(1) if i == 4: raise
def get_server_state_and_health(token, novaUrl, server, state_type='vm_state'): ''' Returns the value of the server's state for the give state-type and the value of the health_status :param state_type: Alternate state-types: 'task_state', 'power_state' ''' serverState = None health_status = dict() for i in range(5): try: response, body = \ novaUtils.showServer(novaUrl, token, server['id']) if response and body: break except ssl.SSLError, e: print 'SSLError: {0}'.format(e) time.sleep(1) if i == 4: raise e
def get_started_server_list(authTokenId, novaUrl, server_list): print 'Obtaining the Managed Started Server List...' started_servers = [] for server in server_list: print 'Getting Initial VM state...' showServerResponse, showServerResponseBodyJSON = \ novaUtils.showServer(novaUrl, authTokenId, server['id']) serverState = \ showServerResponseBodyJSON['server']['OS-EXT-STS:vm_state'] sys.stdout.write('Server state = {0} \n'.format(serverState)) sys.stdout.flush() if serverState == 'active': started_servers.append(server) elif serverState == 'stopped': Utils.send_start_server_request(authTokenId, novaUrl, server) started_servers.append(server) print 'Start initiated on all the Stopped VMs, Please wait.....' time.sleep(30) print 'The number of started servers in the started_server list is %d' % len(started_servers) return started_servers