From 1f4cd3d1615dd03c417a066936d4ad89defd978e Mon Sep 17 00:00:00 2001
From: gifrerenom <lluis.gifre@cttc.es>
Date: Tue, 31 Oct 2023 17:19:13 +0000
Subject: [PATCH] Common - Tools - Object Factory:

- Add attributes total/current capacity to link creation methos
---
 src/common/tools/object_factory/Link.py | 21 ++++++++++++++++++---
 1 file changed, 18 insertions(+), 3 deletions(-)

diff --git a/src/common/tools/object_factory/Link.py b/src/common/tools/object_factory/Link.py
index 5f8080d30..acacaec25 100644
--- a/src/common/tools/object_factory/Link.py
+++ b/src/common/tools/object_factory/Link.py
@@ -23,13 +23,28 @@ def get_link_uuid(a_endpoint_id : Dict, z_endpoint_id : Dict) -> str:
 def json_link_id(link_uuid : str) -> Dict:
     return {'link_uuid': {'uuid': link_uuid}}
 
-def json_link(link_uuid : str, endpoint_ids : List[Dict], name : Optional[str] = None) -> Dict:
+def json_link(
+    link_uuid : str, endpoint_ids : List[Dict], name : Optional[str] = None,
+    total_capacity_gbps : Optional[float] = None, current_capacity_gbps : Optional[float] = None
+) -> Dict:
     result = {'link_id': json_link_id(link_uuid), 'link_endpoint_ids': copy.deepcopy(endpoint_ids)}
     if name is not None: result['name'] = name
+    if total_capacity_gbps is not None:
+        attributes : Dict = result.setdefault('attributes', dict())
+        attributes.setdefault('total_capacity_gbps', total_capacity_gbps)
+    if current_capacity_gbps is not None:
+        attributes : Dict = result.setdefault('attributes', dict())
+        attributes.setdefault('current_capacity_gbps', current_capacity_gbps)
     return result
 
-def compose_link(endpoint_a, endpoint_z) -> Tuple[Dict, Dict]:
+def compose_link(
+    endpoint_a : Dict, endpoint_z : Dict, name : Optional[str] = None,
+    total_capacity_gbps : Optional[float] = None, current_capacity_gbps : Optional[float] = None
+) -> Tuple[Dict, Dict]:
     link_uuid = get_link_uuid(endpoint_a['endpoint_id'], endpoint_z['endpoint_id'])
     link_id   = json_link_id(link_uuid)
-    link      = json_link(link_uuid, [endpoint_a['endpoint_id'], endpoint_z['endpoint_id']])
+    link      = json_link(
+        link_uuid, [endpoint_a['endpoint_id'], endpoint_z['endpoint_id']], name=name,
+        total_capacity_gbps=total_capacity_gbps, current_capacity_gbps=current_capacity_gbps
+    )
     return link_id, link
-- 
GitLab