This function will be called from another process when building the
    providers map.

def run_parallel_map_providers_query(data, queue=None):
    '''
    This function will be called from another process when building the
    providers map.
    '''
    salt.utils.crypt.reinit_crypto()

    cloud = Cloud(data['opts'])
    try:
        with salt.utils.context.func_globals_inject(
            cloud.clouds[data['fun']],
            __active_provider_name__=':'.join([
                data['alias'],
                data['driver']
            ])
        ):
            return (
                data['alias'],
                data['driver'],
                salt.utils.data.simple_types_filter(
                    cloud.clouds[data['fun']]()
                )
            )
    except Exception as err:
        log.debug(
            'Failed to execute \'%s()\' while querying for running nodes: %s',
            data['fun'], err, exc_info_on_loglevel=logging.DEBUG
        )
        # Failed to communicate with the provider, don't list any nodes
        return data['alias'], data['driver'], ()