Commit 2b3e9f21 authored by Waleed Akbar's avatar Waleed Akbar
Browse files

feat: Update SIMAP endpoint definitions and improve link telemetry handling

parent 4f3e75b1
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -64,7 +64,7 @@ class ObjectCache:
    def __init__(self, context_client : ContextClient):
        self._context_client = context_client
        self._object_cache : Dict[Tuple[str, str], Any] = dict()
        # self.populate_all_cache()       # Added for testing purposes; can be removed.
        # self.populate_all_cache()       # NOTE: Added for testing purposes; can be removed.

    def get(
        self, entity : CachedEntities, *object_uuids : str,
+10 −7
Original line number Diff line number Diff line
@@ -64,7 +64,7 @@ class TerminationPoint:


class NodeTelemetry:
    ENDPOINT = '/ietf-network:networks/network={:s}/node={:s}/simap-telemetry:simap-telemetry'
    ENDPOINT = '/ietf-network:networks/network={:s}/node={:s}'

    def __init__(self, restconf_client : RestConfClient, network_id : str, node_id : str):
        self._restconf_client = restconf_client
@@ -173,7 +173,7 @@ class Node:


class LinkTelemetry:
    ENDPOINT = '/ietf-network:networks/network={:s}/ietf-network-topology:link={:s}/simap-telemetry:simap-telemetry'
    ENDPOINT = '/ietf-network:networks/network={:s}/ietf-network-topology:link={:s}'

    def __init__(self, restconf_client : RestConfClient, network_id : str, link_id : str):
        self._restconf_client = restconf_client
@@ -197,8 +197,8 @@ class LinkTelemetry:

    def get(self) -> Dict:
        endpoint = LinkTelemetry.ENDPOINT.format(self._network_id, self._link_id)
        telemetry : Dict = self._restconf_client.get(endpoint)
        return telemetry
        link : Dict = self._restconf_client.get(endpoint)
        return link.get('ietf-network-topology:link', [{}])[0].get('simap-telemetry:simap-telemetry', {})

    def update(
        self, bandwidth_utilization : float, latency : float,
@@ -217,7 +217,10 @@ class LinkTelemetry:

    def delete(self) -> None:
        endpoint = LinkTelemetry.ENDPOINT.format(self._network_id, self._link_id)
        self._restconf_client.delete(endpoint)
        link     = {'link-id': self._link_id, 'simap-telemetry:simap-telemetry': {}}
        network  = {'network-id': self._network_id, 'ietf-network-topology:link': [link]}
        payload  = {'ietf-network:networks': {'network': [network]}}
        self._restconf_client.patch(endpoint, payload)


class Link: