From 6a1bf009a70d520825f9d24dc0706f1ddca0859b Mon Sep 17 00:00:00 2001
From: Lluis Gifre <lluis.gifre@cttc.es>
Date: Fri, 20 May 2022 13:08:16 +0200
Subject: [PATCH] Common tools: - added helper methods to object_factory

---
 src/common/tools/object_factory/EndPoint.py | 20 +++++++++++++++++++-
 src/common/tools/object_factory/Link.py     |  5 +++++
 2 files changed, 24 insertions(+), 1 deletion(-)

diff --git a/src/common/tools/object_factory/EndPoint.py b/src/common/tools/object_factory/EndPoint.py
index d75060436..9eca5e963 100644
--- a/src/common/tools/object_factory/EndPoint.py
+++ b/src/common/tools/object_factory/EndPoint.py
@@ -13,13 +13,21 @@
 # limitations under the License.
 
 import copy
-from typing import Dict, List, Optional
+from typing import Dict, List, Optional, Tuple
 
 def json_endpoint_id(device_id : Dict, endpoint_uuid : str, topology_id : Optional[Dict] = None):
     result = {'device_id': copy.deepcopy(device_id), 'endpoint_uuid': {'uuid': endpoint_uuid}}
     if topology_id is not None: result['topology_id'] = copy.deepcopy(topology_id)
     return result
 
+def json_endpoint_ids(
+        device_id : Dict, endpoint_descriptors : List[Tuple[str, str, List[int]]], topology_id : Optional[Dict] = None
+    ):
+    return [
+        json_endpoint_id(device_id, endpoint_uuid, topology_id=topology_id)
+        for endpoint_uuid, _, _ in endpoint_descriptors
+    ]
+
 def json_endpoint(
         device_id : Dict, endpoint_uuid : str, endpoint_type : str, topology_id : Optional[Dict] = None,
         kpi_sample_types : List[int] = []
@@ -31,3 +39,13 @@ def json_endpoint(
     }
     if len(kpi_sample_types) > 0: result['kpi_sample_types'] = copy.deepcopy(kpi_sample_types)
     return result
+
+def json_endpoints(
+        device_id : Dict, endpoint_descriptors : List[Tuple[str, str, List[int]]], topology_id : Optional[Dict] = None
+    ):
+    return [
+        json_endpoint(
+            device_id, endpoint_uuid, endpoint_type, topology_id=topology_id,
+            kpi_sample_types=endpoint_sample_types)
+        for endpoint_uuid, endpoint_type, endpoint_sample_types in endpoint_descriptors
+    ]
diff --git a/src/common/tools/object_factory/Link.py b/src/common/tools/object_factory/Link.py
index fac279459..624cbb8dc 100644
--- a/src/common/tools/object_factory/Link.py
+++ b/src/common/tools/object_factory/Link.py
@@ -15,6 +15,11 @@
 import copy
 from typing import Dict, List
 
+def get_link_uuid(a_device_id : Dict, a_endpoint_id : Dict, z_device_id : Dict, z_endpoint_id : Dict) -> str:
+    return '{:s}/{:s}=={:s}/{:s}'.format(
+        a_device_id['device_uuid']['uuid'], a_endpoint_id['endpoint_uuid']['uuid'],
+        z_device_id['device_uuid']['uuid'], z_endpoint_id['endpoint_uuid']['uuid'])
+
 def json_link_id(link_uuid : str):
     return {'link_uuid': {'uuid': link_uuid}}
 
-- 
GitLab