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