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

Fix Tox complains

parent d3e18147
No related branches found
No related tags found
1 merge request!12Add sites, and add integration of IPtrunks and routers with LSO deployment
......@@ -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.
Finish editing this message first!
Please register or to comment