From 1b583bf30cdea7f89b66a7585875dc6fea2b13a8 Mon Sep 17 00:00:00 2001 From: jinsaihang Date: Mon, 14 Oct 2024 16:46:30 +0800 Subject: [PATCH 1/2] modify print log Signed-off-by: jinsaihang --- sysSentry-1.0.2/src/python/syssentry/alarm.py | 10 +++++----- sysSentry-1.0.2/src/python/syssentry/load_mods.py | 14 +++++++++++--- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/sysSentry-1.0.2/src/python/syssentry/alarm.py b/sysSentry-1.0.2/src/python/syssentry/alarm.py index bff527c..810bfa9 100644 --- a/sysSentry-1.0.2/src/python/syssentry/alarm.py +++ b/sysSentry-1.0.2/src/python/syssentry/alarm.py @@ -96,15 +96,15 @@ def alarm_register(): logging.info(f"alarm_register: {task_name} is registered") task = TasksMap.tasks_dict[task_type][task_name] alarm_id = task.alarm_id + alarm_clear_time = task.alarm_clear_time + if not check_alarm_clear_time_if_positive_integer(alarm_clear_time): + logging.warning(f"Invalid alarm_clear_time {alarm_clear_time}: ignore {task_name} alarm") + continue if not check_alarm_id_if_number(alarm_id): logging.warning(f"Invalid alarm_id {alarm_id}: ignore {task_name} alarm") continue if alarm_id < MIN_ALARM_ID or alarm_id > MAX_ALARM_ID: - logging.warning(f"Invalid alarm_id {alarm_id}: ignore {task_name} alarm") - continue - alarm_clear_time = task.alarm_clear_time - if not check_alarm_clear_time_if_positive_integer(alarm_clear_time): - logging.warning(f"Invalid alarm_clear_time {alarm_clear_time}: ignore {task_name} alarm") + logging.warning(f"Invalid alarm_id, ignore {task_name} alarm") continue try: alarm_clear_time = int(alarm_clear_time) diff --git a/sysSentry-1.0.2/src/python/syssentry/load_mods.py b/sysSentry-1.0.2/src/python/syssentry/load_mods.py index f74f165..2ad7c6e 100644 --- a/sysSentry-1.0.2/src/python/syssentry/load_mods.py +++ b/sysSentry-1.0.2/src/python/syssentry/load_mods.py @@ -199,14 +199,22 @@ def parse_mod_conf(mod_name, mod_conf): try: task.alarm_id = int(mod_conf.get(CONF_TASK, CONF_ALARM_ID)) - task.alarm_clear_time = int(mod_conf.get(CONF_TASK, CONF_ALARM_CLEAR_TIME)) if not (MIN_ALARM_ID <= task.alarm_id <= MAX_ALARM_ID): raise ValueError("Invalid alarm_id") except ValueError: task.alarm_id = mod_conf.get(CONF_TASK, CONF_ALARM_ID) - task.alarm_clear_time = mod_conf.get(CONF_TASK, CONF_ALARM_CLEAR_TIME) except configparser.NoOptionError: - logging.warning("Unset alarm_clear_time, use 15s as default") + logging.warning(f"{mod_name} alarm_id not set") + task.alarm_id = None + task.alarm_clear_time = None + + if task.alarm_id is not None: + try: + task.alarm_clear_time = int(mod_conf.get(CONF_TASK, CONF_ALARM_CLEAR_TIME)) + except ValueError: + task.alarm_clear_time = mod_conf.get(CONF_TASK, CONF_ALARM_CLEAR_TIME) + except configparser.NoOptionError: + logging.warning(f"{mod_name} not set alarm_clear_time, use 15s as default") if CONF_ONSTART in mod_conf.options(CONF_TASK): is_onstart = (mod_conf.get(CONF_TASK, CONF_ONSTART) == 'yes') -- Gitee From a7fd4cf0b4ce89a263804123dde028a38dfcb7c8 Mon Sep 17 00:00:00 2001 From: jinsaihang Date: Tue, 15 Oct 2024 17:12:04 +0800 Subject: [PATCH 2/2] optimize log printing Signed-off-by: jinsaihang --- sysSentry-1.0.2/src/python/syssentry/alarm.py | 55 ++++++++++--------- .../src/python/syssentry/load_mods.py | 9 +-- 2 files changed, 29 insertions(+), 35 deletions(-) diff --git a/sysSentry-1.0.2/src/python/syssentry/alarm.py b/sysSentry-1.0.2/src/python/syssentry/alarm.py index 810bfa9..c3f2ee1 100644 --- a/sysSentry-1.0.2/src/python/syssentry/alarm.py +++ b/sysSentry-1.0.2/src/python/syssentry/alarm.py @@ -76,16 +76,26 @@ def update_alarm_list(alarm_info: Xalarm): finally: alarm_list_lock.release() -def check_alarm_id_if_number(alarm_id): - if isinstance(alarm_id, int): - return True - else: +def validate_alarm_id(alarm_id): + if alarm_id is None: + return False + try: + alarm_id = int(alarm_id) + if MIN_ALARM_ID <= alarm_id <= MAX_ALARM_ID: + return True + else: + return False + except ValueError: return False -def check_alarm_clear_time_if_positive_integer(alarm_clear_time): - if isinstance(alarm_clear_time, int) and alarm_clear_time > 0: - return True - else: +def validate_alarm_clear_time(alarm_clear_time): + try: + alarm_clear_time = int(alarm_clear_time) + if alarm_clear_time > 0 and alarm_clear_time <= sys.maxsize: + return True + else: + return False + except ValueError: return False def alarm_register(): @@ -93,34 +103,25 @@ def alarm_register(): # 初始化告警ID映射字典、告警老化时间字典 for task_type in TasksMap.tasks_dict: for task_name in TasksMap.tasks_dict[task_type]: - logging.info(f"alarm_register: {task_name} is registered") task = TasksMap.tasks_dict[task_type][task_name] - alarm_id = task.alarm_id - alarm_clear_time = task.alarm_clear_time - if not check_alarm_clear_time_if_positive_integer(alarm_clear_time): - logging.warning(f"Invalid alarm_clear_time {alarm_clear_time}: ignore {task_name} alarm") + if not validate_alarm_id(task.alarm_id): + logging.warning(f"Invalid alarm_id {task.alarm_id}: ignore {task_name} alarm") continue - if not check_alarm_id_if_number(alarm_id): - logging.warning(f"Invalid alarm_id {alarm_id}: ignore {task_name} alarm") - continue - if alarm_id < MIN_ALARM_ID or alarm_id > MAX_ALARM_ID: - logging.warning(f"Invalid alarm_id, ignore {task_name} alarm") - continue - try: - alarm_clear_time = int(alarm_clear_time) - if alarm_clear_time <= 0: - raise ValueError("Not a positive integer") - if alarm_clear_time > sys.maxsize: - raise ValueError("Exceeds maximum value for int") - except (ValueError, OverflowError, TypeError) as e: - logging.warning(f"Invalid alarm_clear_time {alarm_clear_time}: ignore {task_name} alarm") + if not validate_alarm_clear_time(task.alarm_clear_time): + logging.warning(f"Invalid alarm_clear_time {task.alarm_clear_time}: ignore {task_name} alarm") continue + task.alarm_id = int(task.alarm_id) + task.alarm_clear_time = int(task.alarm_clear_time) + alarm_id = task.alarm_id + alarm_clear_time = task.alarm_clear_time + alarm_list_dict[alarm_id] = [] task_alarm_id_dict[task_name] = alarm_id if alarm_id not in alarm_id_clear_time_dict: alarm_id_clear_time_dict[alarm_id] = alarm_clear_time else: alarm_id_clear_time_dict[alarm_id] = max(alarm_clear_time, alarm_id_clear_time_dict[alarm_id]) + logging.info(f"alarm_register: {task_name} is registered") # 注册告警回调 id_filter = [True] * 128 clientId = xalarm_register(update_alarm_list, id_filter) diff --git a/sysSentry-1.0.2/src/python/syssentry/load_mods.py b/sysSentry-1.0.2/src/python/syssentry/load_mods.py index 2ad7c6e..78db446 100644 --- a/sysSentry-1.0.2/src/python/syssentry/load_mods.py +++ b/sysSentry-1.0.2/src/python/syssentry/load_mods.py @@ -198,20 +198,13 @@ def parse_mod_conf(mod_name, mod_conf): task.load_enabled = is_enabled try: - task.alarm_id = int(mod_conf.get(CONF_TASK, CONF_ALARM_ID)) - if not (MIN_ALARM_ID <= task.alarm_id <= MAX_ALARM_ID): - raise ValueError("Invalid alarm_id") - except ValueError: task.alarm_id = mod_conf.get(CONF_TASK, CONF_ALARM_ID) except configparser.NoOptionError: - logging.warning(f"{mod_name} alarm_id not set") task.alarm_id = None - task.alarm_clear_time = None + logging.warning(f"{mod_name} alarm_id not set, alarm_id is None") if task.alarm_id is not None: try: - task.alarm_clear_time = int(mod_conf.get(CONF_TASK, CONF_ALARM_CLEAR_TIME)) - except ValueError: task.alarm_clear_time = mod_conf.get(CONF_TASK, CONF_ALARM_CLEAR_TIME) except configparser.NoOptionError: logging.warning(f"{mod_name} not set alarm_clear_time, use 15s as default") -- Gitee