From d5d67f78f83d14d8583ff15d231697e3991002e3 Mon Sep 17 00:00:00 2001 From: Pablo Aragon Date: Thu, 18 Apr 2024 13:42:59 +0200 Subject: [PATCH] 13190-Fix SNMP console Severity & Max. hours old filter --- .../include/class/SnmpConsole.class.php | 80 ++++++------------- 1 file changed, 25 insertions(+), 55 deletions(-) diff --git a/pandora_console/include/class/SnmpConsole.class.php b/pandora_console/include/class/SnmpConsole.class.php index d166f03590..f564b6599d 100644 --- a/pandora_console/include/class/SnmpConsole.class.php +++ b/pandora_console/include/class/SnmpConsole.class.php @@ -554,6 +554,10 @@ class SnmpConsole extends HTML $filters = get_parameter('filter', []); // Build ranges. + if (empty($filters['filter_hours_ago']) === true) { + $filters['filter_hours_ago'] = 8; + } + $now_timestamp = time(); $interval_seconds = ($filters['filter_hours_ago'] * 3600); $ago_timestamp = ($now_timestamp - $interval_seconds); @@ -637,42 +641,25 @@ class SnmpConsole extends HTML $whereSubquery .= ' AND alerted = '.$filters['filter_alert']; } + $filters['filter_severity'] = (int) $filters['filter_severity']; if ($filters['filter_severity'] != -1) { // There are two special severity values aimed to match two different trap standard severities // in database: warning/critical and critical/normal. - if ($filters['filter_severity'] != EVENT_CRIT_OR_NORMAL - && $filters['filter_severity'] != EVENT_CRIT_WARNING_OR_CRITICAL + if ($filters['filter_severity'] !== EVENT_CRIT_OR_NORMAL + && $filters['filter_severity'] !== EVENT_CRIT_WARNING_OR_CRITICAL + && $filters['filter_severity'] !== EVENT_CRIT_NOT_NORMAL ) { // Test if enterprise is installed to search oid in text or oid field in ttrap. - if ($config['enterprise_installed']) { - $whereSubquery .= ' AND ( - (alerted = 0 AND severity = '.$filters['filter_severity'].') OR - (alerted = 1 AND priority = '.$filters['filter_severity'].'))'; - } else { - $whereSubquery .= ' AND ( - (alerted = 0 AND 1 = '.$filters['filter_severity'].') OR - (alerted = 1 AND priority = '.$filters['filter_severity'].'))'; - } + $whereSubquery .= ' AND severity = '.$filters['filter_severity']; } else if ($filters['filter_severity'] === EVENT_CRIT_WARNING_OR_CRITICAL) { // Test if enterprise is installed to search oid in text or oid field in ttrap. - if ($config['enterprise_installed']) { - $whereSubquery .= ' AND ( - (alerted = 0 AND (severity = '.EVENT_CRIT_WARNING.' OR severity = '.EVENT_CRIT_CRITICAL.')) OR - (alerted = 1 AND (priority = '.EVENT_CRIT_WARNING.' OR priority = '.EVENT_CRIT_CRITICAL.')))'; - } else { - $whereSubquery .= ' AND ( - (alerted = 1 AND (priority = '.EVENT_CRIT_WARNING.' OR priority = '.EVENT_CRIT_CRITICAL.')))'; - } + $whereSubquery .= ' AND (severity = '.EVENT_CRIT_WARNING.' OR severity = '.EVENT_CRIT_CRITICAL.' OR severity = '.EVENT_CRIT_WARNING_OR_CRITICAL.')'; } else if ($filters['filter_severity'] === EVENT_CRIT_OR_NORMAL) { // Test if enterprise is installed to search oid in text or oid field in ttrap. - if ($config['enterprise_installed']) { - $whereSubquery .= ' AND ( - (alerted = 0 AND (severity = '.EVENT_CRIT_NORMAL.' OR severity = '.EVENT_CRIT_CRITICAL.')) OR - (alerted = 1 AND (priority = '.EVENT_CRIT_NORMAL.' OR priority = '.EVENT_CRIT_CRITICAL.')))'; - } else { - $whereSubquery .= ' AND ( - (alerted = 1 AND (priority = '.EVENT_CRIT_NORMAL.' OR priority = '.EVENT_CRIT_CRITICAL.')))'; - } + $whereSubquery .= ' AND (severity = '.EVENT_CRIT_NORMAL.' OR severity = '.EVENT_CRIT_CRITICAL.' OR severity = '.EVENT_CRIT_OR_NORMAL.')'; + } else if ($filters['filter_severity'] === EVENT_CRIT_NOT_NORMAL) { + // Test if enterprise is installed to search oid in text or oid field in ttrap. + $whereSubquery .= ' AND (severity = '.EVENT_CRIT_WARNING.' OR severity = '.EVENT_CRIT_CRITICAL.' OR severity = '.EVENT_CRIT_NOT_NORMAL.')'; } } @@ -1142,42 +1129,25 @@ class SnmpConsole extends HTML $whereSubquery .= ' AND alerted = '.$$alert; } - if ($severity != -1) { + $severity = (int) $severity; + if ($severity !== -1) { // There are two special severity values aimed to match two different trap standard severities // in database: warning/critical and critical/normal. - if ($severity != EVENT_CRIT_OR_NORMAL - && $severity != EVENT_CRIT_WARNING_OR_CRITICAL + if ($severity !== EVENT_CRIT_OR_NORMAL + && $severity !== EVENT_CRIT_WARNING_OR_CRITICAL + && $severity !== EVENT_CRIT_NOT_NORMAL ) { // Test if enterprise is installed to search oid in text or oid field in ttrap. - if ($config['enterprise_installed']) { - $whereSubquery .= ' AND ( - (alerted = 0 AND severity = '.$severity.') OR - (alerted = 1 AND priority = '.$severity.'))'; - } else { - $whereSubquery .= ' AND ( - (alerted = 0 AND 1 = '.$severity.') OR - (alerted = 1 AND priority = '.$severity.'))'; - } + $whereSubquery .= ' AND severity = '.$severity; } else if ($severity === EVENT_CRIT_WARNING_OR_CRITICAL) { // Test if enterprise is installed to search oid in text or oid field in ttrap. - if ($config['enterprise_installed']) { - $whereSubquery .= ' AND ( - (alerted = 0 AND (severity = '.EVENT_CRIT_WARNING.' OR severity = '.EVENT_CRIT_CRITICAL.')) OR - (alerted = 1 AND (priority = '.EVENT_CRIT_WARNING.' OR priority = '.EVENT_CRIT_CRITICAL.')))'; - } else { - $whereSubquery .= ' AND ( - (alerted = 1 AND (priority = '.EVENT_CRIT_WARNING.' OR priority = '.EVENT_CRIT_CRITICAL.')))'; - } + $whereSubquery .= ' AND (severity = '.EVENT_CRIT_WARNING.' OR severity = '.EVENT_CRIT_CRITICAL.' OR severity = '.EVENT_CRIT_WARNING_OR_CRITICAL.')'; } else if ($severity === EVENT_CRIT_OR_NORMAL) { // Test if enterprise is installed to search oid in text or oid field in ttrap. - if ($config['enterprise_installed']) { - $whereSubquery .= ' AND ( - (alerted = 0 AND (severity = '.EVENT_CRIT_NORMAL.' OR severity = '.EVENT_CRIT_CRITICAL.')) OR - (alerted = 1 AND (priority = '.EVENT_CRIT_NORMAL.' OR priority = '.EVENT_CRIT_CRITICAL.')))'; - } else { - $whereSubquery .= ' AND ( - (alerted = 1 AND (priority = '.EVENT_CRIT_NORMAL.' OR priority = '.EVENT_CRIT_CRITICAL.')))'; - } + $whereSubquery .= ' AND (severity = '.EVENT_CRIT_NORMAL.' OR severity = '.EVENT_CRIT_CRITICAL.' OR severity = '.EVENT_CRIT_OR_NORMAL.')'; + } else if ($severity === EVENT_CRIT_NOT_NORMAL) { + // Test if enterprise is installed to search oid in text or oid field in ttrap. + $whereSubquery .= ' AND (severity = '.EVENT_CRIT_WARNING.' OR severity = '.EVENT_CRIT_CRITICAL.' OR severity = '.EVENT_CRIT_NOT_NORMAL.')'; } }