diff --git a/gso/products/__init__.py b/gso/products/__init__.py index 857128fb672bf6350e674bfc81e8d89fa2765af2..b8b60c156ba992f6394d41035f9b66b3b3645fbd 100644 --- a/gso/products/__init__.py +++ b/gso/products/__init__.py @@ -2,11 +2,9 @@ from orchestrator.domain import SUBSCRIPTION_MODEL_REGISTRY from gso.products.product_types.device import Device from gso.products.product_types.iptrunk import Iptrunk -from gso.products.product_types.site import Site SUBSCRIPTION_MODEL_REGISTRY.update( { - "Site": Site, "Router": Device, "Switch": Device, "Iptrunk": Iptrunk, diff --git a/gso/products/product_blocks/device.py b/gso/products/product_blocks/device.py index 44581ef557c9f49fe51f7633ac919267e0a68a84..9e34743f2e1e2eea7f3610cd6e3cab616061e020 100644 --- a/gso/products/product_blocks/device.py +++ b/gso/products/product_blocks/device.py @@ -2,62 +2,62 @@ from typing import Optional from orchestrator.domain.base import ProductBlockModel from orchestrator.types import SubscriptionLifecycle -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"): - device_fqdn: Optional[str] = None - device_ts_address: Optional[str] = None - device_ts_port: Optional[int] = None - device_lo_ipv4_address: Optional[ipaddress.IPv4Address] = None - device_lo_ipv6_address: Optional[ipaddress.IPv6Address] = None - device_lo_iso_address: Optional[str] = None - device_si_ipv4_network: Optional[ipaddress.IPv4Network] = None - device_ias_lt_ipv4_network: Optional[ipaddress.IPv4Network] = None - device_ias_lt_ipv6_network: Optional[ipaddress.IPv6Network] = None - device_vendor: Optional[DeviceVendor] = None - device_role: Optional[DeviceRole] = None - device_site: Optional[SiteBlockInactive] + fqdn: Optional[str] = None + ts_address: Optional[str] = None + ts_port: Optional[int] = None + lo_ipv4_address: Optional[ipaddress.IPv4Address] = None + lo_ipv6_address: Optional[ipaddress.IPv6Address] = None + lo_iso_address: Optional[str] = None + si_ipv4_network: Optional[ipaddress.IPv4Network] = None + ias_lt_ipv4_network: Optional[ipaddress.IPv4Network] = None + ias_lt_ipv6_network: Optional[ipaddress.IPv6Network] = None + site_city: Optional[str] = None + site_country: Optional[str] = None + site_country_code: Optional[str] = None + site_latitude: Optional[str] = None + site_longitude: Optional[str] = None + snmp_location: Optional[str] = None class DeviceBlockProvisioning(DeviceBlockInactive, lifecycle=[SubscriptionLifecycle.PROVISIONING]): - device_fqdn: str - device_ts_address: str - device_ts_port: str - device_lo_ipv4_address: Optional[ipaddress.IPv4Address] = None - device_lo_ipv6_address: Optional[ipaddress.IPv6Address] = None - device_lo_iso_address: Optional[str] = None - device_si_ipv4_network: Optional[ipaddress.IPv4Network] = None - device_ias_lt_ipv4_network: Optional[ipaddress.IPv4Network] = None - device_ias_lt_ipv6_network: Optional[ipaddress.IPv6Network] = None - device_vendor: Optional[DeviceVendor] = None - device_role: Optional[DeviceRole] = None - device_site: Optional[SiteBlockProvisioning] + fqdn: str + ts_address: str + ts_port: str + lo_ipv4_address: Optional[ipaddress.IPv4Address] = None + lo_ipv6_address: Optional[ipaddress.IPv6Address] = None + lo_iso_address: Optional[str] = None + si_ipv4_network: Optional[ipaddress.IPv4Network] = None + ias_lt_ipv4_network: Optional[ipaddress.IPv4Network] = None + ias_lt_ipv6_network: Optional[ipaddress.IPv6Network] = None + site_city: Optional[str] = None + site_country: Optional[str] = None + site_country_code: Optional[str] = None + site_latitude: Optional[str] = None + site_longitude: Optional[str] = None + snmp_location: Optional[str] = None + class DeviceBlock(DeviceBlockProvisioning, lifecycle=[SubscriptionLifecycle.ACTIVE]): - device_fqdn: str - device_ts_address: str - device_ts_port: str - device_lo_ipv4_address: ipaddress.IPv4Address - device_lo_ipv6_address: ipaddress.IPv6Address - device_lo_iso_address: str - device_si_ipv4_network: ipaddress.IPv4Network - device_ias_lt_ipv4_network: ipaddress.IPv4Network - device_ias_lt_ipv6_network: ipaddress.IPv6Network - device_vendor: DeviceVendor - device_role: DeviceRole - device_site: SiteBlock + fqdn: str + ts_address: str + ts_port: str + lo_ipv4_address: ipaddress.IPv4Address + lo_ipv6_address: ipaddress.IPv6Address + lo_iso_address: str + si_ipv4_network: ipaddress.IPv4Network + ias_lt_ipv4_network: ipaddress.IPv4Network + ias_lt_ipv6_network: ipaddress.IPv6Network + site_city: str + site_country: str + site_country_code: str + site_latitude: str + site_longitude: str + snmp_location: str diff --git a/gso/products/product_blocks/site.py b/gso/products/product_blocks/site.py deleted file mode 100644 index 564dd811dc9333f1a662bf75c1b3b3e39ada1e4f..0000000000000000000000000000000000000000 --- a/gso/products/product_blocks/site.py +++ /dev/null @@ -1,51 +0,0 @@ -from typing import Optional -from pydantic import Field - -from orchestrator.domain.base import ProductBlockModel -from orchestrator.types import SubscriptionLifecycle, Enum - -import ipaddress - -class SiteTier(Enum): - tier1 = 1 - tier2 = 2 - tier3 = 3 - tier4 = 4 - - -class SiteBlockInactive(ProductBlockModel, - lifecycle=[SubscriptionLifecycle.INITIAL], - product_block_name="SiteBlock"): - site_name: Optional[str] - site_city: Optional[str] - site_country: Optional[str] - site_country_code: Optional[str] - site_latitude: Optional[float] - site_longitude: Optional[float] - site_internal_id: Optional[int] - site_bgp_id: Optional[int] - site_tier: Optional[SiteTier] - -class SiteBlockProvisioning(SiteBlockInactive, - lifecycle=[SubscriptionLifecycle.PROVISIONING]): - site_name: Optional[str] - site_city: Optional[str] - site_country: Optional[str] - site_country_code: Optional[str] - site_latitude: Optional[float] - site_longitude: Optional[float] - site_internal_id: Optional[int] - site_bgp_id: Optional[int] - site_tier: Optional[SiteTier] - -class SiteBlock(SiteBlockProvisioning, - lifecycle=[SubscriptionLifecycle.ACTIVE]): - site_name: str - site_city: str - site_country: str - site_country_code: str - site_latitude: float - site_longitude: float - site_internal_id: int - site_bgp_id: int - site_tier: SiteTier \ No newline at end of file diff --git a/gso/products/product_types/device.py b/gso/products/product_types/device.py index 17a99081b68919cbc8d213251432db23fbee6146..e79762c12f9fae68b409955b9e4a5a49e08c75dc 100644 --- a/gso/products/product_types/device.py +++ b/gso/products/product_types/device.py @@ -10,14 +10,21 @@ class DeviceType(strEnum): switch = "switch" +class DeviceVendor(strEnum): + Juniper = "Juniper" + Newvendor = "Newvendor" + + class DeviceInactive(SubscriptionModel, is_base=True): device_type: DeviceType + device_vendor: DeviceVendor device: DeviceBlockInactive class DeviceProvisioning(DeviceInactive, lifecycle=[SubscriptionLifecycle.PROVISIONING]): device_type: DeviceType + device_vendor: DeviceVendor device: DeviceBlockProvisioning diff --git a/gso/products/product_types/site.py b/gso/products/product_types/site.py deleted file mode 100644 index 003e37d4962fbd8ac45b0d0d3e46fa4340ffb53a..0000000000000000000000000000000000000000 --- a/gso/products/product_types/site.py +++ /dev/null @@ -1,18 +0,0 @@ -from orchestrator.domain.base import SubscriptionModel -from orchestrator.types import SubscriptionLifecycle, strEnum - -from gso.products.product_blocks.site \ - import SiteBlock, SiteBlockInactive, SiteBlockProvisioning - - -class SiteInactive(SubscriptionModel, is_base=True): - site: SiteBlockInactive - - -class SiteProvisioning(SiteInactive, - lifecycle=[SubscriptionLifecycle.PROVISIONING]): - site: SiteBlockProvisioning - - -class Site(SiteProvisioning, lifecycle=[SubscriptionLifecycle.ACTIVE]): - site: SiteBlock \ No newline at end of file