import json
import threading
from collections import defaultdict, namedtuple
+from enum import IntEnum
import rados
import re
import sys
def emit(self, record):
levelmap = {
- 'DEBUG': MgrModule.CLUSTER_LOG_PRIO_DEBUG,
- 'INFO': MgrModule.CLUSTER_LOG_PRIO_INFO,
- 'WARNING': MgrModule.CLUSTER_LOG_PRIO_WARN,
- 'ERROR': MgrModule.CLUSTER_LOG_PRIO_ERROR,
- 'CRITICAL': MgrModule.CLUSTER_LOG_PRIO_ERROR,
+ 'DEBUG': MgrModule.ClusterLogPrio.DEBUG,
+ 'INFO': MgrModule.ClusterLogPrio.INFO,
+ 'WARNING': MgrModule.ClusterLogPrio.WARN,
+ 'ERROR': MgrModule.ClusterLogPrio.ERROR,
+ 'CRITICAL': MgrModule.ClusterLogPrio.ERROR,
}
level = levelmap[record.levelname]
if record.levelno >= self.level:
NONE = 1
# Cluster log priorities
- CLUSTER_LOG_PRIO_DEBUG = 0
- CLUSTER_LOG_PRIO_INFO = 1
- CLUSTER_LOG_PRIO_SEC = 2
- CLUSTER_LOG_PRIO_WARN = 3
- CLUSTER_LOG_PRIO_ERROR = 4
+ class ClusterLogPrio(IntEnum):
+ DEBUG = 0
+ INFO = 1
+ SEC = 2
+ WARN = 3
+ ERROR = 4
def __init__(self, module_name, py_modules_ptr, this_ptr):
self.module_name = module_name
def cluster_log(self, channel, priority, message):
"""
:param channel: The log channel. This can be 'cluster', 'audit', ...
- :type channel: str
- :param priority: The log message priority. This can be
- CLUSTER_LOG_PRIO_DEBUG, CLUSTER_LOG_PRIO_INFO,
- CLUSTER_LOG_PRIO_SEC, CLUSTER_LOG_PRIO_WARN or
- CLUSTER_LOG_PRIO_ERROR.
- :type priority: int
+ :param priority: The log message priority.
:param message: The message to log.
- :type message: str
"""
- self._ceph_cluster_log(channel, priority, message)
+ self._ceph_cluster_log(channel, priority.value, message)
@property
def version(self):
return self._insights_set_now_offset(inbuf, command)
elif command['prefix'] == 'mgr self-test cluster-log':
priority_map = {
- 'info': self.CLUSTER_LOG_PRIO_INFO,
- 'security': self.CLUSTER_LOG_PRIO_SEC,
- 'warning': self.CLUSTER_LOG_PRIO_WARN,
- 'error': self.CLUSTER_LOG_PRIO_ERROR
+ 'info': self.ClusterLogPrio.INFO,
+ 'security': self.ClusterLogPrio.SEC,
+ 'warning': self.ClusterLogPrio.WARN,
+ 'error': self.ClusterLogPrio.ERROR
}
self.cluster_log(command['channel'],
priority_map[command['priority']],