

@atomic.action_timer('nova.find_host_to_migrate')
def _find_host_to_migrate(self, server):
    'Find a compute node for live migration.\n\n        :param server: Server object\n        '
    server_admin = self.admin_clients('nova').servers.get(server.id)
    host = getattr(server_admin, 'OS-EXT-SRV-ATTR:host')
    az_name = getattr(server_admin, 'OS-EXT-AZ:availability_zone')
    az = None
    for a in self.admin_clients('nova').availability_zones.list():
        if (az_name == a.zoneName):
            az = a
            break
    try:
        new_host = random.choice([key for (key, value) in six.iteritems(az.hosts) if ((key != host) and (value['nova-compute']['available'] is True))])
        return new_host
    except IndexError:
        raise exceptions.InvalidHostException('No valid host found to migrate')

dataset/ETHPy150Open openstack/rally/rally/plugins/openstack/scenarios/nova/utils.py NovaScenario._find_host_to_migrate/original