Skip to content
Snippets Groups Projects

Feature/nat 212 213

Merged JORGE SASIAIN requested to merge feature/nat-212-213 into develop
1 file
+ 84
84
Compare changes
  • Side-by-side
  • Inline
import ipaddress
import re
from uuid import uuid4
from orchestrator.db.models import ProductTable, SubscriptionTable
# noinspection PyProtectedMember
from orchestrator.forms import FormPage
from orchestrator.forms.validators import Choice
from orchestrator.targets import Target
from orchestrator.types import FormGenerator, State
from orchestrator.types import SubscriptionLifecycle, UUIDstr
from orchestrator.workflow import done, init, step, workflow
from orchestrator.workflows.steps import resync, store_process_subscription, unsync
from orchestrator.workflows.utils import wrap_modify_initial_input_form
from gso.products.product_blocks import device as device_pb
from gso.products.product_types import device
from gso.products.product_types.device import (
Device,
)
from gso.products.product_types.site import Site
from gso.services import _ipam
def initial_input_form_generator(subscription_id: UUIDstr) -> FormGenerator:
subscription = Device.from_subscription(subscription_id)
class SimoneDeviceForm(FormPage):
class Config:
random_input: str
user_input = yield SimoneDeviceForm
return user_input.dict()
@step("Show the devices")
def display_devices() -> State:
devices = []
for subscription_id in (
SubscriptionTable.query.join(ProductTable)
.filter(
ProductTable.product_type == "Device",
SubscriptionTable.status == "active",
)
.with_entities(
SubscriptionTable.subscription_id,
)
.all()
):
devices.append(Device.from_subscription(subscription_id))
pe_devices = []
p_devices = []
for device in devices :
if device.device.device_access_via_ts == False :
if device.device.device_role == "p":
p_devices.append(device)
if device.device.device_role == "pe":
pe_devices.append(device)
return {
"pe_devices": pe_devices,
"p_devices": p_devices,
}
@workflow(
"Add node to iBGP",
initial_input_form=wrap_modify_initial_input_form(
initial_input_form_generator
),
target=Target.MODIFY,
)
def insert_in_ibgp():
return (
init
>> store_process_subscription(Target.MODIFY)
>> unsync
>> display_devices
>> resync
>> done
)
\ No newline at end of file
#import ipaddress
#import re
#from uuid import uuid4
#
#from orchestrator.db.models import ProductTable, SubscriptionTable
#
## noinspection PyProtectedMember
#from orchestrator.forms import FormPage
#from orchestrator.forms.validators import Choice
#from orchestrator.targets import Target
#from orchestrator.types import FormGenerator, State
#from orchestrator.types import SubscriptionLifecycle, UUIDstr
#from orchestrator.workflow import done, init, step, workflow
#from orchestrator.workflows.steps import resync, store_process_subscription, unsync
#
#from orchestrator.workflows.utils import wrap_modify_initial_input_form
#from gso.products.product_blocks import device as device_pb
#from gso.products.product_types import device
#from gso.products.product_types.device import (
# Device,
#)
#from gso.products.product_types.site import Site
#from gso.services import _ipam
#
#def initial_input_form_generator(subscription_id: UUIDstr) -> FormGenerator:
# subscription = Device.from_subscription(subscription_id)
#
# class SimoneDeviceForm(FormPage):
# class Config:
# random_input: str
#
# user_input = yield SimoneDeviceForm
#
# return user_input.dict()
#
#@step("Show the devices")
#def display_devices() -> State:
# devices = []
# for subscription_id in (
# SubscriptionTable.query.join(ProductTable)
# .filter(
# ProductTable.product_type == "Device",
# SubscriptionTable.status == "active",
# )
# .with_entities(
# SubscriptionTable.subscription_id,
# )
# .all()
# ):
# devices.append(Device.from_subscription(subscription_id))
#
# pe_devices = []
# p_devices = []
#
# for device in devices :
# if device.device.device_access_via_ts == False :
# if device.device.device_role == "p":
# p_devices.append(device)
# if device.device.device_role == "pe":
# pe_devices.append(device)
#
# return {
# "pe_devices": pe_devices,
# "p_devices": p_devices,
# }
#
#
#@workflow(
# "Add node to iBGP",
# initial_input_form=wrap_modify_initial_input_form(
# initial_input_form_generator
# ),
# target=Target.MODIFY,
#)
#
#def insert_in_ibgp():
# return (
# init
# >> store_process_subscription(Target.MODIFY)
# >> unsync
# >> display_devices
# >> resync
# >> done
# )
Loading