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

Fix Tox complains

parent d3e18147
Branches
Tags
1 merge request!12Add sites, and add integration of IPtrunks and routers with LSO deployment
This commit is part of merge request !12. Comments created here will be created in the context of that merge request.
......@@ -6,15 +6,18 @@ from gso.products.product_blocks.site \
import SiteBlock, SiteBlockInactive, SiteBlockProvisioning
import ipaddress
class DeviceVendor(strEnum):
juniper = "juniper"
nokia = "nokia"
class DeviceRole(strEnum):
p = "p"
pe = "pe"
amt = "amt"
class DeviceBlockInactive(ProductBlockModel,
lifecycle=[SubscriptionLifecycle.INITIAL],
product_block_name="DeviceBlock"):
......@@ -47,6 +50,7 @@ class DeviceBlockProvisioning(DeviceBlockInactive,
device_role: Optional[DeviceRole] = None
device_site: Optional[SiteBlockProvisioning]
class DeviceBlock(DeviceBlockProvisioning,
lifecycle=[SubscriptionLifecycle.ACTIVE]):
device_fqdn: str
......
from typing import Optional
from pydantic import Field
from orchestrator.domain.base import ProductBlockModel
from orchestrator.types import SubscriptionLifecycle, strEnum
import ipaddress
class SiteTier(strEnum):
tier1 = 1
......@@ -14,8 +12,8 @@ class SiteTier(strEnum):
class SiteBlockInactive(ProductBlockModel,
lifecycle=[SubscriptionLifecycle.INITIAL],
product_block_name="SiteBlock"):
lifecycle=[SubscriptionLifecycle.INITIAL],
product_block_name="SiteBlock"):
site_name: Optional[str] = None
site_city: Optional[str] = None
site_country: Optional[str] = None
......@@ -26,6 +24,7 @@ class SiteBlockInactive(ProductBlockModel,
site_bgp_community_id: Optional[int] = None
site_tier: Optional[SiteTier] = None
class SiteBlockProvisioning(SiteBlockInactive,
lifecycle=[SubscriptionLifecycle.PROVISIONING]):
site_name: Optional[str] = None
......@@ -38,8 +37,9 @@ class SiteBlockProvisioning(SiteBlockInactive,
site_bgp_community_id: Optional[int] = None
site_tier: Optional[SiteTier] = None
class SiteBlock(SiteBlockProvisioning,
lifecycle=[SubscriptionLifecycle.ACTIVE]):
lifecycle=[SubscriptionLifecycle.ACTIVE]):
site_name: str
site_city: str
site_country: str
......
from orchestrator.domain.base import SubscriptionModel
from orchestrator.types import SubscriptionLifecycle, strEnum
from orchestrator.types import SubscriptionLifecycle
from gso.products.product_blocks.site \
import SiteBlock, SiteBlockInactive, SiteBlockProvisioning
......@@ -10,9 +10,9 @@ class SiteInactive(SubscriptionModel, is_base=True):
class SiteProvisioning(SiteInactive,
lifecycle=[SubscriptionLifecycle.PROVISIONING]):
lifecycle=[SubscriptionLifecycle.PROVISIONING]):
site: SiteBlockProvisioning
class Site(SiteProvisioning, lifecycle=[SubscriptionLifecycle.ACTIVE]):
site: SiteBlock
\ No newline at end of file
site: SiteBlock
......@@ -18,6 +18,7 @@ from orchestrator.forms.validators import Choice, choice_list
from gso.products.product_types.site import Site
# from gso.services import ipam, provisioning_proxy
def site_selector() -> list:
site_subscriptions = {}
for site_id, site_description in (
......@@ -33,12 +34,14 @@ def site_selector() -> list:
site_subscriptions[str(site_id)] = site_description
return choice_list(
Choice("site_selection", zip(site_subscriptions.keys(),
site_subscriptions.items())), # type:ignore
Choice("site_selection",
zip(site_subscriptions.keys(),
site_subscriptions.items())), # type:ignore
min_items=1,
max_items=1,
)
def initial_input_form_generator(product_name: str) -> FormGenerator:
class CreateDeviceForm(FormPage):
class Config:
......@@ -74,14 +77,14 @@ def get_info_from_ipam(subscription: device.DeviceInactive) -> State:
# TODO: get info about how these should be generated
subscription.device.device_lo_ipv4_address = "10.10.10.10"
subscription.device.device_lo_ipv6_address = "fc00:798:10::10"
subscription.device.device_lo_iso_address = "49.51e5.0001.0620.4009.6047.00"
subscription.device.device_lo_iso_address \
= "49.51e5.0001.0620.4009.6047.00"
subscription.device.device_si_ipv4_network = "192.168.0.0/31"
subscription.device.device_ias_lt_ipv4_network = "192.168.1.0/31"
subscription.device.device_ias_lt_ipv6_network = "fc00:798:1::150/126"
return {"subscription": subscription}
@step("Initialize subscription")
def initialize_subscription(
subscription: device.DeviceInactive,
......@@ -89,14 +92,15 @@ def initialize_subscription(
ts_address: ipaddress.IPv4Address,
ts_port: str,
device_vendor: device_pb.DeviceVendor,
device_site: str,
device_site: str,
device_role: device_pb.DeviceRole
) -> State:
subscription.device.device_fqdn = fqdn
subscription.device.device_ts_address = str(ts_address)
subscription.device.device_ts_port = str(ts_port)
subscription.device.device_vendor = device_vendor
subscription.device.device_site = Site.from_subscription(device_site[0]).site
subscription.device.device_site \
= Site.from_subscription(device_site[0]).site
subscription.device.device_role = device_role
subscription.description = f"Device {fqdn} type \
({subscription.device_type})"
......
......@@ -2,8 +2,8 @@ from uuid import uuid4
from orchestrator.forms import FormPage
from orchestrator.targets import Target
from orchestrator.workflow import inputstep
from orchestrator.forms.validators import Accept
# from orchestrator.workflow import inputstep
# from orchestrator.forms.validators import Accept
from orchestrator.types import FormGenerator, State
from orchestrator.types import SubscriptionLifecycle, UUIDstr
from orchestrator.workflow import done, init, step, workflow
......@@ -29,7 +29,6 @@ def initial_input_form_generator(product_name: str) -> FormGenerator:
site_internal_id: int
site_tier: site_pb.SiteTier
user_input = yield CreateSiteForm
return user_input.dict()
......@@ -59,14 +58,14 @@ def initialize_subscription(
site_tier: site_pb.SiteTier
) -> State:
subscription.site.site_name = site_name
subscription.site.site_city = site_city
subscription.site.site_country = site_country
subscription.site.site_country_code = site_country_code
subscription.site.site_latitude = site_longitude
subscription.site.site_longitude = site_latitude
subscription.site.site_bgp_community_id = site_bgp_community_id
subscription.site.site_internal_id = site_internal_id
subscription.site.site_tier = site_tier
subscription.site.site_city = site_city
subscription.site.site_country = site_country
subscription.site.site_country_code = site_country_code
subscription.site.site_latitude = site_longitude
subscription.site.site_longitude = site_latitude
subscription.site.site_bgp_community_id = site_bgp_community_id
subscription.site.site_internal_id = site_internal_id
subscription.site.site_tier = site_tier
subscription.description = f"Site {site_name}"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment