From 7f63d4bfc603646c309fd8bad758651a08538273 Mon Sep 17 00:00:00 2001
From: Simone Spinelli <simone.spinelli@geant.org>
Date: Wed, 3 May 2023 09:18:11 +0200
Subject: [PATCH] Revert "Changed Device model and added Site model to hold
 SNMP info plus other related attrs."

This reverts commit e9d5d0ab922ff2ead92209a4c5d58dce639cc22c.
---
 gso/products/__init__.py              |  2 -
 gso/products/product_blocks/device.py | 92 +++++++++++++--------------
 gso/products/product_blocks/site.py   | 51 ---------------
 gso/products/product_types/device.py  |  7 ++
 gso/products/product_types/site.py    | 18 ------
 5 files changed, 53 insertions(+), 117 deletions(-)
 delete mode 100644 gso/products/product_blocks/site.py
 delete mode 100644 gso/products/product_types/site.py

diff --git a/gso/products/__init__.py b/gso/products/__init__.py
index 857128fb..b8b60c15 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 44581ef5..9e34743f 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 564dd811..00000000
--- 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 17a99081..e79762c1 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 003e37d4..00000000
--- 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
-- 
GitLab