From 7b3e61ed1e72081d6c2ac0f6f157163c4470648b Mon Sep 17 00:00:00 2001 From: Karel van Klink <karel.vanklink@geant.org> Date: Wed, 28 Jun 2023 16:41:38 +0200 Subject: [PATCH] make it impossible to skip past a provisioning proxy step without run results --- gso/services/provisioning_proxy.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/gso/services/provisioning_proxy.py b/gso/services/provisioning_proxy.py index 5a224638..0c4dbb1c 100644 --- a/gso/services/provisioning_proxy.py +++ b/gso/services/provisioning_proxy.py @@ -14,6 +14,7 @@ from orchestrator.forms import FormPage, ReadOnlyField from orchestrator.forms.validators import Accept, Label, LongText from orchestrator.types import UUIDstr, State, strEnum from orchestrator.utils.json import json_dumps +from pydantic import validator from gso import settings from gso.products.product_types.device import DeviceProvisioning @@ -179,6 +180,13 @@ def await_pp_results(subscription: SubscriptionModel, pp_run_results: dict = None confirm: Accept = Accept('INCOMPLETE') + @validator('pp_run_results', allow_reuse=True, pre=True, always=True) + def run_results_must_be_given(cls, run_results): + if run_results is None: + raise ValueError('Run results may not be empty. ' + 'Wait for the provisioning proxy to finish.') + return run_results + result_page = yield ProvisioningResultPage return result_page.dict() -- GitLab