Skip to content
Snippets Groups Projects
Verified Commit 690ef195 authored by Karel van Klink's avatar Karel van Klink :smiley_cat:
Browse files

split off generic code for provisioning service and sending pp request

parent d0cd532b
No related branches found
No related tags found
1 merge request!12Add sites, and add integration of IPtrunks and routers with LSO deployment
...@@ -4,6 +4,7 @@ import logging ...@@ -4,6 +4,7 @@ import logging
import requests import requests
from orchestrator import inputstep from orchestrator import inputstep
from orchestrator.config.assignee import Assignee from orchestrator.config.assignee import Assignee
from orchestrator.domain.lifecycle import SubscriptionModel
from orchestrator.forms import FormPage, ReadOnlyField from orchestrator.forms import FormPage, ReadOnlyField
from orchestrator.forms.validators import Accept, Label, LongText from orchestrator.forms.validators import Accept, Label, LongText
from orchestrator.types import UUIDstr, State from orchestrator.types import UUIDstr, State
...@@ -15,24 +16,16 @@ from gso.products.product_types.device import DeviceProvisioning ...@@ -15,24 +16,16 @@ from gso.products.product_types.device import DeviceProvisioning
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
def provision_node( def _send_request(parameters: dict, process_id: UUIDstr):
node_subscription_params: DeviceProvisioning,
process_id: UUIDstr,
dry_run: bool = True):
oss = settings.load_oss_params() oss = settings.load_oss_params()
pp_params = oss.PROVISIONING_PROXY pp_params = oss.PROVISIONING_PROXY
assert pp_params assert pp_params
device_params = node_subscription_params.device
callback_url = f'{settings.load_oss_params().GENERAL.public_hostname}' \ callback_url = f'{settings.load_oss_params().GENERAL.public_hostname}' \
f'/api/processes/{process_id}/resume' 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 = { parameters.update({'callback': callback_url})
'callback': callback_url,
'dry_run': dry_run,
'device': json.loads(json_dumps(node_subscription_params))
}
post_request = requests.post( post_request = requests.post(
f'{pp_params.scheme}://{pp_params.api_base}/api/device', f'{pp_params.scheme}://{pp_params.api_base}/api/device',
...@@ -42,6 +35,18 @@ def provision_node( ...@@ -42,6 +35,18 @@ def provision_node(
raise AssertionError(post_request.text) 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')) @inputstep('Await provisioning proxy results', assignee=Assignee('SYSTEM'))
def await_pp_results() -> State: def await_pp_results() -> State:
class ProvisioningResultPage(FormPage): class ProvisioningResultPage(FormPage):
......
...@@ -123,7 +123,7 @@ def initialize_subscription( ...@@ -123,7 +123,7 @@ def initialize_subscription(
@step('Provision device [DRY RUN]') @step('Provision device [DRY RUN]')
def provision_device_dry(subscription: DeviceProvisioning, def provision_device_dry(subscription: DeviceProvisioning,
process_id: UUIDstr) -> State: process_id: UUIDstr) -> State:
provisioning_proxy.provision_node( provisioning_proxy.provision_service(
subscription, subscription,
process_id process_id
) )
...@@ -134,7 +134,7 @@ def provision_device_dry(subscription: DeviceProvisioning, ...@@ -134,7 +134,7 @@ def provision_device_dry(subscription: DeviceProvisioning,
@step('Provision device [FOR REAL]') @step('Provision device [FOR REAL]')
def provision_device_real(subscription: DeviceProvisioning, def provision_device_real(subscription: DeviceProvisioning,
process_id: UUIDstr) -> State: process_id: UUIDstr) -> State:
provisioning_proxy.provision_node( provisioning_proxy.provision_service(
subscription, subscription,
process_id, process_id,
False # No dry run this time, run it for real False # No dry run this time, run it for real
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment