def list_nodes(call=None):
    '''
    Return a list of the VMs

    id (str)
    image (str)
    size (str)
    state (str)
    private_ips (list)
    public_ips (list)

    '''
    if call == 'action':
        raise SaltCloudSystemExit(
            'The list_nodes function must be called '
            'with -f or --function.'
        )

    providers = __opts__.get('providers', {})

    ret = {}
    providers_to_check = [_f for _f in [cfg.get('libvirt') for cfg in six.itervalues(providers)] if _f]
    for provider in providers_to_check:
        conn = __get_conn(provider['url'])
        domains = conn.listAllDomains()
        for domain in domains:
            data = {
                'id': domain.UUIDString(),
                'image': '',
                'size': '',
                'state': VIRT_STATE_NAME_MAP[domain.state()[0]],
                'private_ips': [],
                'public_ips': get_domain_ips(domain, libvirt.VIR_DOMAIN_INTERFACE_ADDRESSES_SRC_LEASE)}
            # TODO: Annoyingly name is not guaranteed to be unique, but the id will not work in other places
            ret[domain.name()] = data

    return ret
def list_nodes ( call = None ) : if call == 'action' : raise SaltCloudSystemExit ( 'The list_nodes function must be called ' 'with -f or --function.' ) providers = __opts__ . get ( 'providers' , { } ) ret = { } providers_to_check = [ _f for _f in [ cfg . get ( 'libvirt' ) for cfg in six . itervalues ( providers ) ] if _f ] for provider in providers_to_check : conn = __get_conn ( provider [ 'url' ] ) domains = conn . listAllDomains ( ) for domain in domains : data = { 'id' : domain . UUIDString ( ) , 'image' : '' , 'size' : '' , 'state' : VIRT_STATE_NAME_MAP [ domain . state ( ) [ 0 ] ] , 'private_ips' : [ ] , 'public_ips' : get_domain_ips ( domain , libvirt . VIR_DOMAIN_INTERFACE_ADDRESSES_SRC_LEASE ) } ret [ domain . name ( ) ] = data return ret
Return a list of the VMs

    id (str)
    image (str)
    size (str)
    state (str)
    private_ips (list)
    public_ips (list)