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

split off duplicate ISIS 90000 method

parent 97459886
No related branches found
No related tags found
No related merge requests found
Pipeline #84075 failed
...@@ -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)
......
...@@ -11,6 +11,7 @@ from orchestrator.workflows.utils import wrap_modify_initial_input_form ...@@ -11,6 +11,7 @@ from orchestrator.workflows.utils import wrap_modify_initial_input_form
from gso.products.product_types.iptrunk import Iptrunk from gso.products.product_types.iptrunk import Iptrunk
from gso.services import infoblox, provisioning_proxy from gso.services import infoblox, 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
def initial_input_form_generator() -> FormGenerator: def initial_input_form_generator() -> FormGenerator:
...@@ -27,19 +28,6 @@ def initial_input_form_generator() -> FormGenerator: ...@@ -27,19 +28,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)
...@@ -94,13 +82,12 @@ def terminate_iptrunk() -> StepList: ...@@ -94,13 +82,12 @@ def terminate_iptrunk() -> StepList:
run_ipam_steps = conditional(lambda state: state["clean_up_ipam"]) run_ipam_steps = conditional(lambda state: state["clean_up_ipam"])
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",
}
...@@ -69,7 +69,8 @@ def terminate_router() -> StepList: ...@@ -69,7 +69,8 @@ def terminate_router() -> StepList:
run_ias_removal = conditional(lambda state: state["subscription"]["router"]["router_is_ias_connected"]) run_ias_removal = conditional(lambda state: state["subscription"]["router"]["router_is_ias_connected"])
ipam_steps = ( ipam_steps = (
StepList([deprovision_loopback_ips]) init
>> deprovision_loopback_ips
>> run_ias_removal(deprovision_si_ips) >> run_ias_removal(deprovision_si_ips)
>> run_ias_removal(deprovision_lt_ips) >> run_ias_removal(deprovision_lt_ips)
) )
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment