From f0d30f105747bb9bb26d4bb76e4c4df415ce5c5f Mon Sep 17 00:00:00 2001 From: mdtrooper Date: Tue, 14 Apr 2015 17:13:12 +0200 Subject: [PATCH] Moved some the functions to 'functions_reporting.php' --- .../include/functions_reporting.php | 236 ++++++++++++++++++ .../include/functions_reporting_html.php | 232 ----------------- 2 files changed, 236 insertions(+), 232 deletions(-) diff --git a/pandora_console/include/functions_reporting.php b/pandora_console/include/functions_reporting.php index ceda0c7c0a..133d80711e 100644 --- a/pandora_console/include/functions_reporting.php +++ b/pandora_console/include/functions_reporting.php @@ -2918,4 +2918,240 @@ function reporting_get_agentmodule_ttr ($id_agent_module, $period = 0, $date = 0 return $critical_period; } + + +/** + * Get a detailed report of the modules of the agent + * + * @param int $id_agent Agent id to get the report for. + * @param string $filter filter for get partial modules. + * + * @return array An array + */ +function reporting_get_agent_module_info ($id_agent, $filter = false) { + global $config; + + $return = array (); + $return["last_contact"] = 0; //Last agent contact + $return["status"] = STATUS_AGENT_NO_DATA; + $return["status_img"] = ui_print_status_image (STATUS_AGENT_NO_DATA, __('Agent without data'), true); + $return["alert_status"] = "notfired"; + $return["alert_value"] = STATUS_ALERT_NOT_FIRED; + $return["alert_img"] = ui_print_status_image (STATUS_ALERT_NOT_FIRED, __('Alert not fired'), true); + $return["agent_group"] = agents_get_agent_group ($id_agent); + + if (!check_acl ($config["id_user"], $return["agent_group"], "AR")) { + return $return; + } + + if ($filter != '') { + $filter = 'AND '; + } + + $filter = 'disabled = 0'; + + $modules = agents_get_modules($id_agent, false, $filter, true, false); + + if ($modules === false) { + return $return; + } + + $now = get_system_time (); + + // Get modules status for this agent + + $agent = db_get_row ("tagente", "id_agente", $id_agent); + + $return["total_count"] = $agent["total_count"]; + $return["normal_count"] = $agent["normal_count"]; + $return["warning_count"] = $agent["warning_count"]; + $return["critical_count"] = $agent["critical_count"]; + $return["unknown_count"] = $agent["unknown_count"]; + $return["fired_count"] = $agent["fired_count"]; + $return["notinit_count"] = $agent["notinit_count"]; + + if ($return["total_count"] > 0) { + if ($return["critical_count"] > 0) { + $return["status"] = STATUS_AGENT_CRITICAL; + $return["status_img"] = ui_print_status_image (STATUS_AGENT_CRITICAL, __('At least one module in CRITICAL status'), true); + } + else if ($return["warning_count"] > 0) { + $return["status"] = STATUS_AGENT_WARNING; + $return["status_img"] = ui_print_status_image (STATUS_AGENT_WARNING, __('At least one module in WARNING status'), true); + } + else if ($return["unknown_count"] > 0) { + $return["status"] = STATUS_AGENT_DOWN; + $return["status_img"] = ui_print_status_image (STATUS_AGENT_DOWN, __('At least one module is in UKNOWN status'), true); + } + else { + $return["status"] = STATUS_AGENT_OK; + $return["status_img"] = ui_print_status_image (STATUS_AGENT_OK, __('All Monitors OK'), true); + } + } + + //Alert not fired is by default + if ($return["fired_count"] > 0) { + $return["alert_status"] = "fired"; + $return["alert_img"] = ui_print_status_image (STATUS_ALERT_FIRED, __('Alert fired'), true); + $return["alert_value"] = STATUS_ALERT_FIRED; + } + elseif (groups_give_disabled_group ($return["agent_group"])) { + $return["alert_status"] = "disabled"; + $return["alert_value"] = STATUS_ALERT_DISABLED; + $return["alert_img"] = ui_print_status_image (STATUS_ALERT_DISABLED, __('Alert disabled'), true); + } + + return $return; +} + + +/** + * Print tiny statistics of the status of one agent, group, etc. + * + * @param mixed Array with the counts of the total modules, normal modules, critical modules, warning modules, unknown modules and fired alerts + * @param bool return or echo flag + * + * @return string html formatted tiny stats of modules/alerts of an agent + */ +function reporting_tiny_stats ($counts_info, $return = false, $type = 'agent', $separator = ':', $strict_user = false) { + global $config; + + $out = ''; + + // Depend the type of object, the stats will refer agents, modules... + switch ($type) { + case 'modules': + $template_title['total_count'] = __('%d Total modules'); + $template_title['normal_count'] = __('%d Normal modules'); + $template_title['critical_count'] = __('%d Critical modules'); + $template_title['warning_count'] = __('%d Warning modules'); + $template_title['unknown_count'] = __('%d Unknown modules'); + break; + case 'agent': + $template_title['total_count'] = __('%d Total modules'); + $template_title['normal_count'] = __('%d Normal modules'); + $template_title['critical_count'] = __('%d Critical modules'); + $template_title['warning_count'] = __('%d Warning modules'); + $template_title['unknown_count'] = __('%d Unknown modules'); + $template_title['fired_count'] = __('%d Fired alerts'); + break; + default: + $template_title['total_count'] = __('%d Total agents'); + $template_title['normal_count'] = __('%d Normal agents'); + $template_title['critical_count'] = __('%d Critical agents'); + $template_title['warning_count'] = __('%d Warning agents'); + $template_title['unknown_count'] = __('%d Unknown agents'); + $template_title['not_init_count'] = __('%d not init agents'); + $template_title['fired_count'] = __('%d Fired alerts'); + break; + } + + if ($strict_user && $type == 'agent') { + + $acltags = tags_get_user_module_and_tags ($config['id_user'],'AR', $strict_user); + $filter['disabled'] = 0; + $id_agent = $counts_info['id_agente']; + + $counts_info = array(); + $counts_info['normal_count'] = count(tags_get_agent_modules ($id_agent, false, $acltags, false, $filter, false, AGENT_MODULE_STATUS_NORMAL)); + $counts_info['warning_count'] = count(tags_get_agent_modules ($id_agent, false, $acltags, false, $filter, false, AGENT_MODULE_STATUS_WARNING)); + $counts_info['critical_count'] = count(tags_get_agent_modules ($id_agent, false, $acltags, false, $filter, false, AGENT_MODULE_STATUS_CRITICAL_BAD)); + $counts_info['notinit_count'] = count(tags_get_agent_modules ($id_agent, false, $acltags, false, $filter, false, AGENT_MODULE_STATUS_NOT_INIT)); + $counts_info['unknown_count'] = count(tags_get_agent_modules ($id_agent, false, $acltags, false, $filter, false, AGENT_MODULE_STATUS_UNKNOWN)); + $counts_info['total_count'] = $counts_info['normal_count'] + $counts_info['warning_count'] + $counts_info['critical_count'] + $counts_info['unknown_count'] + $counts_info['notinit_count']; + + $all_agent_modules = tags_get_agent_modules ($id_agent, false, $acltags, false, $filter); + if (!empty($all_agent_modules)) { + $mod_clause = "(".implode(',', array_keys($all_agent_modules)).")"; + + $counts_info['fired_count'] = (int) db_get_sql ("SELECT COUNT(times_fired) + FROM talert_template_modules + WHERE times_fired != 0 AND id_agent_module IN ".$mod_clause); + } + else { + $counts_info['fired_count'] = 0; + } + } + + // Store the counts in a data structure to print hidden divs with titles + $stats = array(); + + if (isset($counts_info['total_count'])) { + $not_init = isset($counts_info['notinit_count']) ? $counts_info['notinit_count'] : 0; + $total_count = $counts_info['total_count'] - $not_init; + $stats[] = array('name' => 'total_count', 'count' => $total_count, 'title' => sprintf($template_title['total_count'], $total_count)); + } + + if (isset($counts_info['normal_count'])) { + $normal_count = $counts_info['normal_count']; + $stats[] = array('name' => 'normal_count', 'count' => $normal_count, 'title' => sprintf($template_title['normal_count'], $normal_count)); + } + + if (isset($counts_info['critical_count'])) { + $critical_count = $counts_info['critical_count']; + $stats[] = array('name' => 'critical_count', 'count' => $critical_count, 'title' => sprintf($template_title['critical_count'], $critical_count)); + } + + if (isset($counts_info['warning_count'])) { + $warning_count = $counts_info['warning_count']; + $stats[] = array('name' => 'warning_count', 'count' => $warning_count, 'title' => sprintf($template_title['warning_count'], $warning_count)); + } + + if (isset($counts_info['unknown_count'])) { + $unknown_count = $counts_info['unknown_count']; + $stats[] = array('name' => 'unknown_count', 'count' => $unknown_count, 'title' => sprintf($template_title['unknown_count'], $unknown_count)); + } + + if (isset($counts_info['not_init_count'])) { + $not_init_count = $counts_info['not_init_count']; + $stats[] = array('name' => 'not_init_count', + 'count' => $not_init_count, + 'title' => sprintf($template_title['not_init_count'], $not_init_count)); + } + + if (isset($template_title['fired_count'])) { + if (isset($counts_info['fired_count'])) { + $fired_count = $counts_info['fired_count']; + $stats[] = array('name' => 'fired_count', 'count' => $fired_count, 'title' => sprintf($template_title['fired_count'], $fired_count)); + } + } + + $uniq_id = uniqid(); + + foreach ($stats as $stat) { + $params = array('id' => 'forced_title_' . $stat['name'] . '_' . $uniq_id, + 'class' => 'forced_title_layer', + 'content' => $stat['title'], + 'hidden' => true); + $out .= html_print_div($params, true); + } + + // If total count is less than 0, is an error. Never show negative numbers + if ($total_count < 0) { + $total_count = 0; + } + + $out .= '' . '' . $total_count . ''; + if (isset($fired_count) && $fired_count > 0) + $out .= ' ' . $separator . ' ' . $fired_count . ''; + if (isset($critical_count) && $critical_count > 0) + $out .= ' ' . $separator . ' ' . $critical_count . ''; + if (isset($warning_count) && $warning_count > 0) + $out .= ' ' . $separator . ' ' . $warning_count . ''; + if (isset($unknown_count) && $unknown_count > 0) + $out .= ' ' . $separator . ' ' . $unknown_count . ''; + if (isset($not_init_count) && $not_init_count > 0) + $out .= ' ' . $separator . ' ' . $not_init_count . ''; + if (isset($normal_count) && $normal_count > 0) + $out .= ' ' . $separator . ' ' . $normal_count . ''; + + $out .= ''; + + if ($return) { + return $out; + } + else { + echo $out; + } +} ?> \ No newline at end of file diff --git a/pandora_console/include/functions_reporting_html.php b/pandora_console/include/functions_reporting_html.php index 1afe06c768..db4b5e109a 100644 --- a/pandora_console/include/functions_reporting_html.php +++ b/pandora_console/include/functions_reporting_html.php @@ -3191,89 +3191,6 @@ function reporting_get_module_detailed_event ($id_modules, $period = 0, $date = } } -/** - * Get a detailed report of the modules of the agent - * - * @param int $id_agent Agent id to get the report for. - * @param string $filter filter for get partial modules. - * - * @return array An array - */ -function reporting_get_agent_module_info ($id_agent, $filter = false) { - global $config; - - $return = array (); - $return["last_contact"] = 0; //Last agent contact - $return["status"] = STATUS_AGENT_NO_DATA; - $return["status_img"] = ui_print_status_image (STATUS_AGENT_NO_DATA, __('Agent without data'), true); - $return["alert_status"] = "notfired"; - $return["alert_value"] = STATUS_ALERT_NOT_FIRED; - $return["alert_img"] = ui_print_status_image (STATUS_ALERT_NOT_FIRED, __('Alert not fired'), true); - $return["agent_group"] = agents_get_agent_group ($id_agent); - - if (!check_acl ($config["id_user"], $return["agent_group"], "AR")) { - return $return; - } - - if ($filter != '') { - $filter = 'AND '; - } - - $filter = 'disabled = 0'; - - $modules = agents_get_modules($id_agent, false, $filter, true, false); - - if ($modules === false) { - return $return; - } - - $now = get_system_time (); - - // Get modules status for this agent - - $agent = db_get_row ("tagente", "id_agente", $id_agent); - - $return["total_count"] = $agent["total_count"]; - $return["normal_count"] = $agent["normal_count"]; - $return["warning_count"] = $agent["warning_count"]; - $return["critical_count"] = $agent["critical_count"]; - $return["unknown_count"] = $agent["unknown_count"]; - $return["fired_count"] = $agent["fired_count"]; - $return["notinit_count"] = $agent["notinit_count"]; - - if ($return["total_count"] > 0) { - if ($return["critical_count"] > 0) { - $return["status"] = STATUS_AGENT_CRITICAL; - $return["status_img"] = ui_print_status_image (STATUS_AGENT_CRITICAL, __('At least one module in CRITICAL status'), true); - } - else if ($return["warning_count"] > 0) { - $return["status"] = STATUS_AGENT_WARNING; - $return["status_img"] = ui_print_status_image (STATUS_AGENT_WARNING, __('At least one module in WARNING status'), true); - } - else if ($return["unknown_count"] > 0) { - $return["status"] = STATUS_AGENT_DOWN; - $return["status_img"] = ui_print_status_image (STATUS_AGENT_DOWN, __('At least one module is in UKNOWN status'), true); - } - else { - $return["status"] = STATUS_AGENT_OK; - $return["status_img"] = ui_print_status_image (STATUS_AGENT_OK, __('All Monitors OK'), true); - } - } - - //Alert not fired is by default - if ($return["fired_count"] > 0) { - $return["alert_status"] = "fired"; - $return["alert_img"] = ui_print_status_image (STATUS_ALERT_FIRED, __('Alert fired'), true); - $return["alert_value"] = STATUS_ALERT_FIRED; - } - elseif (groups_give_disabled_group ($return["agent_group"])) { - $return["alert_status"] = "disabled"; - $return["alert_value"] = STATUS_ALERT_DISABLED; - $return["alert_img"] = ui_print_status_image (STATUS_ALERT_DISABLED, __('Alert disabled'), true); - } - - return $return; -} /** * This is the callback sorting function for SLA values descending @@ -5870,155 +5787,6 @@ function reporting_get_count_events_validated ($filter, $period = 0, $filter_event_warning, $filter_event_no_validated); } -/** - * Print tiny statistics of the status of one agent, group, etc. - * - * @param mixed Array with the counts of the total modules, normal modules, critical modules, warning modules, unknown modules and fired alerts - * @param bool return or echo flag - * - * @return string html formatted tiny stats of modules/alerts of an agent - */ -function reporting_tiny_stats ($counts_info, $return = false, $type = 'agent', $separator = ':', $strict_user = false) { - global $config; - - $out = ''; - - // Depend the type of object, the stats will refer agents, modules... - switch ($type) { - case 'modules': - $template_title['total_count'] = __('%d Total modules'); - $template_title['normal_count'] = __('%d Normal modules'); - $template_title['critical_count'] = __('%d Critical modules'); - $template_title['warning_count'] = __('%d Warning modules'); - $template_title['unknown_count'] = __('%d Unknown modules'); - break; - case 'agent': - $template_title['total_count'] = __('%d Total modules'); - $template_title['normal_count'] = __('%d Normal modules'); - $template_title['critical_count'] = __('%d Critical modules'); - $template_title['warning_count'] = __('%d Warning modules'); - $template_title['unknown_count'] = __('%d Unknown modules'); - $template_title['fired_count'] = __('%d Fired alerts'); - break; - default: - $template_title['total_count'] = __('%d Total agents'); - $template_title['normal_count'] = __('%d Normal agents'); - $template_title['critical_count'] = __('%d Critical agents'); - $template_title['warning_count'] = __('%d Warning agents'); - $template_title['unknown_count'] = __('%d Unknown agents'); - $template_title['not_init_count'] = __('%d not init agents'); - $template_title['fired_count'] = __('%d Fired alerts'); - break; - } - - if ($strict_user && $type == 'agent') { - - $acltags = tags_get_user_module_and_tags ($config['id_user'],'AR', $strict_user); - $filter['disabled'] = 0; - $id_agent = $counts_info['id_agente']; - - $counts_info = array(); - $counts_info['normal_count'] = count(tags_get_agent_modules ($id_agent, false, $acltags, false, $filter, false, AGENT_MODULE_STATUS_NORMAL)); - $counts_info['warning_count'] = count(tags_get_agent_modules ($id_agent, false, $acltags, false, $filter, false, AGENT_MODULE_STATUS_WARNING)); - $counts_info['critical_count'] = count(tags_get_agent_modules ($id_agent, false, $acltags, false, $filter, false, AGENT_MODULE_STATUS_CRITICAL_BAD)); - $counts_info['notinit_count'] = count(tags_get_agent_modules ($id_agent, false, $acltags, false, $filter, false, AGENT_MODULE_STATUS_NOT_INIT)); - $counts_info['unknown_count'] = count(tags_get_agent_modules ($id_agent, false, $acltags, false, $filter, false, AGENT_MODULE_STATUS_UNKNOWN)); - $counts_info['total_count'] = $counts_info['normal_count'] + $counts_info['warning_count'] + $counts_info['critical_count'] + $counts_info['unknown_count'] + $counts_info['notinit_count']; - - $all_agent_modules = tags_get_agent_modules ($id_agent, false, $acltags, false, $filter); - if (!empty($all_agent_modules)) { - $mod_clause = "(".implode(',', array_keys($all_agent_modules)).")"; - - $counts_info['fired_count'] = (int) db_get_sql ("SELECT COUNT(times_fired) - FROM talert_template_modules - WHERE times_fired != 0 AND id_agent_module IN ".$mod_clause); - } - else { - $counts_info['fired_count'] = 0; - } - } - - // Store the counts in a data structure to print hidden divs with titles - $stats = array(); - - if (isset($counts_info['total_count'])) { - $not_init = isset($counts_info['notinit_count']) ? $counts_info['notinit_count'] : 0; - $total_count = $counts_info['total_count'] - $not_init; - $stats[] = array('name' => 'total_count', 'count' => $total_count, 'title' => sprintf($template_title['total_count'], $total_count)); - } - - if (isset($counts_info['normal_count'])) { - $normal_count = $counts_info['normal_count']; - $stats[] = array('name' => 'normal_count', 'count' => $normal_count, 'title' => sprintf($template_title['normal_count'], $normal_count)); - } - - if (isset($counts_info['critical_count'])) { - $critical_count = $counts_info['critical_count']; - $stats[] = array('name' => 'critical_count', 'count' => $critical_count, 'title' => sprintf($template_title['critical_count'], $critical_count)); - } - - if (isset($counts_info['warning_count'])) { - $warning_count = $counts_info['warning_count']; - $stats[] = array('name' => 'warning_count', 'count' => $warning_count, 'title' => sprintf($template_title['warning_count'], $warning_count)); - } - - if (isset($counts_info['unknown_count'])) { - $unknown_count = $counts_info['unknown_count']; - $stats[] = array('name' => 'unknown_count', 'count' => $unknown_count, 'title' => sprintf($template_title['unknown_count'], $unknown_count)); - } - - if (isset($counts_info['not_init_count'])) { - $not_init_count = $counts_info['not_init_count']; - $stats[] = array('name' => 'not_init_count', - 'count' => $not_init_count, - 'title' => sprintf($template_title['not_init_count'], $not_init_count)); - } - - if (isset($template_title['fired_count'])) { - if (isset($counts_info['fired_count'])) { - $fired_count = $counts_info['fired_count']; - $stats[] = array('name' => 'fired_count', 'count' => $fired_count, 'title' => sprintf($template_title['fired_count'], $fired_count)); - } - } - - $uniq_id = uniqid(); - - foreach ($stats as $stat) { - $params = array('id' => 'forced_title_' . $stat['name'] . '_' . $uniq_id, - 'class' => 'forced_title_layer', - 'content' => $stat['title'], - 'hidden' => true); - $out .= html_print_div($params, true); - } - - // If total count is less than 0, is an error. Never show negative numbers - if ($total_count < 0) { - $total_count = 0; - } - - $out .= '' . '' . $total_count . ''; - if (isset($fired_count) && $fired_count > 0) - $out .= ' ' . $separator . ' ' . $fired_count . ''; - if (isset($critical_count) && $critical_count > 0) - $out .= ' ' . $separator . ' ' . $critical_count . ''; - if (isset($warning_count) && $warning_count > 0) - $out .= ' ' . $separator . ' ' . $warning_count . ''; - if (isset($unknown_count) && $unknown_count > 0) - $out .= ' ' . $separator . ' ' . $unknown_count . ''; - if (isset($not_init_count) && $not_init_count > 0) - $out .= ' ' . $separator . ' ' . $not_init_count . ''; - if (isset($normal_count) && $normal_count > 0) - $out .= ' ' . $separator . ' ' . $normal_count . ''; - - $out .= ''; - - if ($return) { - return $out; - } - else { - echo $out; - } -} function reporting_network_interfaces_table ($content, $report, $mini, $item_title = "", &$table = null, &$pdf = null) {