Commit a173e1ab authored by Lluis Gifre Renom's avatar Lluis Gifre Renom
Browse files

Common:

- improved object factory tools for links
parent 402ed56b
Loading
Loading
Loading
Loading
+12 −6
Original line number Diff line number Diff line
@@ -13,15 +13,21 @@
# limitations under the License.

import copy
from typing import Dict, List
from typing import Dict, List, Tuple

def get_link_uuid(a_device_id : Dict, a_endpoint_id : Dict, z_device_id : Dict, z_endpoint_id : Dict) -> str:
def get_link_uuid(a_endpoint_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'])
        a_endpoint_id['device_id']['device_uuid']['uuid'], a_endpoint_id['endpoint_uuid']['uuid'],
        a_endpoint_id['device_id']['device_uuid']['uuid'], z_endpoint_id['endpoint_uuid']['uuid'])

def json_link_id(link_uuid : 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]):
def json_link(link_uuid : str, endpoint_ids : List[Dict]) -> Dict:
    return {'link_id': json_link_id(link_uuid), 'link_endpoint_ids': copy.deepcopy(endpoint_ids)}

def compose_link(endpoint_a, endpoint_z) -> 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']])
    return link_id, link