Skip to content
Snippets Groups Projects
Commit d0cd532b authored by Simone Spinelli's avatar Simone Spinelli
Browse files

Some tox related stuff

parent d31c559c
No related branches found
No related tags found
1 merge request!12Add sites, and add integration of IPtrunks and routers with LSO deployment
...@@ -28,13 +28,15 @@ class IptrunkBlockInactive(ProductBlockModel, ...@@ -28,13 +28,15 @@ class IptrunkBlockInactive(ProductBlockModel,
iptrunk_sideA_ae_iface: Optional[str] = None iptrunk_sideA_ae_iface: Optional[str] = None
iptrunk_sideA_ae_geant_a_sid: Optional[str] = None iptrunk_sideA_ae_geant_a_sid: Optional[str] = None
iptrunk_sideA_ae_members: list[str] = Field(default_factory=list) iptrunk_sideA_ae_members: list[str] = Field(default_factory=list)
iptrunk_sideA_ae_members_description: list[str] = Field(default_factory=list) iptrunk_sideA_ae_members_description: list[str] \
= Field(default_factory=list)
# #
iptrunk_sideB_node: DeviceBlockInactive iptrunk_sideB_node: DeviceBlockInactive
iptrunk_sideB_ae_iface: Optional[str] = None iptrunk_sideB_ae_iface: Optional[str] = None
iptrunk_sideB_ae_geant_a_sid: Optional[str] = None iptrunk_sideB_ae_geant_a_sid: Optional[str] = None
iptrunk_sideB_ae_members: list[str] = Field(default_factory=list) iptrunk_sideB_ae_members: list[str] = Field(default_factory=list)
iptrunk_sideB_ae_members_description: list[str] = Field(default_factory=list) iptrunk_sideB_ae_members_description: list[str] \
= Field(default_factory=list)
class IptrunkBlockProvisioning(IptrunkBlockInactive, class IptrunkBlockProvisioning(IptrunkBlockInactive,
......
...@@ -26,13 +26,13 @@ def site_selector() -> list: ...@@ -26,13 +26,13 @@ def site_selector() -> list:
site_subscriptions = {} site_subscriptions = {}
for site_id, site_description in ( for site_id, site_description in (
SubscriptionTable.query.join(ProductTable) SubscriptionTable.query.join(ProductTable)
.filter( .filter(
ProductTable.product_type == "Site", ProductTable.product_type == "Site",
SubscriptionTable.status == "active", SubscriptionTable.status == "active",
) )
.with_entities(SubscriptionTable.subscription_id, .with_entities(SubscriptionTable.subscription_id,
SubscriptionTable.description) SubscriptionTable.description)
.all() .all()
): ):
site_subscriptions[str(site_id)] = site_description site_subscriptions[str(site_id)] = site_description
...@@ -142,6 +142,7 @@ def provision_device_real(subscription: DeviceProvisioning, ...@@ -142,6 +142,7 @@ def provision_device_real(subscription: DeviceProvisioning,
return {'subscription': subscription} return {'subscription': subscription}
@workflow( @workflow(
'Create device', 'Create device',
initial_input_form=wrap_create_initial_input_form( initial_input_form=wrap_create_initial_input_form(
......
...@@ -22,7 +22,6 @@ from orchestrator.forms.validators import Choice, choice_list ...@@ -22,7 +22,6 @@ from orchestrator.forms.validators import Choice, choice_list
from orchestrator.utils.json import json_dumps from orchestrator.utils.json import json_dumps
def device_selector(choice_value: str) -> list: def device_selector(choice_value: str) -> list:
device_subscriptions = {} device_subscriptions = {}
for device_id, device_description in ( for device_id, device_description in (
...@@ -93,8 +92,10 @@ def create_subscription(product: UUIDstr) -> State: ...@@ -93,8 +92,10 @@ def create_subscription(product: UUIDstr) -> State:
@step("Get information from IPAM ") @step("Get information from IPAM ")
def get_info_from_ipam(subscription: iptrunk.IptrunkInactive) -> State: def get_info_from_ipam(subscription: iptrunk.IptrunkInactive) -> State:
# TODO: get info about how these should be generated # TODO: get info about how these should be generated
subscription.iptrunk.iptrunk_ipv4_network = ipaddress.ip_network('192.168.255.0/31') subscription.iptrunk.iptrunk_ipv4_network \
subscription.iptrunk.iptrunk_ipv6_network = ipaddress.ip_network('fc00:798:255::150/126') = ipaddress.ip_network('192.168.255.0/31')
subscription.iptrunk.iptrunk_ipv6_network \
= ipaddress.ip_network('fc00:798:255::150/126')
return {"subscription": subscription} return {"subscription": subscription}
...@@ -156,14 +157,14 @@ def provision_iptrunk_dry( ...@@ -156,14 +157,14 @@ def provision_iptrunk_dry(
subscription: iptrunk.IptrunkProvisioning, subscription: iptrunk.IptrunkProvisioning,
) -> 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="iptrunks.yaml", playbook = "iptrunks.yaml",
inventory= str(subscription.iptrunk.iptrunk_sideA_node.device_fqdn +"\n"+ inventory = str(subscription.iptrunk.iptrunk_sideA_node.device_fqdn +"\n"+
subscription.iptrunk.iptrunk_sideB_node.device_fqdn+"\n"), subscription.iptrunk.iptrunk_sideB_node.device_fqdn+"\n"),
extravars={ extravars = {
"verb": "compile", "verb": "deploy",
"wfo_trunk_json":json_dumps(subscription), "wfo_trunk_json":json_dumps(subscription),
"config_object":"trunk_interface", "config_object":"trunk_interface",
}, },
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment