Commit 1f4cd3d1 authored by Lluis Gifre Renom's avatar Lluis Gifre Renom
Browse files

Common - Tools - Object Factory:

- Add attributes total/current capacity to link creation methos
parent 25fc7040
Loading
Loading
Loading
Loading
+18 −3
Original line number Diff line number Diff line
@@ -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