Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(archive-output): add .7z archiving and unarchiving support for study outputs #2039

Draft
wants to merge 13 commits into
base: dev
Choose a base branch
from

Conversation

mabw-rte
Copy link
Contributor

@mabw-rte mabw-rte commented May 28, 2024

Context

In the continuity of ANT1549 and 1551 to use ".7z" format to archive studies, it is planned to do the same with simulations outputs.

Description

Ajout du support pour archiver les sorties de simulation au format "7z" (au lieu de "zip") et les désarchiver au format "7z" (en plus de "zip")

Cette PR modifie le format d'archivage des sorties afin d'utiliser le format "7z" au lieu du format "zip".
Pour l'archivage, on supporte à la fois le format "zip" et "7z" dans le but d'être rétrocompatible.

API

D'un point de vue de l'utilisateur de l'API, les endpoints impactés par cette PR sont les suivants :

  • POST /v1/studies/{uuid}/output : import d'une sortie dans l'étude.
    L'utilisateur peut utiliser le format "zip" ou "7z" pour l'import.
  • DELETE /v1/studies/{study_id}/outputs/{output_id}: suppression d'une sortie de l'étude.
    La suppression fonctionne maintenant pour les sorties archivées en "7z" en plus de celles archivées en "zip".
  • POST /v1/studies/{study_id}/outputs/{output_id}/_archive: archivage d'une sortie.
    Ce endpoint permet de démarrer une tâche d'archivage pour une sortie donnée.
    L'archivage se fait maintenant en "7z" au lieu de "zip".
  • POST /v1/studies/{study_id}/outputs/{output_id}/_unarchive: désarchivage d'une sortie.
    Ce endpoint permet de démarrer une tâche de désarchivage pour une sortie donnée.
    Le désarchivage fonctionne pour les sorties archivées en "7z" en plus de celles archivées en "zip".
  • POST /v1/launcher/run/{study_id} : lacement d'une simulation d'étude.
    La récupération de la sortie est actuellement au format ZIP.
    À l'avenir, il faudra prendre aussi en compte le format 7z (en attende d'une évolution du solver).

IHM frontend

Cette PR a un impact sur l'IHM frontend. Les changements suivants ont été effectués au niveau
de la liste des résultats :

  • Le bouton "Archiver" permet maintenant d'archiver une sortie en "7z" au lieu de "zip".
  • Le bouton "Désarchiver" permet de désarchiver une sortie archivée en "7z" en plus de celles archivées en "zip".

archive_unarchive_output

Services

Le service d'archivage automatique des études effectue également un archivage automatique des sorties au format "7z"
pour les variantes d'études.

@mabw-rte mabw-rte self-assigned this May 28, 2024
@laurent-laporte-pro laurent-laporte-pro force-pushed the feature/1550-output-7zip-archive branch from d1267ac to 4373026 Compare June 5, 2024 21:05

stopwatch.log_elapsed(lambda elapsed_time: logger.info(f"Copied output for {study_id} in {elapsed_time}s"))
fix_study_root(path_output)
output_full_name = extract_output_name(path_output, output_name)
extension = ".zip" if is_zipped else ""
path_output = path_output.rename(Path(path_output.parent, output_full_name + extension))

data = self.get(metadata, f"output/{output_full_name}", 1, use_cache=False)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Je pense qu'il y a une anomalie dans le if ci-dessous, on devrait plutôt avoir :

if data is None:
    self.delete_output(metadata, f"imported_output_{str(uuid4())}")
    raise BadOutputError("The output provided is not conform.")

Peux-tu faire un diagnostique et corriger ?

@laurent-laporte-pro
Copy link
Contributor

⚠ Une remarque : lorsqu'on récupère les résultats de simulation depuis le serveur de calcul (SLURM), on peut avoir des sorties compressées. Aujourd'hui, ces sorties compressées sont au format ZIP, mais à l'avenir, on pourrait avoir des archives au format 7z. Il faudra modifier cela dans la méthode import_output de StudyService. Il y aura une détection du format à corriger en ligne 1416 dans cette méthode. Il y a peut-être d'autres ajustements à faire… Est-ce pris en charge dans la PR #2013 ?

@laurent-laporte-pro laurent-laporte-pro changed the title feat(archive-output): use ".7z" format to archive outputs feat(archive-output): added 7z archiving and unarchiving support for study outputs Jun 6, 2024
@mabw-rte mabw-rte force-pushed the feature/1550-output-7zip-archive branch 2 times, most recently from 8a204ae to fc6ba45 Compare October 24, 2024 19:10
@mabw-rte mabw-rte force-pushed the feature/1550-output-7zip-archive branch from fc6ba45 to 3eae66e Compare October 25, 2024 08:54
@mabw-rte mabw-rte added enhancement New feature or request api REST API labels Oct 25, 2024
@mabw-rte mabw-rte changed the title feat(archive-output): added 7z archiving and unarchiving support for study outputs feat(archive-output): add .7z archiving and unarchiving support for study outputs Oct 25, 2024
@mabw-rte mabw-rte marked this pull request as draft October 25, 2024 09:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
api REST API back-end enhancement New feature or request size/L
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants