Ajout mécanisme de vérification de la fin de téléchargement des graphes
Le ticket IGNGPF-2685 a remonté une instabilité des publications lorsque plusieurs pods sont présents.
En effet il est possible qu'un pod soit en train de télécharger les graphes sur le NAS-HA (partagé par tout les pods) mais qu'un autre pod considère que le téléchargement est terminé.
- Un pod est en cours de téléchargement du graphe : il a ajouté le fichier
<stored_data_id>.md5
et le téléchargement est en cours - Un pod vérifie la présence et le contenu du fichier
<stored_data_id>.md5
=> le hash est correct. Il considère que les graphes sont disponibles - Ce pod poursuit la publication
- Le service Road2 retourne une erreur car les fichiers ne sont pas encore téléchargés
En plus de la vérification du hash du fichier .md5 il est nécessaire d'ajouter un mécanisme de vérification du fin du téléchargement.
- Un pod vérifie si le fichier
<stored_data_id>.md5
est présent et que le hash est valide - Un téléchargement est nécessaire : un fichier
download_status.txt
est créé dans${ROAD2-GRAPH-DATA-DIR}/data/<stored_data_id>
- Le statut
DOWNLOADING
est écrit dans le fichier. - En fin de téléchargement, le fichier est modifié pour indiquer le statut
FINISHED
Pour les pods qui n'effectuent pas le téléchargement:
- Le pod vérifie si le fichier
<stored_data_id>.md5
est présent et que le hash est valide - Le téléchargement n'est pas nécessaire
- Le contenu du fichier
download_status.txt
est vérifié périodiquement (attente de une seconde entre chaque vérification) - Si le statut est
DOWNLOADING
on attend une seconde - Si le statut est
FINISHED
=> les données sont disponibles, on continue la publication