diff --git a/gso/services/provisioning_proxy.py b/gso/services/provisioning_proxy.py index 5a22463875b469aa1404fe8e090ba84e879bcd89..0c4dbb1c54dea0ece719eccdc612c9f6e61fa020 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()