datosgobar / pydatajson

Librería para analizar, generar y validar metadatos en formato data.json.
https://pydatajson.readthedocs.io
MIT License
14 stars 9 forks source link

Spike: Se corta la restauración de datasets ante errores #286

Closed lrromero closed 4 years ago

lrromero commented 4 years ago

El código en cuestión:

def restaurar_andino(nodo_origen_url, nodo_destino_url, nodo_destino_apikey):
    """Restaura temas, organizaciones y datasets de un Andino a otro."""

    # toma los themes del nodo origen y los crea en el destino
    print("Copiando temas de origen a destino...")
    catalog_origen = DataJson(nodo_origen_url + "/data.json")
    catalog_origen.push_new_themes(nodo_destino_url, nodo_destino_apikey)
    print("Temas copiados.")

    # toma las organizaciones del nodo origen y las crea en el destino
    print("Copiando organizaciones de origen a destino...")
    organizations_origen = federation.get_organizations_from_ckan(nodo_origen_url)
    orgs_result = federation.push_organization_tree_to_ckan(
        nodo_destino_url, nodo_destino_apikey, organizations_origen)
    print("Organizaciones copiadas.")
    #print(orgs_result)

    # toma los datasets del nodo origen y los restaura en el destino
    print("Restaurando datasets...")
    pushed_datasets = catalog_origen.restore_catalog_to_ckan(
        nodo_origen_url, 
        nodo_destino_url, 
        nodo_destino_apikey
        #download_strategy=is_local_andino_resource
    )
    print("{} restaurados".format(len(pushed_datasets)))

    return pushed_datasets

Y corta la restauración si encuentra un error de timeout