Ajouter la capacité d'écrire le statut d'un job dans l'objet Parameters
Description
Durant la release 1, chaque script (traitement, vérification...) devait écrire dans un fichier output.json
tel que défini ici et implémenté dans l'objet OutputDataStructure.
Depuis la release/version 2, chaque job doit stocker le résultat (~= statut) dans l'attribut pipeline_status
.
Objectifs
Avant
from gpf_entrepot_toolbelt.orchestrator.models import OutputDataStructure
from script_x.core import run
# create output object
result_output = OutputDataStructure(executionId=parameters.executionId)
run_result = run(
work_dir=args.work_dir_path,
upload_dir_name=args.upload_dir_name,
[...]
)
result_output.status = (
Status.TECHNICAL_ERROR if run_result[0] >= 3 else Status(run_result[0])
)
result_output.failures = run_result[1]
# write result into output file
out_file = Path(args.work_dir_path, "output.json")
with out_file.open("w", encoding="UTF8") as wf:
wf.write(result_output.to_json())
Après
from os import getenv
params: GpfOrchestratorParameters = GpfOrchestratorParameters.from_json(in_json_path=Path(f"{getenv('GPF_WORK_DIR')}/parameters.json"))
run_result = run(
work_dir=args.work_dir_path,
upload_dir_name=args.upload_dir_name,
[...]
)
params.add_job_status = run_result
with Path(params.output_filename).open("w", encoding="UTF8") as wf:
wf.write(params.to_json(sort_keys=True, indent=4))
A noter qu'on peut aussi imaginer d'utiliser un setter sur l'attribut pipeline_status
qui soit en mesure de gérer l'ajout au dictionnaire pré-existant.
Ressources
Ticket upstream : https://jira.worldline.com/browse/IGNGPF-1065
@oslandia : qui pour se charger de ce ticket ?