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

Device component - IETF ACTN Drivers:

- Fixed handlers for OSU Tunnel and EthT Services to use alternative (v2) RestConf endpoints as they are not standardized
parent 47d85d5f
Loading
Loading
Loading
Loading
+19 −9
Original line number Diff line number Diff line
@@ -44,20 +44,30 @@ class IetfActnDriver(_Driver):
        self.__started = threading.Event()
        self.__terminate = threading.Event()

        restconf_settings = copy.deepcopy(settings)
        restconf_settings.pop('base_url', None)
        restconf_settings.pop('import_topology', None)
        restconf_settings['logger'] = logging.getLogger(__name__ + '.RestConfClient')
        self._rest_conf_client = RestConfClient(address, port=port, **restconf_settings)
        self._handler_etht_service = EthtServiceHandler(self._rest_conf_client)
        self._handler_net_topology = NetworkTopologyHandler(self._rest_conf_client, **settings)
        self._handler_osu_tunnel = OsuTunnelHandler(self._rest_conf_client)
        restconf_v1_settings = copy.deepcopy(settings)
        restconf_v1_settings.pop('base_url', None)
        restconf_v1_settings.pop('import_topology', None)
        restconf_v1_settings['logger'] = logging.getLogger(__name__ + '.RestConfClient_v1')

        self._rest_conf_v1_client = RestConfClient(address, port=port, **restconf_v1_settings)
        self._handler_net_topology = NetworkTopologyHandler(self._rest_conf_v1_client, **settings)

        restconf_v2_settings = copy.deepcopy(settings)
        restconf_v2_settings.pop('base_url', None)
        restconf_v2_settings.pop('import_topology', None)
        restconf_v2_settings['restconf_version'] = 'v2'
        restconf_v2_settings['logger'] = logging.getLogger(__name__ + '.RestConfClient_v2')

        self._rest_conf_v2_client = RestConfClient(address, port=port, **restconf_v2_settings)
        self._handler_etht_service = EthtServiceHandler(self._rest_conf_v2_client)
        self._handler_osu_tunnel = OsuTunnelHandler(self._rest_conf_v2_client)

    def Connect(self) -> bool:
        with self.__lock:
            if self.__started.is_set(): return True
            try:
                self._rest_conf_client._discover_base_url()
                self._rest_conf_v1_client._discover_base_url()
                self._rest_conf_v2_client._discover_base_url()
            except requests.exceptions.Timeout:
                LOGGER.exception('Timeout exception checking connectivity')
                return False