diff --git a/pandora_console/ChangeLog b/pandora_console/ChangeLog index 03eaf20745..15c3fcc60b 100644 --- a/pandora_console/ChangeLog +++ b/pandora_console/ChangeLog @@ -1,3 +1,33 @@ +2009-08-01 Miguel de Dios + + * include/functions_menu.php: fix bug that introduce obligatory autorefresh + and maybe some extension run bad with autorefresh. + + *include/functions_reporting.php: add function + "get_agent_module_info_with_filter", this function is similar more or less + at "get_agent_module_info" but the function can set SQL filter for + tune the result. + *include/functions_ui.php: add more features at function "print_group_icon" + can set style and only icon not link. + *images/so_aix_small.png, images/network_small.png, images/so_bsd_small.png, + images/so_solaris_small.png, images/so_other_small.png, + images/so_cisco_small.png, + images/status_sets/default/agent_critical_ball.png, + images/status_sets/default/module_warning_ball.png, + images/status_sets/default/module_ok_ball.png, + images/status_sets/default/alert_fired_ball.png, + images/status_sets/default/agent_warning_ball.png, + images/status_sets/default/agent_no_data_ball.png, + images/status_sets/default/alert_disabled_square.png, + images/status_sets/default/agent_no_monitors_ball.png, + images/status_sets/default/agent_down_ball.png, + images/status_sets/default/agent_ok_ball.png, + images/status_sets/default/alert_disabled_ball.png, + images/status_sets/default/module_critical_ball.png, + images/status_sets/default/alert_not_fired_ball.png, + images/so_win_small.png, images/so_hpux_small.png, images/so_mac_small.png, + images/so_linux_small.png: add many icons for many purposes and new + features near in the time. 2009-09-03 Sacnho Lerena diff --git a/pandora_console/images/network_small.png b/pandora_console/images/network_small.png new file mode 100644 index 0000000000..20b62042c0 Binary files /dev/null and b/pandora_console/images/network_small.png differ diff --git a/pandora_console/images/so_aix_small.png b/pandora_console/images/so_aix_small.png new file mode 100644 index 0000000000..c5ce1922bc Binary files /dev/null and b/pandora_console/images/so_aix_small.png differ diff --git a/pandora_console/images/so_bsd_small.png b/pandora_console/images/so_bsd_small.png new file mode 100644 index 0000000000..d5e2692d98 Binary files /dev/null and b/pandora_console/images/so_bsd_small.png differ diff --git a/pandora_console/images/so_cisco_small.png b/pandora_console/images/so_cisco_small.png new file mode 100644 index 0000000000..e170c85d09 Binary files /dev/null and b/pandora_console/images/so_cisco_small.png differ diff --git a/pandora_console/images/so_hpux_small.png b/pandora_console/images/so_hpux_small.png new file mode 100644 index 0000000000..6208c064d2 Binary files /dev/null and b/pandora_console/images/so_hpux_small.png differ diff --git a/pandora_console/images/so_linux_small.png b/pandora_console/images/so_linux_small.png new file mode 100644 index 0000000000..c198a0664e Binary files /dev/null and b/pandora_console/images/so_linux_small.png differ diff --git a/pandora_console/images/so_mac_small.png b/pandora_console/images/so_mac_small.png new file mode 100644 index 0000000000..3ebbeecc84 Binary files /dev/null and b/pandora_console/images/so_mac_small.png differ diff --git a/pandora_console/images/so_other_small.png b/pandora_console/images/so_other_small.png new file mode 100644 index 0000000000..d6767d7776 Binary files /dev/null and b/pandora_console/images/so_other_small.png differ diff --git a/pandora_console/images/so_solaris_small.png b/pandora_console/images/so_solaris_small.png new file mode 100644 index 0000000000..e4b36f4d4f Binary files /dev/null and b/pandora_console/images/so_solaris_small.png differ diff --git a/pandora_console/images/so_win_small.png b/pandora_console/images/so_win_small.png new file mode 100644 index 0000000000..6ee55db823 Binary files /dev/null and b/pandora_console/images/so_win_small.png differ diff --git a/pandora_console/images/status_sets/default/agent_critical_ball.png b/pandora_console/images/status_sets/default/agent_critical_ball.png new file mode 100755 index 0000000000..3a23a87013 Binary files /dev/null and b/pandora_console/images/status_sets/default/agent_critical_ball.png differ diff --git a/pandora_console/images/status_sets/default/agent_down_ball.png b/pandora_console/images/status_sets/default/agent_down_ball.png new file mode 100755 index 0000000000..7a58af5b01 Binary files /dev/null and b/pandora_console/images/status_sets/default/agent_down_ball.png differ diff --git a/pandora_console/images/status_sets/default/agent_no_data_ball.png b/pandora_console/images/status_sets/default/agent_no_data_ball.png new file mode 100755 index 0000000000..841319de1d Binary files /dev/null and b/pandora_console/images/status_sets/default/agent_no_data_ball.png differ diff --git a/pandora_console/images/status_sets/default/agent_no_monitors_ball.png b/pandora_console/images/status_sets/default/agent_no_monitors_ball.png new file mode 100755 index 0000000000..f0b9b3c123 Binary files /dev/null and b/pandora_console/images/status_sets/default/agent_no_monitors_ball.png differ diff --git a/pandora_console/images/status_sets/default/agent_ok_ball.png b/pandora_console/images/status_sets/default/agent_ok_ball.png new file mode 100755 index 0000000000..d5d63511fc Binary files /dev/null and b/pandora_console/images/status_sets/default/agent_ok_ball.png differ diff --git a/pandora_console/images/status_sets/default/agent_warning_ball.png b/pandora_console/images/status_sets/default/agent_warning_ball.png new file mode 100755 index 0000000000..63bfee13a5 Binary files /dev/null and b/pandora_console/images/status_sets/default/agent_warning_ball.png differ diff --git a/pandora_console/images/status_sets/default/alert_disabled_ball.png b/pandora_console/images/status_sets/default/alert_disabled_ball.png new file mode 100755 index 0000000000..7d0e20ea74 Binary files /dev/null and b/pandora_console/images/status_sets/default/alert_disabled_ball.png differ diff --git a/pandora_console/images/status_sets/default/alert_disabled_square.png b/pandora_console/images/status_sets/default/alert_disabled_square.png new file mode 100644 index 0000000000..f134058f56 Binary files /dev/null and b/pandora_console/images/status_sets/default/alert_disabled_square.png differ diff --git a/pandora_console/images/status_sets/default/alert_fired_ball.png b/pandora_console/images/status_sets/default/alert_fired_ball.png new file mode 100755 index 0000000000..f972c3a3a9 Binary files /dev/null and b/pandora_console/images/status_sets/default/alert_fired_ball.png differ diff --git a/pandora_console/images/status_sets/default/alert_not_fired_ball.png b/pandora_console/images/status_sets/default/alert_not_fired_ball.png new file mode 100755 index 0000000000..5185ccb18a Binary files /dev/null and b/pandora_console/images/status_sets/default/alert_not_fired_ball.png differ diff --git a/pandora_console/images/status_sets/default/module_critical_ball.png b/pandora_console/images/status_sets/default/module_critical_ball.png new file mode 100755 index 0000000000..432c2bdefd Binary files /dev/null and b/pandora_console/images/status_sets/default/module_critical_ball.png differ diff --git a/pandora_console/images/status_sets/default/module_ok_ball.png b/pandora_console/images/status_sets/default/module_ok_ball.png new file mode 100755 index 0000000000..53dc2519b8 Binary files /dev/null and b/pandora_console/images/status_sets/default/module_ok_ball.png differ diff --git a/pandora_console/images/status_sets/default/module_warning_ball.png b/pandora_console/images/status_sets/default/module_warning_ball.png new file mode 100755 index 0000000000..08d86ac79c Binary files /dev/null and b/pandora_console/images/status_sets/default/module_warning_ball.png differ diff --git a/pandora_console/include/functions_menu.php b/pandora_console/include/functions_menu.php index db38cb6e6c..e0f40cd4ec 100644 --- a/pandora_console/include/functions_menu.php +++ b/pandora_console/include/functions_menu.php @@ -145,7 +145,7 @@ function print_menu (&$menu) { $extensionInMenu = ''; } - $submenu_output .= ''.$sub["text"].''; + $submenu_output .= ''.$sub["text"].''; $submenu_output .= ''; } } diff --git a/pandora_console/include/functions_reporting.php b/pandora_console/include/functions_reporting.php index 12d745a790..8cf5a3c57d 100644 --- a/pandora_console/include/functions_reporting.php +++ b/pandora_console/include/functions_reporting.php @@ -838,4 +838,99 @@ function get_agent_module_info ($id_agent) { return $return; } +/** + * Get a detailed report of the modules of the agent + * + * @param int $id_agent Agent id to get the report for. + * + * @return array An array + */ +function get_agent_module_info_with_filter ($id_agent,$filter = '') { + global $config; + + $return = array (); + $return["modules"] = 0; //Number of modules + $return["monitor_normal"] = 0; //Number of 'good' monitors + $return["monitor_warning"] = 0; //Number of 'warning' monitors + $return["monitor_critical"] = 0; //Number of 'critical' monitors + $return["monitor_down"] = 0; //Number of 'down' monitors + $return["last_contact"] = 0; //Last agent contact + $return["interval"] = get_agent_interval ($id_agent); //How often the agent gets contacted + $return["status_img"] = print_status_image (STATUS_AGENT_NO_DATA, __('Agent without data'), true); + $return["alert_status"] = "notfired"; + $return["alert_img"] = print_status_image (STATUS_ALERT_NOT_FIRED, __('Alert not fired'), true); + $return["agent_group"] = get_agent_group ($id_agent); + + if (!give_acl ($config["id_user"], $return["agent_group"], "AR")) { + return $return; + } + + $sql = sprintf ("SELECT * FROM tagente_estado, tagente_modulo + WHERE tagente_estado.id_agente_modulo = tagente_modulo.id_agente_modulo AND + tagente_modulo.disabled = 0 AND tagente_modulo.id_agente = %d", $id_agent); + + $sql .= $filter; + + $modules = get_db_all_rows_sql ($sql); + + if ($modules === false) { + return $return; + } + + $now = get_system_time (); + + // Calculate modules for this agent + foreach ($modules as $module) { + $return["modules"]++; + + if ($module["module_interval"] > $return["interval"]) { + $return["interval"] = $module["module_interval"]; + } elseif ($module["module_interval"] == 0) { + $module["module_interval"] = $return["interval"]; + } + + if ($module["utimestamp"] > $return["last_contact"]) { + $return["last_contact"] = $module["utimestamp"]; + } + + if ($module["id_tipo_modulo"] < 21 || $module["id_tipo_modulo"] != 100) { + $async = 0; + } else { + $async = 1; + } + + if ($async == 0 && ($module["utimestamp"] < ($now - $module["module_interval"] * 2))) { + $return["monitor_down"]++; + } elseif ($module["estado"] == 2) { + $return["monitor_warning"]++; + } elseif ($module["estado"] == 1) { + $return["monitor_critical"]++; + } else { + $return["monitor_normal"]++; + } + } + + if ($return["modules"] > 0) { + if ($return["modules"] == $return["monitor_down"]) + $return["status_img"] = print_status_image (STATUS_AGENT_DOWN, __('At least one module is in UKNOWN status'), true); + else if ($return["monitor_critical"] > 0) + $return["status_img"] = print_status_image (STATUS_AGENT_CRITICAL, __('At least one module in CRITICAL status'), true); + else if ($return["monitor_warning"] > 0) + $return["status_img"] = print_status_image (STATUS_AGENT_WARNING, __('At least one module in WARNING status'), true); + else + $return["status_img"] = print_status_image (STATUS_AGENT_OK, __('All Monitors OK'), true); + } + + //Alert not fired is by default + if (give_disabled_group ($return["agent_group"])) { + $return["alert_status"] = "disabled"; + $return["alert_img"] = print_status_image (STATUS_ALERT_DISABLED, __('Alert disabled'), true); + } elseif (check_alert_fired ($id_agent) == 1) { + $return["alert_status"] = "fired"; + $return["alert_img"] = print_status_image (STATUS_ALERT_FIRED, __('Alert fired'), true); + } + + return $return; +} + ?> diff --git a/pandora_console/include/functions_ui.php b/pandora_console/include/functions_ui.php index f6a064ae24..5551102bb1 100644 --- a/pandora_console/include/functions_ui.php +++ b/pandora_console/include/functions_ui.php @@ -199,16 +199,17 @@ function print_username ($username, $return = false) { * * @return string HTML code if return parameter is true. */ -function print_group_icon ($id_group, $return = false, $path = "groups_small") { +function print_group_icon ($id_group, $return = false, $path = "groups_small", $style='', $link = true) { $icon = (string) get_db_value ('icon', 'tgrupo', 'id_grupo', (int) $id_group); if (empty ($icon)) { return "-"; } - $output = ''; - $output .= ''.get_group_name ($id_group).''; - $output .= ''; + $output = ''; + if ($link) $output = ''; + $output .= ''.get_group_name ($id_group).''; + if ($link) $output .= ''; if (!$return) echo $output;