def _federation_indicators(catalog, central_catalog,
                           identifier_search=False):
    """Cuenta la cantidad de datasets incluídos tanto en la lista
    'catalogs' como en el catálogo central, y genera indicadores a partir
    de esa información.

    Args:
        catalog (dict): catálogo ya parseado
        central_catalog (str o dict): ruta a catálogo central, o un dict
            con el catálogo ya parseado
    """
    result = {
        'datasets_federados_cant': None,
        'datasets_federados_pct': None,
        'datasets_no_federados_cant': None,
        'datasets_federados_eliminados_cant': None,
        'distribuciones_federadas_cant': None,
        'datasets_federados_eliminados': [],
        'datasets_no_federados': [],
        'datasets_federados': [],

    }
    try:
        central_catalog = readers.read_catalog(central_catalog)
    except Exception as e:
        msg = u'Error leyendo el catálogo central: {}'.format(str(e))
        logger.error(msg)
        return result

    generator = FederationIndicatorsGenerator(central_catalog, catalog,
                                              id_based=identifier_search)
    result.update({
            'datasets_federados_cant':
            generator.datasets_federados_cant(),
            'datasets_no_federados_cant':
            generator.datasets_no_federados_cant(),
            'datasets_federados_eliminados_cant':
            generator.datasets_federados_eliminados_cant(),
            'datasets_federados_eliminados':
            generator.datasets_federados_eliminados(),
            'datasets_no_federados':
            generator.datasets_no_federados(),
            'datasets_federados':
            generator.datasets_federados(),
            'datasets_federados_pct':
            generator.datasets_federados_pct(),
            'distribuciones_federadas_cant':
            generator.distribuciones_federadas_cant()
        })
    return result