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

split off duplicate ISIS 90000 method

parent aff09c3c
No related branches found
No related tags found
No related merge requests found
Pipeline #84074 passed
...@@ -8,8 +8,7 @@ RUN pip install \ ...@@ -8,8 +8,7 @@ RUN pip install \
geant-service-orchestrator==${ARTIFACT_VERSION} geant-service-orchestrator==${ARTIFACT_VERSION}
# Create the directory for the configuration and copy the example config into it # Create the directory for the configuration and copy the example config into it
# NOTE: a real config must be mounted at # NOTE: a real config must be mounted at /etc/gso/config.json when running the container
# /etc/gso/config.json when running the container
RUN mkdir -p /etc/gso RUN mkdir -p /etc/gso
COPY gso/oss-params-example.json /etc/gso/config.json COPY gso/oss-params-example.json /etc/gso/config.json
......
...@@ -14,7 +14,7 @@ from orchestrator.forms import FormPage, ReadOnlyField ...@@ -14,7 +14,7 @@ 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 FormGenerator, State, UUIDstr, strEnum from orchestrator.types import FormGenerator, State, UUIDstr, strEnum
from orchestrator.utils.json import json_dumps from orchestrator.utils.json import json_dumps
from orchestrator.workflow import Step, StepList, abort from orchestrator.workflow import Step, StepList, abort, init
from pydantic import validator from pydantic import validator
from gso import settings from gso import settings
...@@ -340,7 +340,7 @@ def pp_interaction(provisioning_step: Step, attempts: int, abort_on_failure: boo ...@@ -340,7 +340,7 @@ def pp_interaction(provisioning_step: Step, attempts: int, abort_on_failure: boo
""" """
should_retry_pp_steps = conditional(lambda state: not state.get("pp_did_succeed")) should_retry_pp_steps = conditional(lambda state: not state.get("pp_did_succeed"))
pp_steps = StepList([_reset_pp_success_state]) pp_steps = init >> _reset_pp_success_state
for _ in range(attempts): for _ in range(attempts):
pp_steps >>= ( pp_steps >>= (
......
...@@ -18,6 +18,7 @@ from gso.products.product_types.iptrunk import Iptrunk ...@@ -18,6 +18,7 @@ from gso.products.product_types.iptrunk import Iptrunk
from gso.products.product_types.router import Router from gso.products.product_types.router import Router
from gso.services import provisioning_proxy from gso.services import provisioning_proxy
from gso.services.provisioning_proxy import pp_interaction from gso.services.provisioning_proxy import pp_interaction
from gso.workflows.iptrunk.utils import set_isis_to_90000
logger = getLogger(__name__) logger = getLogger(__name__)
...@@ -115,19 +116,6 @@ def initial_input_form_generator(subscription_id: UUIDstr) -> FormGenerator: ...@@ -115,19 +116,6 @@ def initial_input_form_generator(subscription_id: UUIDstr) -> FormGenerator:
return old_side_input.dict() | new_side_input.dict() | {"replace_index": replace_index} return old_side_input.dict() | new_side_input.dict() | {"replace_index": replace_index}
@step("[COMMIT] Set ISIS metric to 90000")
def set_isis_to_9000(subscription: Iptrunk, process_id: UUIDstr, tt_number: str) -> State:
old_isis_metric = subscription.iptrunk.iptrunk_isis_metric
subscription.iptrunk.iptrunk_isis_metric = 90000
provisioning_proxy.provision_ip_trunk(subscription, process_id, tt_number, "isis_interface", False)
return {
"subscription": subscription,
"old_isis_metric": old_isis_metric,
"label_text": "ISIS is being set to 90K by the provisioning proxy, please wait for the results",
}
@step("[DRY RUN] Disable configuration on old router") @step("[DRY RUN] Disable configuration on old router")
def disable_old_config_dry( def disable_old_config_dry(
subscription: Iptrunk, subscription: Iptrunk,
...@@ -425,15 +413,13 @@ def migrate_iptrunk() -> StepList: ...@@ -425,15 +413,13 @@ def migrate_iptrunk() -> StepList:
init init
>> store_process_subscription(Target.MODIFY) >> store_process_subscription(Target.MODIFY)
>> unsync >> unsync
>> pp_interaction(set_isis_to_9000, 3) >> pp_interaction(set_isis_to_90000, 3)
>> pp_interaction(disable_old_config_dry, 3) >> pp_interaction(disable_old_config_dry, 3)
>> pp_interaction(disable_old_config_real, 3) >> pp_interaction(disable_old_config_real, 3)
>> pp_interaction(deploy_new_config_dry, 3) >> pp_interaction(deploy_new_config_dry, 3)
>> pp_interaction(deploy_new_config_real, 3) >> pp_interaction(deploy_new_config_real, 3)
>> confirm_continue_move_fiber >> confirm_continue_move_fiber
# >> pp_interaction(run_interface_checks, 3, False)
>> pp_interaction(deploy_new_isis, 3) >> pp_interaction(deploy_new_isis, 3)
# >> pp_interaction(check_isis, 3, False)
>> confirm_continue_restore_isis >> confirm_continue_restore_isis
>> pp_interaction(restore_isis_metric, 3) >> pp_interaction(restore_isis_metric, 3)
>> pp_interaction(delete_old_config_dry, 3) >> pp_interaction(delete_old_config_dry, 3)
......
...@@ -12,6 +12,7 @@ from gso.products.product_types.iptrunk import Iptrunk ...@@ -12,6 +12,7 @@ from gso.products.product_types.iptrunk import Iptrunk
from gso.services import ipam, provisioning_proxy from gso.services import ipam, provisioning_proxy
from gso.services.ipam import V4ServiceNetwork, V6ServiceNetwork from gso.services.ipam import V4ServiceNetwork, V6ServiceNetwork
from gso.services.provisioning_proxy import pp_interaction from gso.services.provisioning_proxy import pp_interaction
from gso.workflows.iptrunk.utils import set_isis_to_90000
def initial_input_form_generator() -> FormGenerator: def initial_input_form_generator() -> FormGenerator:
...@@ -28,19 +29,6 @@ def initial_input_form_generator() -> FormGenerator: ...@@ -28,19 +29,6 @@ def initial_input_form_generator() -> FormGenerator:
return user_input.dict() return user_input.dict()
@step("[COMMIT] Set ISIS metric to 90000")
def set_isis_to_9000(subscription: Iptrunk, process_id: UUIDstr, tt_number: str) -> State:
old_isis_metric = subscription.iptrunk.iptrunk_isis_metric
subscription.iptrunk.iptrunk_isis_metric = 90000
provisioning_proxy.provision_ip_trunk(subscription, process_id, tt_number, "isis_interface", False)
return {
"subscription": subscription,
"old_isis_metric": old_isis_metric,
"label_text": "ISIS is being set to 90K by the provisioning proxy, please wait for the results",
}
@step("Drain traffic from trunk") @step("Drain traffic from trunk")
def drain_traffic_from_ip_trunk(subscription: Iptrunk, process_id: UUIDstr, tt_number: str) -> State: def drain_traffic_from_ip_trunk(subscription: Iptrunk, process_id: UUIDstr, tt_number: str) -> State:
provisioning_proxy.provision_ip_trunk(subscription, process_id, tt_number, "isis_interface", False) provisioning_proxy.provision_ip_trunk(subscription, process_id, tt_number, "isis_interface", False)
...@@ -99,13 +87,12 @@ def terminate_iptrunk() -> StepList: ...@@ -99,13 +87,12 @@ def terminate_iptrunk() -> StepList:
run_ipam_steps = conditional(lambda state: state.get("clean_up_ipam", True)) run_ipam_steps = conditional(lambda state: state.get("clean_up_ipam", True))
config_steps = ( config_steps = (
# StepList([set_isis_to_9000]) init
StepList() >> pp_interaction(set_isis_to_90000, 3)
>> pp_interaction(set_isis_to_9000, 3)
>> pp_interaction(deprovision_ip_trunk_dry, 3) >> pp_interaction(deprovision_ip_trunk_dry, 3)
>> pp_interaction(deprovision_ip_trunk_real, 3) >> pp_interaction(deprovision_ip_trunk_real, 3)
) )
ipam_steps = StepList([deprovision_ip_trunk_ipv4, deprovision_ip_trunk_ipv6]) ipam_steps = init >> deprovision_ip_trunk_ipv4 >> deprovision_ip_trunk_ipv6
return ( return (
init init
......
from orchestrator import step
from orchestrator.types import State, UUIDstr
from gso.products.product_types.iptrunk import Iptrunk
from gso.services import provisioning_proxy
@step("[COMMIT] Set ISIS metric to 90000")
def set_isis_to_90000(subscription: Iptrunk, process_id: UUIDstr, tt_number: str) -> State:
old_isis_metric = subscription.iptrunk.iptrunk_isis_metric
subscription.iptrunk.iptrunk_isis_metric = 90000
provisioning_proxy.provision_ip_trunk(subscription, process_id, tt_number, "isis_interface", False)
return {
"subscription": subscription,
"old_isis_metric": old_isis_metric,
"label_text": "ISIS is being set to 90K by the provisioning proxy, please wait for the results",
}
...@@ -92,9 +92,7 @@ def terminate_router() -> StepList: ...@@ -92,9 +92,7 @@ def terminate_router() -> StepList:
run_si_removal = conditional(lambda subscription: "router_si_ipv4_network" in subscription.get("router", {})) run_si_removal = conditional(lambda subscription: "router_si_ipv4_network" in subscription.get("router", {}))
ipam_steps = ( ipam_steps = (
StepList([deprovision_loopback_ips]) init >> deprovision_loopback_ips >> run_si_removal(deprovision_si_ips) >> run_ias_removal(deprovision_lt_ips)
>> run_si_removal(deprovision_si_ips)
>> run_ias_removal(deprovision_lt_ips)
) )
return ( return (
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment