diff --git a/geant_service_orchestrator/workflows/device/create_device.py b/geant_service_orchestrator/workflows/device/create_device.py index 6a4f29f8d4c722d840b3630137339561bfe470e4..ab899f22dd105b86e9084d950788d415024ee34c 100644 --- a/geant_service_orchestrator/workflows/device/create_device.py +++ b/geant_service_orchestrator/workflows/device/create_device.py @@ -88,8 +88,8 @@ def initialize_subscription( return {"subscription": subscription} -@step("Provision device") -def provision_device( +@step("Provision device [DRY RUN]") +def provision_device_dry( subscription: DeviceProvisioning, fqdn: str, ts_address: str, ts_port: str ) -> State: import ansible_runner @@ -114,7 +114,19 @@ def provision_device( out_splitted = out.splitlines() return {"output": out_splitted} - # return {"subscription": subscription, "status": "ciao", "pippo": "pluto"} + + +@step("Confirm provisioning") +def confirmation_form() -> FormGenerator: + class ConfirmActionForm(FormPage): + class Config: + title = "Confirm your action" + + choice: bool + + user_input = yield ConfirmActionForm + + return user_input.dict() @workflow( @@ -131,7 +143,7 @@ def create_device(): >> get_info_from_ipam >> get_snmp_info >> initialize_subscription - >> provision_device + >> provision_device_dry >> set_status(SubscriptionLifecycle.ACTIVE) >> resync >> done