diff --git a/gso/services/provisioning_proxy.py b/gso/services/provisioning_proxy.py index fb68c6d47167c250854250eac0a843abe4c93e84..f236d30f427b58819f020b1820ad822a8fd81407 100644 --- a/gso/services/provisioning_proxy.py +++ b/gso/services/provisioning_proxy.py @@ -4,6 +4,7 @@ import logging import requests from orchestrator import inputstep from orchestrator.config.assignee import Assignee +from orchestrator.domain.lifecycle import SubscriptionModel from orchestrator.forms import FormPage, ReadOnlyField from orchestrator.forms.validators import Accept, Label, LongText from orchestrator.types import UUIDstr, State @@ -15,24 +16,16 @@ from gso.products.product_types.device import DeviceProvisioning logger = logging.getLogger(__name__) -def provision_node( - node_subscription_params: DeviceProvisioning, - process_id: UUIDstr, - dry_run: bool = True): +def _send_request(parameters: dict, process_id: UUIDstr): oss = settings.load_oss_params() pp_params = oss.PROVISIONING_PROXY assert pp_params - device_params = node_subscription_params.device callback_url = f'{settings.load_oss_params().GENERAL.public_hostname}' \ f'/api/processes/{process_id}/resume' - logger.debug(f'[disabled] provisioning node {device_params}') + logger.debug(f'[provisioning proxy] provisioning for process {process_id}') - parameters = { - 'callback': callback_url, - 'dry_run': dry_run, - 'device': json.loads(json_dumps(node_subscription_params)) - } + parameters.update({'callback': callback_url}) post_request = requests.post( f'{pp_params.scheme}://{pp_params.api_base}/api/device', @@ -42,6 +35,18 @@ def provision_node( raise AssertionError(post_request.text) +def provision_service( + subscription: SubscriptionModel, + process_id: UUIDstr, + dry_run: bool = True): + parameters = { + 'dry_run': dry_run, + 'subscription': json.loads(json_dumps(subscription)) + } + + _send_request(parameters, process_id) + + @inputstep('Await provisioning proxy results', assignee=Assignee('SYSTEM')) def await_pp_results() -> State: class ProvisioningResultPage(FormPage): diff --git a/gso/workflows/device/create_device.py b/gso/workflows/device/create_device.py index 40a03c900c28c42ced40e030d1dbe643630718b3..640c5297d1567d1871d385bf9905516c6982b9d6 100644 --- a/gso/workflows/device/create_device.py +++ b/gso/workflows/device/create_device.py @@ -123,7 +123,7 @@ def initialize_subscription( @step('Provision device [DRY RUN]') def provision_device_dry(subscription: DeviceProvisioning, process_id: UUIDstr) -> State: - provisioning_proxy.provision_node( + provisioning_proxy.provision_service( subscription, process_id ) @@ -134,7 +134,7 @@ def provision_device_dry(subscription: DeviceProvisioning, @step('Provision device [FOR REAL]') def provision_device_real(subscription: DeviceProvisioning, process_id: UUIDstr) -> State: - provisioning_proxy.provision_node( + provisioning_proxy.provision_service( subscription, process_id, False # No dry run this time, run it for real