From 2e56aca8255508f54389e080de875991ce15cbfd Mon Sep 17 00:00:00 2001
From: Simone Spinelli <simone.spinelli@geant.org>
Date: Tue, 2 May 2023 06:16:08 +0000
Subject: [PATCH] IPtrunk model and IPtrunk workflow with placeholders - to be
 refined with the ansible part

---
 gso/products/product_blocks/iptrunk.py  | 17 +++++++++--------
 gso/workflows/iptrunk/create_iptrunk.py | 18 ++++++------------
 2 files changed, 15 insertions(+), 20 deletions(-)

diff --git a/gso/products/product_blocks/iptrunk.py b/gso/products/product_blocks/iptrunk.py
index 20a1194f..6fed08b9 100644
--- a/gso/products/product_blocks/iptrunk.py
+++ b/gso/products/product_blocks/iptrunk.py
@@ -1,5 +1,6 @@
 from typing import Optional
 from typing import List
+from pydantic import Field
 
 from orchestrator.domain.base import ProductBlockModel
 from orchestrator.types import SubscriptionLifecycle, strEnum
@@ -74,14 +75,14 @@ class IptrunkBlockProvisioning(IptrunkBlockInactive,
     iptrunk_sideA_node: DeviceBlockProvisioning
     iptrunk_sideA_ae_iface: Optional[str] = None
     iptrunk_sideA_ae_geant_a_sid: Optional[str] = None
-    iptrunk_sideA_ae_members: Optional[list] = None
-    iptrunk_sideA_ae_members_description: Optional[list] = None
+    iptrunk_sideA_ae_members: list[str] = Field(default_factory=list)
+    iptrunk_sideA_ae_members_description: list[str] = Field(default_factory=list)
     #
     iptrunk_sideB_node: DeviceBlockProvisioning
     iptrunk_sideB_ae_iface: Optional[str] = None
     iptrunk_sideB_ae_geant_a_sid: Optional[str] = None
-    iptrunk_sideB_ae_members: Optional[list] = None
-    iptrunk_sideB_ae_members_description: Optional[list] = None
+    iptrunk_sideB_ae_members: list[str] = Field(default_factory=list)
+    iptrunk_sideB_ae_members_description: list[str] = Field(default_factory=list)
 
 
 class IptrunkBlock(IptrunkBlockProvisioning,
@@ -97,11 +98,11 @@ class IptrunkBlock(IptrunkBlockProvisioning,
     iptrunk_sideA_node: DeviceBlock
     iptrunk_sideA_ae_iface: str
     iptrunk_sideA_ae_geant_a_sid: str
-    iptrunk_sideA_ae_members: list[str]
-    iptrunk_sideA_ae_members_description: list[str]
+    iptrunk_sideA_ae_members: list[str] = Field(default_factory=list)
+    iptrunk_sideA_ae_members_description: list[str] = Field(default_factory=list)
     #
     iptrunk_sideB_node: DeviceBlock
     iptrunk_sideB_ae_iface: str
     iptrunk_sideB_ae_geant_a_sid: str
-    iptrunk_sideB_ae_members: list[str]
-    iptrunk_sideB_ae_members_description: list[str]
+    iptrunk_sideB_ae_members: list[str] = Field(default_factory=list)
+    iptrunk_sideB_ae_members_description: list[str] = Field(default_factory=list)
diff --git a/gso/workflows/iptrunk/create_iptrunk.py b/gso/workflows/iptrunk/create_iptrunk.py
index 4f53f674..ac34d27a 100644
--- a/gso/workflows/iptrunk/create_iptrunk.py
+++ b/gso/workflows/iptrunk/create_iptrunk.py
@@ -143,9 +143,6 @@ def initialize_subscription(
 @step("Provision iptrunk [DRY RUN]")
 def provision_iptrunk_dry(
     subscription: iptrunk.IptrunkProvisioning,
-    fqdn: str,
-    ts_address: str,
-    ts_port: str
 ) -> State:
     # import ansible_runner
     #
@@ -170,9 +167,9 @@ def provision_iptrunk_dry(
     # # if r.rc != 0:
     # #    raise ValueError("Ansible has failed")
     # return {"dry_run_output": out_splitted, "return_code": r.rc}
-    provisioning_proxy.provision_node(
-        node_subscription_params=subscription,
-        dry_run=True)
+    #provisioning_proxy.provision_node(
+    #    node_subscription_params=subscription,
+    #    dry_run=True)
     # TODO: figure out what to return when we are suspending & waiting
     #       for the provisioning-proxy to call back
     return {"return_code": 0}
@@ -191,9 +188,6 @@ def confirm_step() -> FormGenerator:
 @step("Provision iptrunk [FOR REAL]")
 def provision_iptrunk_real(
     subscription: iptrunk.IptrunkProvisioning,
-    fqdn: str,
-    ts_address: str,
-    ts_port: str
 ) -> State:
     # import ansible_runner
     #
@@ -216,9 +210,9 @@ def provision_iptrunk_real(
     # out = r.stdout.read()
     # out_splitted = out.splitlines()
     #
-    # return {"real_run_output": out_splitted, "return_code": r.rc}
-    provisioning_proxy.provision_node(
-        node_subscription_params=subscription)
+    ## return {"real_run_output": out_splitted, "return_code": r.rc}
+    #provisioning_proxy.provision_node(
+    #    node_subscription_params=subscription)
     # TODO: figure out what to return when we are suspending & waiting
     #       for the provisioning-proxy to call back
     return {"return_code": 0}
-- 
GitLab