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

Resolve conflicts

parent ef79a217
Branches
Tags
1 merge request!12Add sites, and add integration of IPtrunks and routers with LSO deployment
......@@ -92,6 +92,7 @@ def provision_device(
def provision_ip_trunk(subscription: IptrunkProvisioning,
process_id: UUIDstr,
config_object: str,
dry_run: bool = True):
"""
Function that provisions an IP trunk service using LSO.
......@@ -105,37 +106,56 @@ def provision_ip_trunk(subscription: IptrunkProvisioning,
parameters = {
'subscription': json.loads(json_dumps(subscription)),
'dry_run': dry_run,
'verb': '', # FIXME
'object': '' # FIXME
'verb': "deploy", # FIXME
'object': config_object # FIXME
}
_send_request('ip_trunk', parameters, process_id, CUDOperation.POST)
def modify_ip_trunk(old_subscription: Iptrunk,
new_subscription: Iptrunk,
process_id: UUIDstr,
dry_run: bool = True):
#def modify_ip_trunk(old_subscription: Iptrunk,
# new_subscription: Iptrunk,
# process_id: UUIDstr,
# dry_run: bool = True):
# """
# Function that modifies an existing IP trunk subscription using LSO.
#
# :param :class:`Iptrunk` old_subscription: The subscription object, before
# its modification.
# :param :class:`Iptrunk` new_subscription: The subscription object, after
# modifications have been made to it.
# :param UUIDstr process_id: The related process ID, used for callback.
# :param bool dry_run: A boolean indicating whether this should be a dry ryn
# or not, defaults to ``True``.
# """
# parameters = {
# 'dry_run': dry_run,
# 'old_subscription': old_subscription,
# 'subscription': new_subscription
# # FIXME missing parameters
# }
#
# _send_request('ip_trunk', parameters, process_id, CUDOperation.PUT)
def deprovision_ip_trunk(subscription: Iptrunk,
process_id: UUIDstr,
dry_run: bool = True):
"""
Function that modifies an existing IP trunk subscription using LSO.
Function that provisions an IP trunk service using LSO.
:param :class:`Iptrunk` old_subscription: The subscription object, before
its modification.
:param :class:`Iptrunk` new_subscription: The subscription object, after
modifications have been made to it.
:param :class:`IptrunkProvisioning` subscription: The subscription object
that is to be provisioned.
:param UUIDstr process_id: The related process ID, used for callback.
:param bool dry_run: A boolean indicating whether this should be a dry ryn
:param bool dry_run: A boolean indicating whether this should be a dry run
or not, defaults to ``True``.
"""
parameters = {
'subscription': json.loads(json_dumps(subscription)),
'dry_run': dry_run,
'old_subscription': old_subscription,
'subscription': new_subscription
# FIXME missing parameters
'verb': "remove"
}
_send_request('ip_trunk', parameters, process_id, CUDOperation.PUT)
_send_request('ip_trunk', parameters, process_id, CUDOperation.DELETE)
@inputstep('Await provisioning proxy results', assignee=Assignee('SYSTEM'))
def await_pp_results() -> State:
......
......@@ -89,9 +89,11 @@ def get_info_from_ipam(subscription: DeviceInactive) -> State:
# subscription.device.lo_ipv6_address = lo.v6
# TODO: get info about how these should be generated
subscription.device.device_lo_ipv4_address = \
ipaddress.ip_address('10.10.10.10')
ipaddress.ip_address('10.10.10.20')
subscription.device.device_lo_ipv6_address = \
ipaddress.ip_address('fc00:798:10::10')
ipaddress.ip_address('fc00:798:10::20')
#subscription.device.device_lo_iso_address \
# = "49.51e5.0001.0620.4009.6047.00"
subscription.device.device_lo_iso_address \
= iso_from_ipv4(str(subscription.device.device_lo_ipv4_address))
subscription.device.device_si_ipv4_network = '192.168.0.0/31'
......
......@@ -150,18 +150,66 @@ def initialize_subscription(
return {'subscription': subscription}
@step('Provision IP trunk [DRY RUN]')
def provision_ip_trunk_dry(subscription: IptrunkProvisioning,
@step('Provision IP trunk interface [DRY RUN]')
def provision_ip_trunk_iface_dry(subscription: IptrunkProvisioning,
process_id: UUIDstr) -> State:
provisioning_proxy.provision_ip_trunk(subscription, process_id)
provisioning_proxy.provision_ip_trunk(subscription, process_id, "trunk_interface")
return {'subscription': subscription}
@step('Provision IP trunk [FOR REAL]')
def provision_ip_trunk_real(subscription: IptrunkProvisioning,
@step('Provision IP trunk interface [FOR REAL]')
def provision_ip_trunk_iface_real(subscription: IptrunkProvisioning,
process_id: UUIDstr) -> State:
provisioning_proxy.provision_ip_trunk(subscription, process_id, False)
provisioning_proxy.provision_ip_trunk(subscription, process_id, "trunk_interface", False)
return {'subscription': subscription}
@step('Provision IP trunk ISIS interface [DRY RUN]')
def provision_ip_trunk_isis_iface_dry(subscription: IptrunkProvisioning,
process_id: UUIDstr) -> State:
provisioning_proxy.provision_ip_trunk(subscription, process_id, "isis_interface")
return {'subscription': subscription}
@step('Provision IP trunk ISIS interface [FOR REAL]')
def provision_ip_trunk_isis_iface_real(subscription: IptrunkProvisioning,
process_id: UUIDstr) -> State:
provisioning_proxy.provision_ip_trunk(subscription, process_id, "isis_interface", False)
return {'subscription': subscription}
@step('Provision IP trunk LDP interface [DRY RUN]')
def provision_ip_trunk_ldp_iface_dry(subscription: IptrunkProvisioning,
process_id: UUIDstr) -> State:
provisioning_proxy.provision_ip_trunk(subscription, process_id, "ldp_interface")
return {'subscription': subscription}
@step('Provision IP trunk LDP interface [FOR REAL]')
def provision_ip_trunk_ldp_iface_real(subscription: IptrunkProvisioning,
process_id: UUIDstr) -> State:
provisioning_proxy.provision_ip_trunk(subscription, process_id, "ldp_interface", False)
return {'subscription': subscription}
@step('Provision IP trunk LLDP interface [DRY RUN]')
def provision_ip_trunk_lldp_iface_dry(subscription: IptrunkProvisioning,
process_id: UUIDstr) -> State:
provisioning_proxy.provision_ip_trunk(subscription, process_id, "lldp_interface")
return {'subscription': subscription}
@step('Provision IP trunk LLDP interface [FOR REAL]')
def provision_ip_trunk_lldp_iface_real(subscription: IptrunkProvisioning,
process_id: UUIDstr) -> State:
provisioning_proxy.provision_ip_trunk(subscription, process_id, "lldp_interface", False)
return {'subscription': subscription}
......@@ -179,10 +227,28 @@ def create_iptrunk():
>> store_process_subscription(Target.CREATE)
>> get_info_from_ipam
>> initialize_subscription
>> provision_ip_trunk_dry
>> provision_ip_trunk_iface_dry
>> await_pp_results
>> confirm_pp_results
>> provision_ip_trunk_iface_real
>> await_pp_results
>> confirm_pp_results
>> provision_ip_trunk_isis_iface_dry
>> await_pp_results
>> confirm_pp_results
>> provision_ip_trunk_isis_iface_real
>> await_pp_results
>> confirm_pp_results
>> provision_ip_trunk_ldp_iface_dry
>> await_pp_results
>> confirm_pp_results
>> provision_ip_trunk_ldp_iface_real
>> await_pp_results
>> confirm_pp_results
>> provision_ip_trunk_lldp_iface_dry
>> await_pp_results
>> confirm_pp_results
>> provision_ip_trunk_real
>> provision_ip_trunk_lldp_iface_real
>> await_pp_results
>> confirm_pp_results
>> set_status(SubscriptionLifecycle.ACTIVE)
......
from orchestrator.forms import FormPage
from orchestrator.types import FormGenerator, State
from orchestrator.forms.validators import Label
from orchestrator.targets import Target
from orchestrator.types import InputForm, SubscriptionLifecycle, UUIDstr
......@@ -12,6 +13,9 @@ from orchestrator.workflows.steps import (
from orchestrator.workflows.utils import wrap_modify_initial_input_form
from gso.products.product_types.iptrunk import Iptrunk
from gso.services import provisioning_proxy
from gso.services.provisioning_proxy import confirm_pp_results, \
await_pp_results
def initial_input_form_generator(subscription_id: UUIDstr) -> InputForm:
......@@ -29,10 +33,20 @@ def _deprovision_in_user_management_system(fqdn: str) -> str:
pass
@step("Deprovision Iptrunk")
def deprovision_iptrunk(subscription: Iptrunk) -> None:
# _deprovision_in_user_management_system(subscription.user.user_id)
pass
@step('Deprovision IP trunk [DRY RUN]')
def deprovision_ip_trunk_dry(subscription: Iptrunk,
process_id: UUIDstr) -> State:
provisioning_proxy.deprovision_ip_trunk(subscription, process_id )
return {'subscription': subscription}
@step('Deprovision IP trunk [FOR REAL]')
def deprovision_ip_trunk_real(subscription: Iptrunk,
process_id: UUIDstr) -> State:
provisioning_proxy.deprovision_ip_trunk(subscription, process_id, False)
return {'subscription': subscription}
@workflow(
......@@ -46,7 +60,12 @@ def terminate_iptrunk():
init
>> store_process_subscription(Target.TERMINATE)
>> unsync
>> deprovision_iptrunk
>> deprovision_ip_trunk_dry
>> await_pp_results
>> confirm_pp_results
>> deprovision_ip_trunk_real
>> await_pp_results
>> confirm_pp_results
>> set_status(SubscriptionLifecycle.TERMINATED)
>> resync
>> done
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment