Link Search Menu Expand Document

Mise à jour des arrêtés préfectoraux

Les APs sont mis à jour automatiquement et quotidiennement à partir des extractions Géorisques. Un script python exécute l’OCR sur les APs à 7am UTC et une tâche rake met à jour les APs de l’application de production à 9pm UTC.

Prérequis (si besoin de lancer les scripts manuellement)

Pour exécuter les scripts, les identifiants OVH, slack et Heroku sont nécessaires. Ils peuvent être récupérés via Resana sur demande à un responsable du projet.

Mise à jour de la liste des APs et OCR des APs

Un script python est exécuté quotidiennement via une tâche CRON de l’utilisateur root de la machine OVH data-tasks.

  • il télécharge le dump géorisques du matin
  • il génère les fichiers aps_all.csv, aps_idf.csv et aps_sample.csv dans le bucket OVH associé
  • il exécute l’OCR sur les nouveaux APs
  • il met à jour le statut OCR des APs dans les fichiers aps_all.csv, aps_idf.csv et aps_sample.csv.

Ce script est contenu dans le fichier scripts/update_ap.sh du dépôt data-tasks.

Pour l’exécuter manuellement ou dans un nouvel environnement :

  1. Cloner le dépôt data-tasks en local

    git clone https://github.com/Envinorma/data-tasks
    
  2. Avoir installé docker
  3. Construire l’image docker

    cd data-tasks
    docker build -t tasks .
    
  4. Exécuter le script (après avoir remplacé les 6 occurrences de REPLACE_ME par la valeur du secret associé.)
    docker run -it --rm\
      -e OVH_OS_TENANT_ID=REPLACE_ME\
      -e OVH_OS_TENANT_NAME=REPLACE_ME\
      -e OVH_OS_USERNAME=REPLACE_ME\
      -e OVH_OS_PASSWORD=REPLACE_ME\
      -e SLACK_AM_CHANNEL=REPLACE_ME\
      -e GEORISQUES_DATA_URL=REPLACE_ME\
      tasks\
      sh scripts/update_aps.sh
    

Mise à jour des APs dans l’application de production

Une tâche rake lib/tasks/update_aps.rake (dans l’application Envinorma) est exécutée pour mettre à jour les APs. Elle est programmée à 9pm UTC tous les jours via le Heroku Scheduler. Celle-ci exécute la tâche suivante, qui télécharge le fichier aps_all.csv de ce bucket OVH puis met à jour les APs en base de donnée.

DataManager.seed_aps(from_ovh: true)