Skip to content
Snippets Groups Projects
Commit b0844547 authored by Erik Reid's avatar Erik Reid
Browse files

call into provisioning_proxy module

parent 2cc0f000
No related branches found
No related tags found
1 merge request!5Device workflows
...@@ -6,7 +6,10 @@ import requests ...@@ -6,7 +6,10 @@ import requests
def provision_node( def provision_node(
node_subscription_params: DeviceBlock, node_subscription_params: DeviceBlock,
pp_params=settings.OSSParams.PROVISIONING_PROXY): dry_run: bool = False):
oss = settings.load_oss_params()
pp_params = oss.PROVISIONING_PROXY
assert pp_params
r = requests.get( r = requests.get(
f'https://{pp_params.api_base}' f'https://{pp_params.api_base}'
f'/api/version', f'/api/version',
......
...@@ -12,7 +12,7 @@ from orchestrator.workflows.steps import resync, set_status ...@@ -12,7 +12,7 @@ from orchestrator.workflows.steps import resync, set_status
from orchestrator.workflows.steps import store_process_subscription from orchestrator.workflows.steps import store_process_subscription
from orchestrator.workflows.utils import wrap_create_initial_input_form from orchestrator.workflows.utils import wrap_create_initial_input_form
from geant_service_orchestrator.products.product_types import device from geant_service_orchestrator.products.product_types import device
from geant_service_orchestrator.services import ipam from geant_service_orchestrator.services import ipam, provisioning_proxy
def initial_input_form_generator(product_name: str) -> FormGenerator: def initial_input_form_generator(product_name: str) -> FormGenerator:
...@@ -100,29 +100,35 @@ def provision_device_dry( ...@@ -100,29 +100,35 @@ def provision_device_dry(
ts_address: str, ts_address: str,
ts_port: str ts_port: str
) -> State: ) -> State:
import ansible_runner # import ansible_runner
#
r = ansible_runner.run( # r = ansible_runner.run(
private_data_dir="/opt/geant-gap-ansible", # private_data_dir="/opt/geant-gap-ansible",
playbook="base_config.yaml", # playbook="base_config.yaml",
inventory=subscription.device.fqdn, # inventory=subscription.device.fqdn,
extravars={ # extravars={
"lo_ipv4_address": str(subscription.device.lo_ipv4_address), # "lo_ipv4_address": str(subscription.device.lo_ipv4_address),
"lo_ipv6_address": str(subscription.device.lo_ipv6_address), # "lo_ipv6_address": str(subscription.device.lo_ipv6_address),
"lo_iso_address": subscription.device.lo_iso_address, # "lo_iso_address": subscription.device.lo_iso_address,
"snmp_location": subscription.device.snmp_location, # "snmp_location": subscription.device.snmp_location,
"si_ipv4_network": str(subscription.device.si_ipv4_network), # "si_ipv4_network": str(subscription.device.si_ipv4_network),
"lt_ipv4_network": str(subscription.device.ias_lt_ipv4_network), # "lt_ipv4_network": str(subscription.device.ias_lt_ipv4_network),
"lt_ipv6_network": str(subscription.device.ias_lt_ipv6_network), # "lt_ipv6_network": str(subscription.device.ias_lt_ipv6_network),
"site_country_code": subscription.device.site_country_code, # "site_country_code": subscription.device.site_country_code,
"verb": "deploy", # "verb": "deploy",
}, # },
) # )
out = r.stdout.read() # out = r.stdout.read()
out_splitted = out.splitlines() # out_splitted = out.splitlines()
# if r.rc != 0: # # if r.rc != 0:
# raise ValueError("Ansible has failed") # # raise ValueError("Ansible has failed")
return {"dry_run_output": out_splitted, "return_code": r.rc} # return {"dry_run_output": out_splitted, "return_code": r.rc}
provisioning_proxy.provision_node(
node_subscription_params=subscription,
dry_run=True)
# TODO: figure out what to return when we are suspending & waiting
# for the provisioning-proxy to call back
return {"return_code": 0}
@inputstep("Confirm step", assignee="CHANGES") @inputstep("Confirm step", assignee="CHANGES")
...@@ -142,28 +148,33 @@ def provision_device_real( ...@@ -142,28 +148,33 @@ def provision_device_real(
ts_address: str, ts_address: str,
ts_port: str ts_port: str
) -> State: ) -> State:
import ansible_runner # import ansible_runner
#
r = ansible_runner.run( # r = ansible_runner.run(
private_data_dir="/opt/geant-gap-ansible", # private_data_dir="/opt/geant-gap-ansible",
playbook="base_config.yaml", # playbook="base_config.yaml",
inventory=subscription.device.fqdn, # inventory=subscription.device.fqdn,
extravars={ # extravars={
"lo_ipv4_address": str(subscription.device.lo_ipv4_address), # "lo_ipv4_address": str(subscription.device.lo_ipv4_address),
"lo_ipv6_address": str(subscription.device.lo_ipv6_address), # "lo_ipv6_address": str(subscription.device.lo_ipv6_address),
"lo_iso_address": subscription.device.lo_iso_address, # "lo_iso_address": subscription.device.lo_iso_address,
"snmp_location": subscription.device.snmp_location, # "snmp_location": subscription.device.snmp_location,
"si_ipv4_network": str(subscription.device.si_ipv4_network), # "si_ipv4_network": str(subscription.device.si_ipv4_network),
"lt_ipv4_network": str(subscription.device.ias_lt_ipv4_network), # "lt_ipv4_network": str(subscription.device.ias_lt_ipv4_network),
"lt_ipv6_network": str(subscription.device.ias_lt_ipv6_network), # "lt_ipv6_network": str(subscription.device.ias_lt_ipv6_network),
"site_country_code": subscription.device.site_country_code, # "site_country_code": subscription.device.site_country_code,
"verb": "deploy", # "verb": "deploy",
}, # },
) # )
out = r.stdout.read() # out = r.stdout.read()
out_splitted = out.splitlines() # out_splitted = out.splitlines()
#
return {"real_run_output": out_splitted, "return_code": r.rc} # return {"real_run_output": out_splitted, "return_code": r.rc}
provisioning_proxy.provision_node(
node_subscription_params=subscription)
# TODO: figure out what to return when we are suspending & waiting
# for the provisioning-proxy to call back
return {"return_code": 0}
@workflow( @workflow(
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment