Exemple #1
0
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
Exemple #4
0
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
Exemple #6
0
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
Exemple #7
0
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
Exemple #8
0
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