Loading src/device/service/drivers/morpheus/MorpheusApiDriver.py +16 −7 Original line number Diff line number Diff line Loading @@ -152,7 +152,7 @@ class MorpheusApiDriver(_Driver): try: event = self.__detection_queue.get(block=False, timeout=0.1) if event is not None: yield (event.get('eventTime', time.time()), 'detection_event', error.get('event'),) yield (event.get('eventTime', time.time()), 'detection_event', event.get('event'),) except queue.Empty: detection_event_empty = True Loading Loading @@ -282,16 +282,25 @@ class MorpheusApiDriver(_Driver): with requests.get(url, headers=self.__headers, stream=True, verify=False) as response: verify=False, timeout=(3.05, None)) as response: if not response.ok: LOGGER.error(f'Error connecting to event stream: {response.status_code}') return for line in response.iter_lines(decode_unicode=True): if not line: continue if line.startswith('data:'): data = line[5:].strip() LOGGER.error(f'Data received: {data}') try: event = response.json() queue.put(event['data']['ietf-restconf:notification']) event = json.loads(data) queue.put(event['ietf-restconf:notification']) except json.JSONDecodeError as e: LOGGER.error(f'Error parsing event: {e}') except KeyError as e: LOGGER.error(f'Missing expected key in event: {e}') except Exception as e: # pylint: disable=broad-except LOGGER.exception('Error in notification stream handler') Loading
src/device/service/drivers/morpheus/MorpheusApiDriver.py +16 −7 Original line number Diff line number Diff line Loading @@ -152,7 +152,7 @@ class MorpheusApiDriver(_Driver): try: event = self.__detection_queue.get(block=False, timeout=0.1) if event is not None: yield (event.get('eventTime', time.time()), 'detection_event', error.get('event'),) yield (event.get('eventTime', time.time()), 'detection_event', event.get('event'),) except queue.Empty: detection_event_empty = True Loading Loading @@ -282,16 +282,25 @@ class MorpheusApiDriver(_Driver): with requests.get(url, headers=self.__headers, stream=True, verify=False) as response: verify=False, timeout=(3.05, None)) as response: if not response.ok: LOGGER.error(f'Error connecting to event stream: {response.status_code}') return for line in response.iter_lines(decode_unicode=True): if not line: continue if line.startswith('data:'): data = line[5:].strip() LOGGER.error(f'Data received: {data}') try: event = response.json() queue.put(event['data']['ietf-restconf:notification']) event = json.loads(data) queue.put(event['ietf-restconf:notification']) except json.JSONDecodeError as e: LOGGER.error(f'Error parsing event: {e}') except KeyError as e: LOGGER.error(f'Missing expected key in event: {e}') except Exception as e: # pylint: disable=broad-except LOGGER.exception('Error in notification stream handler')