cloudfoundry-community / cloudfoundry-community/cf-python-client
Graceful continuation on NOT_FOUND
Nessuno ha ancora preso questa issue.
- Lingua principale
- Python
- Stelle
- 55
- Fork
- 54
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
Hi - We are using cf-python-client as part of a task which downloads each app-blob in turn. As we have tens of thousands of containers, this job takes 8-10 hours to complete.
The job is theoretically quite straightforward...
for app in cfClient.v3.apps:
space_name=app.space()['name']
org_name=app.space().organization()['name']
...
More often than not, during the running of this task, we'll encounter an error along the lines of...
cloudfoundry_client.errors.InvalidStatusCode: NOT_FOUND = {"errors": [{"detail": "Space not found", "title": "CF-ResourceNotFound", "code": 10010}]}
or
cloudfoundry_client.errors.InvalidStatusCode: NOT_FOUND = {"errors": [{"detail": "App not found", "title": "CF-ResourceNotFound", "code": 10010}]}
Given the number of orgs/spaces/apps we have in service, it is not too surprising that an app or space which was present at the start of the task is no longer around 6-8 hours later.
When we encounter an error like this we have no options but to restart the 8-10 hour task from the beginning again and hope that it manages to make it through without an error.
I was just wondering if there are any options to allow for more graceful continuation when objects are no longer found? This doesn't seem to be something that I can handle with a try: except: - Are there any options to make errors like this non-fatal?
Cheers!!
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia dall’iterazione di v3.apps e dalle chiamate app.space() e space.organization() mostrate nel report, quindi segui come vengono gestite le risposte InvalidStatusCode. Il lavoro è completato quando un NOT_FOUND per un’app o uno space può essere ignorato mentre la traversata di lunga durata continua, con un comportamento definito per le risorse rimanenti.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- python
- Ambito
- api
- Tipo di issue
- Funzionalità
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Da chiarire
- Idoneità per principianti
- 30/100