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
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):
......
......@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment