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

SIMAP Connector:

- Fix SimapUpdater AnyEvent dispatching
parent 15c881a3
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@
import logging, queue, threading
from typing import Any, Callable, Optional, Set
from common.DeviceTypes import DeviceTypeEnum
from common.proto.context_pb2 import DeviceEvent, Empty, LinkEvent, TopologyEvent
from common.proto.context_pb2 import DeviceEvent, Empty, EventTypeEnum, LinkEvent, TopologyEvent
from common.tools.grpc.BaseEventCollector import BaseEventCollector
from common.tools.grpc.BaseEventDispatcher import BaseEventDispatcher
from common.tools.grpc.Tools import grpc_message_to_json_string
@@ -28,7 +28,7 @@ from simap_connector.Config import (
from .simap_client.RestConfClient import RestConfClient
from .simap_client.SimapClient import SimapClient
from .ObjectCache import CachedEntities, ObjectCache
from .Tools import EventTypeEnum, get_device_endpoint, get_link_endpoint
from .Tools import get_device_endpoint, get_link_endpoint


LOGGER = logging.getLogger(__name__)
@@ -70,12 +70,19 @@ class EventDispatcher(BaseEventDispatcher):

    # overwrite default _get_dispatcher() method
    def _get_dispatcher(self, event : Any) -> Optional[Callable]:
        LOGGER.info('event[1]={:s}'.format(grpc_message_to_json_string(event)))
        object_name = str(event.__class__.__name__).lower().replace('event', '')
        LOGGER.info('object_name[1]={:s}'.format(str(object_name)))
        if object_name == 'any':
            object_name = event.WhichOneof('event')
            LOGGER.info('object_name[2]={:s}'.format(str(object_name)))
            event = getattr(event, object_name)
            LOGGER.info('event[2]={:s}'.format(grpc_message_to_json_string(event)))

        event_type  = EventTypeEnum.Name(event.event.event_type).lower().replace('eventtype_', '')
        event_type = event.event.event_type
        LOGGER.info('event_type[1]={:s}'.format(str(event_type)))
        event_type  = EventTypeEnum.Name(event_type).lower().replace('eventtype_', '')
        LOGGER.info('event_type[2]={:s}'.format(str(event_type)))

        method_name = 'dispatch_{:s}_{:s}'.format(object_name, event_type)
        dispatcher  = getattr(self, method_name, None)