mirror of
https://github.com/pandorafms/pandorafms.git
synced 2025-07-24 22:35:58 +02:00
2012-06-07 Dario Rodriguez <dario.rodriguez@artica.es>
* include/functions_os.php: Created this file. include/functions_groups, operation/tree.php: Fixed a bug related to search improved performance of OS tab for tree view. MERGED FROM 4.0.2 git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@6441 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
This commit is contained in:
parent
0a8d926336
commit
a3d94759dd
@ -1,3 +1,12 @@
|
|||||||
|
2012-06-07 Dario Rodriguez <dario.rodriguez@artica.es>
|
||||||
|
|
||||||
|
* include/functions_os.php: Created this file.
|
||||||
|
include/functions_groups,
|
||||||
|
operation/tree.php: Fixed a bug related to search
|
||||||
|
improved performance of OS tab for tree view.
|
||||||
|
|
||||||
|
MERGED FROM 4.0.2
|
||||||
|
|
||||||
2012-06-07 Hirofumi Kosaka <kosaka@rworks.jp>
|
2012-06-07 Hirofumi Kosaka <kosaka@rworks.jp>
|
||||||
|
|
||||||
* include/functions_ui.php: Merged from 4.0.x: Fixed bug:
|
* include/functions_ui.php: Merged from 4.0.x: Fixed bug:
|
||||||
|
@ -852,6 +852,8 @@ function groups_agent_unknown ($group_array) {
|
|||||||
$group_clause = implode (",", $group_array);
|
$group_clause = implode (",", $group_array);
|
||||||
$group_clause = "(" . $group_clause . ")";
|
$group_clause = "(" . $group_clause . ")";
|
||||||
|
|
||||||
|
//TODO REVIEW ORACLE AND POSTGRES
|
||||||
|
|
||||||
return db_get_sql ("SELECT COUNT( DISTINCT tagente_estado.id_agente) FROM tagente_estado, tagente, tagente_modulo WHERE tagente.disabled = 0 AND tagente_estado.utimestamp != 0 AND tagente_modulo.id_agente_modulo = tagente_estado.id_agente_modulo AND tagente_modulo.disabled = 0 AND estado = 3 AND tagente_estado.id_agente = tagente.id_agente AND tagente.id_grupo IN $group_clause");
|
return db_get_sql ("SELECT COUNT( DISTINCT tagente_estado.id_agente) FROM tagente_estado, tagente, tagente_modulo WHERE tagente.disabled = 0 AND tagente_estado.utimestamp != 0 AND tagente_modulo.id_agente_modulo = tagente_estado.id_agente_modulo AND tagente_modulo.disabled = 0 AND estado = 3 AND tagente_estado.id_agente = tagente.id_agente AND tagente.id_grupo IN $group_clause");
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -877,6 +879,8 @@ function groups_agent_ok ($group_array) {
|
|||||||
//If MAX(estado) is 0 it means all modules has status 0 => OK
|
//If MAX(estado) is 0 it means all modules has status 0 => OK
|
||||||
//Then we count the agents of the group selected to know how many agents are in OK status
|
//Then we count the agents of the group selected to know how many agents are in OK status
|
||||||
|
|
||||||
|
//TODO REVIEW ORACLE AND POSTGRES
|
||||||
|
|
||||||
return db_get_sql ("SELECT COUNT(max_estado) FROM (SELECT MAX(tagente_estado.estado) as max_estado FROM tagente_estado, tagente, tagente_modulo WHERE tagente.disabled = 0 AND tagente_estado.utimestamp != 0 AND tagente_modulo.id_agente_modulo = tagente_estado.id_agente_modulo AND tagente_modulo.disabled = 0 AND tagente_estado.id_agente = tagente.id_agente AND tagente.id_grupo IN $group_clause GROUP BY tagente.id_agente HAVING max_estado = 0) AS S1");
|
return db_get_sql ("SELECT COUNT(max_estado) FROM (SELECT MAX(tagente_estado.estado) as max_estado FROM tagente_estado, tagente, tagente_modulo WHERE tagente.disabled = 0 AND tagente_estado.utimestamp != 0 AND tagente_modulo.id_agente_modulo = tagente_estado.id_agente_modulo AND tagente_modulo.disabled = 0 AND tagente_estado.id_agente = tagente.id_agente AND tagente.id_grupo IN $group_clause GROUP BY tagente.id_agente HAVING max_estado = 0) AS S1");
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -901,6 +905,8 @@ function groups_agent_critical ($group_array) {
|
|||||||
//If estado = 1 it means at leas 1 module is in critical status so the agent is critical
|
//If estado = 1 it means at leas 1 module is in critical status so the agent is critical
|
||||||
//Then we count the agents of the group selected to know how many agents are in critical status
|
//Then we count the agents of the group selected to know how many agents are in critical status
|
||||||
|
|
||||||
|
//TODO REVIEW ORACLE AND POSTGRES
|
||||||
|
|
||||||
return db_get_sql ("SELECT COUNT( DISTINCT tagente_estado.id_agente) FROM tagente_estado, tagente, tagente_modulo WHERE tagente.disabled = 0 AND tagente_estado.utimestamp != 0 AND tagente_modulo.id_agente_modulo = tagente_estado.id_agente_modulo AND tagente_modulo.disabled = 0 AND estado = 1 AND tagente_estado.id_agente = tagente.id_agente AND tagente.id_grupo IN $group_clause");
|
return db_get_sql ("SELECT COUNT( DISTINCT tagente_estado.id_agente) FROM tagente_estado, tagente, tagente_modulo WHERE tagente.disabled = 0 AND tagente_estado.utimestamp != 0 AND tagente_modulo.id_agente_modulo = tagente_estado.id_agente_modulo AND tagente_modulo.disabled = 0 AND estado = 1 AND tagente_estado.id_agente = tagente.id_agente AND tagente.id_grupo IN $group_clause");
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -926,6 +932,8 @@ function groups_agent_warning ($group_array) {
|
|||||||
//If MIN(estado) is 2 it means at least one module is warning and there is no critical modules
|
//If MIN(estado) is 2 it means at least one module is warning and there is no critical modules
|
||||||
//Then we count the agents of the group selected to know how many agents are in warning status
|
//Then we count the agents of the group selected to know how many agents are in warning status
|
||||||
|
|
||||||
|
//TODO REVIEW ORACLE AND POSTGRES
|
||||||
|
|
||||||
return db_get_sql ("SELECT COUNT(min_estado) FROM (SELECT MIN(tagente_estado.estado) as min_estado FROM tagente_estado, tagente, tagente_modulo WHERE tagente.disabled = 0 AND tagente_estado.utimestamp != 0 AND tagente_modulo.id_agente_modulo = tagente_estado.id_agente_modulo AND tagente_modulo.disabled = 0 AND tagente_estado.id_agente = tagente.id_agente AND tagente.id_grupo IN $group_clause GROUP BY tagente.id_agente HAVING min_estado = 2) AS S1");
|
return db_get_sql ("SELECT COUNT(min_estado) FROM (SELECT MIN(tagente_estado.estado) as min_estado FROM tagente_estado, tagente, tagente_modulo WHERE tagente.disabled = 0 AND tagente_estado.utimestamp != 0 AND tagente_modulo.id_agente_modulo = tagente_estado.id_agente_modulo AND tagente_modulo.disabled = 0 AND tagente_estado.id_agente = tagente.id_agente AND tagente.id_grupo IN $group_clause GROUP BY tagente.id_agente HAVING min_estado = 2) AS S1");
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -947,6 +955,8 @@ function groups_monitor_not_init ($group_array) {
|
|||||||
$group_clause = implode (",", $group_array);
|
$group_clause = implode (",", $group_array);
|
||||||
$group_clause = "(" . $group_clause . ")";
|
$group_clause = "(" . $group_clause . ")";
|
||||||
|
|
||||||
|
//TODO REVIEW ORACLE AND POSTGRES
|
||||||
|
|
||||||
return db_get_sql ("SELECT COUNT(tagente_estado.id_agente_estado)
|
return db_get_sql ("SELECT COUNT(tagente_estado.id_agente_estado)
|
||||||
FROM tagente_estado, tagente, tagente_modulo
|
FROM tagente_estado, tagente, tagente_modulo
|
||||||
WHERE tagente.id_grupo IN $group_clause AND tagente.disabled = 0
|
WHERE tagente.id_grupo IN $group_clause AND tagente.disabled = 0
|
||||||
@ -973,6 +983,8 @@ function groups_monitor_ok ($group_array) {
|
|||||||
$group_clause = implode (",", $group_array);
|
$group_clause = implode (",", $group_array);
|
||||||
$group_clause = "(" . $group_clause . ")";
|
$group_clause = "(" . $group_clause . ")";
|
||||||
|
|
||||||
|
//TODO REVIEW ORACLE AND POSTGRES
|
||||||
|
|
||||||
return db_get_sql ("SELECT COUNT(tagente_estado.id_agente_estado)
|
return db_get_sql ("SELECT COUNT(tagente_estado.id_agente_estado)
|
||||||
FROM tagente_estado, tagente, tagente_modulo
|
FROM tagente_estado, tagente, tagente_modulo
|
||||||
WHERE tagente.id_grupo IN $group_clause AND tagente.disabled = 0
|
WHERE tagente.id_grupo IN $group_clause AND tagente.disabled = 0
|
||||||
@ -996,6 +1008,8 @@ function groups_monitor_critical ($group_array) {
|
|||||||
$group_clause = implode (",", $group_array);
|
$group_clause = implode (",", $group_array);
|
||||||
$group_clause = "(" . $group_clause . ")";
|
$group_clause = "(" . $group_clause . ")";
|
||||||
|
|
||||||
|
//TODO REVIEW ORACLE AND POSTGRES
|
||||||
|
|
||||||
return db_get_sql ("SELECT COUNT(tagente_estado.id_agente_estado)
|
return db_get_sql ("SELECT COUNT(tagente_estado.id_agente_estado)
|
||||||
FROM tagente_estado, tagente, tagente_modulo
|
FROM tagente_estado, tagente, tagente_modulo
|
||||||
WHERE tagente.id_grupo IN $group_clause AND tagente.disabled = 0
|
WHERE tagente.id_grupo IN $group_clause AND tagente.disabled = 0
|
||||||
@ -1020,6 +1034,8 @@ function groups_monitor_warning ($group_array) {
|
|||||||
$group_clause = implode (",", $group_array);
|
$group_clause = implode (",", $group_array);
|
||||||
$group_clause = "(" . $group_clause . ")";
|
$group_clause = "(" . $group_clause . ")";
|
||||||
|
|
||||||
|
//TODO REVIEW ORACLE AND POSTGRES
|
||||||
|
|
||||||
return db_get_sql ("SELECT COUNT(tagente_estado.id_agente_estado)
|
return db_get_sql ("SELECT COUNT(tagente_estado.id_agente_estado)
|
||||||
FROM tagente_estado, tagente, tagente_modulo
|
FROM tagente_estado, tagente, tagente_modulo
|
||||||
WHERE tagente.id_grupo IN $group_clause AND tagente.disabled = 0
|
WHERE tagente.id_grupo IN $group_clause AND tagente.disabled = 0
|
||||||
@ -1044,6 +1060,8 @@ function groups_monitor_unknown ($group_array) {
|
|||||||
$group_clause = implode (",", $group_array);
|
$group_clause = implode (",", $group_array);
|
||||||
$group_clause = "(" . $group_clause . ")";
|
$group_clause = "(" . $group_clause . ")";
|
||||||
|
|
||||||
|
//TODO REVIEW ORACLE AND POSTGRES
|
||||||
|
|
||||||
return db_get_sql ("SELECT COUNT(tagente_estado.id_agente_estado)
|
return db_get_sql ("SELECT COUNT(tagente_estado.id_agente_estado)
|
||||||
FROM tagente_estado, tagente, tagente_modulo
|
FROM tagente_estado, tagente, tagente_modulo
|
||||||
WHERE tagente.id_grupo IN $group_clause AND tagente.disabled = 0
|
WHERE tagente.id_grupo IN $group_clause AND tagente.disabled = 0
|
||||||
@ -1068,6 +1086,8 @@ function groups_monitor_alerts ($group_array) {
|
|||||||
$group_clause = implode (",", $group_array);
|
$group_clause = implode (",", $group_array);
|
||||||
$group_clause = "(" . $group_clause . ")";
|
$group_clause = "(" . $group_clause . ")";
|
||||||
|
|
||||||
|
//TODO REVIEW ORACLE AND POSTGRES
|
||||||
|
|
||||||
return db_get_sql ("SELECT COUNT(talert_template_modules.id)
|
return db_get_sql ("SELECT COUNT(talert_template_modules.id)
|
||||||
FROM talert_template_modules, tagente_modulo, tagente_estado, tagente
|
FROM talert_template_modules, tagente_modulo, tagente_estado, tagente
|
||||||
WHERE tagente.id_grupo IN $group_clause AND tagente_modulo.id_agente = tagente.id_agente
|
WHERE tagente.id_grupo IN $group_clause AND tagente_modulo.id_agente = tagente.id_agente
|
||||||
@ -1094,6 +1114,8 @@ function groups_monitor_fired_alerts ($group_array) {
|
|||||||
$group_clause = implode (",", $group_array);
|
$group_clause = implode (",", $group_array);
|
||||||
$group_clause = "(" . $group_clause . ")";
|
$group_clause = "(" . $group_clause . ")";
|
||||||
|
|
||||||
|
//TODO REVIEW ORACLE AND POSTGRES
|
||||||
|
|
||||||
return db_get_sql ("SELECT COUNT(talert_template_modules.id)
|
return db_get_sql ("SELECT COUNT(talert_template_modules.id)
|
||||||
FROM talert_template_modules, tagente_modulo, tagente_estado, tagente
|
FROM talert_template_modules, tagente_modulo, tagente_estado, tagente
|
||||||
WHERE tagente.id_grupo IN $group_clause AND tagente_modulo.id_agente = tagente.id_agente
|
WHERE tagente.id_grupo IN $group_clause AND tagente_modulo.id_agente = tagente.id_agente
|
||||||
|
69
pandora_console/include/functions_os.php
Executable file
69
pandora_console/include/functions_os.php
Executable file
@ -0,0 +1,69 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// Pandora FMS - http://pandorafms.com
|
||||||
|
// ==================================================
|
||||||
|
// Copyright (c) 2011 Artica Soluciones Tecnologicas
|
||||||
|
// Please see http://pandorafms.org for full contribution list
|
||||||
|
|
||||||
|
// This program is free software; you can redistribute it and/or
|
||||||
|
// modify it under the terms of the GNU Lesser General Public License
|
||||||
|
// as published by the Free Software Foundation; version 2
|
||||||
|
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU General Public License for more details.
|
||||||
|
|
||||||
|
// Get critical agents by using the status code in modules.
|
||||||
|
|
||||||
|
function os_agents_critical ($id_os) {
|
||||||
|
|
||||||
|
//TODO REVIEW ORACLE AND POSTGRES
|
||||||
|
|
||||||
|
return db_get_sql ("SELECT COUNT( DISTINCT tagente_estado.id_agente) FROM tagente_estado, tagente, tagente_modulo WHERE tagente.disabled = 0 AND tagente_estado.utimestamp != 0 AND tagente_modulo.id_agente_modulo = tagente_estado.id_agente_modulo AND tagente_modulo.disabled = 0 AND estado = 1 AND tagente_estado.id_agente = tagente.id_agente AND tagente.id_os = $id_os");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get ok agents by using the status code in modules.
|
||||||
|
|
||||||
|
function os_agents_ok($id_os) {
|
||||||
|
|
||||||
|
//!!!Query explanation!!!
|
||||||
|
//An agent is OK if all its modules are OK
|
||||||
|
//The status values are: 0 OK; 1 Critical; 2 Warning; 3 Unkown
|
||||||
|
//This query grouped all modules by agents and select the MAX value for status which has the value 0
|
||||||
|
//If MAX(estado) is 0 it means all modules has status 0 => OK
|
||||||
|
//Then we count the agents of the group selected to know how many agents are in OK status
|
||||||
|
|
||||||
|
//TODO REVIEW ORACLE AND POSTGRES
|
||||||
|
|
||||||
|
return db_get_sql ("SELECT COUNT(max_estado) FROM (SELECT MAX(tagente_estado.estado) as max_estado FROM tagente_estado, tagente, tagente_modulo WHERE tagente.disabled = 0 AND tagente_estado.utimestamp != 0 AND tagente_modulo.id_agente_modulo = tagente_estado.id_agente_modulo AND tagente_modulo.disabled = 0 AND tagente_estado.id_agente = tagente.id_agente AND tagente.id_os = $id_os GROUP BY tagente.id_agente HAVING max_estado = 0) AS S1");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get warning agents by using the status code in modules.
|
||||||
|
|
||||||
|
function os_agents_warning ($id_os) {
|
||||||
|
|
||||||
|
//!!!Query explanation!!!
|
||||||
|
//An agent is Warning when has at least one module in warning status and nothing more in critical status
|
||||||
|
//The status values are: 0 OK; 1 Critical; 2 Warning; 3 Unkown
|
||||||
|
//This query grouped all modules by agents and select the MIN value for status which has the value 0
|
||||||
|
//If MIN(estado) is 2 it means at least one module is warning and there is no critical modules
|
||||||
|
//Then we count the agents of the group selected to know how many agents are in warning status
|
||||||
|
|
||||||
|
//TODO REVIEW ORACLE AND POSTGRES
|
||||||
|
|
||||||
|
return db_get_sql ("SELECT COUNT(min_estado) FROM (SELECT MIN(tagente_estado.estado) as min_estado FROM tagente_estado, tagente, tagente_modulo WHERE tagente.disabled = 0 AND tagente_estado.utimestamp != 0 AND tagente_modulo.id_agente_modulo = tagente_estado.id_agente_modulo AND tagente_modulo.disabled = 0 AND tagente_estado.id_agente = tagente.id_agente AND tagente.id_os = $id_os GROUP BY tagente.id_agente HAVING min_estado = 2) AS S1");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get unknown agents by using the status code in modules.
|
||||||
|
|
||||||
|
function os_agents_unknown ($id_os) {
|
||||||
|
|
||||||
|
//TODO REVIEW ORACLE AND POSTGRES
|
||||||
|
|
||||||
|
return db_get_sql ("SELECT COUNT( DISTINCT tagente_estado.id_agente) FROM tagente_estado, tagente, tagente_modulo WHERE tagente.disabled = 0 AND tagente_estado.utimestamp != 0 AND tagente_modulo.id_agente_modulo = tagente_estado.id_agente_modulo AND tagente_modulo.disabled = 0 AND estado = 3 AND tagente_estado.id_agente = tagente.id_agente AND tagente.id_os = $id_os");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
@ -248,7 +248,7 @@ if (is_ajax ())
|
|||||||
$groups_sql = implode(', ', $avariableGroupsIds);
|
$groups_sql = implode(', ', $avariableGroupsIds);
|
||||||
|
|
||||||
if ($search_free != '') {
|
if ($search_free != '') {
|
||||||
$search_sql = " AND nombre LIKE '%$search_free%'";
|
$search_sql = " AND nombre COLLATE utf8_general_ci LIKE '%$search_free%'";
|
||||||
} else {
|
} else {
|
||||||
$search_sql = '';
|
$search_sql = '';
|
||||||
}
|
}
|
||||||
@ -289,7 +289,7 @@ if (is_ajax ())
|
|||||||
WHERE id_agente IN (
|
WHERE id_agente IN (
|
||||||
SELECT id_agente
|
SELECT id_agente
|
||||||
FROM tagente_modulo
|
FROM tagente_modulo
|
||||||
WHERE nombre LIKE \'%s\'
|
WHERE nombre COLLATE utf8_general_ci LIKE \'%s\'
|
||||||
)
|
)
|
||||||
AND (%s id_grupo IN (%s))', $name, $extra_sql, $groups_sql);
|
AND (%s id_grupo IN (%s))', $name, $extra_sql, $groups_sql);
|
||||||
break;
|
break;
|
||||||
@ -321,6 +321,7 @@ if (is_ajax ())
|
|||||||
$count++;
|
$count++;
|
||||||
switch ($type) {
|
switch ($type) {
|
||||||
case 'group':
|
case 'group':
|
||||||
|
case 'os':
|
||||||
$agent_info["monitor_alertsfired"] = agents_get_alerts_fired ($row["id_agente"]);
|
$agent_info["monitor_alertsfired"] = agents_get_alerts_fired ($row["id_agente"]);
|
||||||
|
|
||||||
$agent_info["monitor_critical"] = agents_monitor_critical ($row["id_agente"]);
|
$agent_info["monitor_critical"] = agents_monitor_critical ($row["id_agente"]);
|
||||||
@ -336,11 +337,6 @@ if (is_ajax ())
|
|||||||
|
|
||||||
//Count all modules
|
//Count all modules
|
||||||
$agent_info["modules"] = $agent_info["monitor_critical"] + $agent_info["monitor_warning"] + $agent_info["monitor_unknown"] + $agent_info["monitor_normal"];
|
$agent_info["modules"] = $agent_info["monitor_critical"] + $agent_info["monitor_warning"] + $agent_info["monitor_unknown"] + $agent_info["monitor_normal"];
|
||||||
|
|
||||||
|
|
||||||
break;
|
|
||||||
case 'os':
|
|
||||||
$agent_info = reporting_get_agent_module_info ($row["id_agente"]);
|
|
||||||
break;
|
break;
|
||||||
case 'module_group':
|
case 'module_group':
|
||||||
$agent_info = reporting_get_agent_module_info ($row["id_agente"], ' id_module_group = ' . $id);
|
$agent_info = reporting_get_agent_module_info ($row["id_agente"], ' id_module_group = ' . $id);
|
||||||
@ -355,11 +351,11 @@ if (is_ajax ())
|
|||||||
case 'module':
|
case 'module':
|
||||||
switch ($config["dbtype"]) {
|
switch ($config["dbtype"]) {
|
||||||
case "mysql":
|
case "mysql":
|
||||||
$agent_info = reporting_get_agent_module_info ($row["id_agente"], ' nombre LIKE "' . $name . '"');
|
$agent_info = reporting_get_agent_module_info ($row["id_agente"], ' nombre COLLATE utf8_general_ci LIKE "' . $name . '"');
|
||||||
break;
|
break;
|
||||||
case "postgresql":
|
case "postgresql":
|
||||||
case "oracle":
|
case "oracle":
|
||||||
$agent_info = reporting_get_agent_module_info ($row["id_agente"], ' nombre LIKE \'' . $name . '\'');
|
$agent_info = reporting_get_agent_module_info ($row["id_agente"], ' nombre COLLATE utf8_general_ci LIKE \'' . $name . '\'');
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -487,14 +483,14 @@ if (is_ajax ())
|
|||||||
$sql = 'SELECT *
|
$sql = 'SELECT *
|
||||||
FROM tagente_modulo AS t1
|
FROM tagente_modulo AS t1
|
||||||
INNER JOIN tagente_estado AS t2 ON t1.id_agente_modulo = t2.id_agente_modulo
|
INNER JOIN tagente_estado AS t2 ON t1.id_agente_modulo = t2.id_agente_modulo
|
||||||
WHERE t1.id_agente = ' . $id . ' AND nombre LIKE \'' . io_safe_input($name) . '\'';
|
WHERE t1.id_agente = ' . $id . ' AND nombre COLLATE utf8_general_ci LIKE \'' . io_safe_input($name) . '\'';
|
||||||
break;
|
break;
|
||||||
case "postgresql":
|
case "postgresql":
|
||||||
case "oracle":
|
case "oracle":
|
||||||
$sql = 'SELECT *
|
$sql = 'SELECT *
|
||||||
FROM tagente_modulo AS t1
|
FROM tagente_modulo AS t1
|
||||||
INNER JOIN tagente_estado AS t2 ON t1.id_agente_modulo = t2.id_agente_modulo
|
INNER JOIN tagente_estado AS t2 ON t1.id_agente_modulo = t2.id_agente_modulo
|
||||||
WHERE t1.id_agente = ' . $id . ' AND nombre LIKE \'' . io_safe_input($name) . '\'';
|
WHERE t1.id_agente = ' . $id . ' AND nombre COLLATE utf8_general_ciLIKE \'' . io_safe_input($name) . '\'';
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -635,6 +631,7 @@ if (is_ajax ())
|
|||||||
|
|
||||||
|
|
||||||
include_once($config['homedir'] . "/include/functions_groups.php");
|
include_once($config['homedir'] . "/include/functions_groups.php");
|
||||||
|
include_once($config['homedir'] . "/include/functions_os.php");
|
||||||
include_once($config['homedir'] . "/include/functions_servers.php");
|
include_once($config['homedir'] . "/include/functions_servers.php");
|
||||||
include_once($config['homedir'] . "/include/functions_reporting.php");
|
include_once($config['homedir'] . "/include/functions_reporting.php");
|
||||||
include_once($config['homedir'] . "/include/functions_ui.php");
|
include_once($config['homedir'] . "/include/functions_ui.php");
|
||||||
@ -674,10 +671,10 @@ function printTree_($type) {
|
|||||||
if ($search_free != '') {
|
if ($search_free != '') {
|
||||||
$sql = "SELECT * FROM tconfig_os
|
$sql = "SELECT * FROM tconfig_os
|
||||||
WHERE id_os IN (SELECT id_os FROM tagente
|
WHERE id_os IN (SELECT id_os FROM tagente
|
||||||
WHERE nombre LIKE '%$search_free%')";
|
WHERE nombre COLLATE utf8_general_ci LIKE '%$search_free%')";
|
||||||
$list = db_get_all_rows_sql($sql);
|
$list = db_get_all_rows_sql($sql);
|
||||||
} else {
|
} else {
|
||||||
$list = db_get_all_rows_in_table('tconfig_os', 'name');
|
$list = db_get_all_rows_sql("SELECT DISTINCT (tagente.id_os), tconfig_os.name FROM tagente, tconfig_os WHERE tagente.id_os = tconfig_os.id_os");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'group':
|
case 'group':
|
||||||
@ -690,7 +687,7 @@ function printTree_($type) {
|
|||||||
);
|
);
|
||||||
if ($search_free != '') {
|
if ($search_free != '') {
|
||||||
$sql_search = " AND id_grupo IN (SELECT id_grupo FROM tagente
|
$sql_search = " AND id_grupo IN (SELECT id_grupo FROM tagente
|
||||||
WHERE nombre LIKE '%$search_free%')";
|
WHERE nombre COLLATE utf8_general_ci LIKE '%$search_free%')";
|
||||||
} else {
|
} else {
|
||||||
$sql_search ='';
|
$sql_search ='';
|
||||||
}
|
}
|
||||||
@ -709,7 +706,7 @@ function printTree_($type) {
|
|||||||
$sql = "SELECT * FROM tmodule_group
|
$sql = "SELECT * FROM tmodule_group
|
||||||
WHERE id_mg IN (SELECT id_module_group FROM tagente_modulo
|
WHERE id_mg IN (SELECT id_module_group FROM tagente_modulo
|
||||||
WHERE id_agente IN (SELECT id_agente FROM tagente
|
WHERE id_agente IN (SELECT id_agente FROM tagente
|
||||||
WHERE nombre LIKE '%$search_free%'))";
|
WHERE nombre COLLATE utf8_general_ci LIKE '%$search_free%'))";
|
||||||
$list = db_get_all_rows_sql($sql);
|
$list = db_get_all_rows_sql($sql);
|
||||||
} else {
|
} else {
|
||||||
$list = db_get_all_rows_in_table('tmodule_group', 'name');
|
$list = db_get_all_rows_in_table('tmodule_group', 'name');
|
||||||
@ -725,7 +722,7 @@ function printTree_($type) {
|
|||||||
WHERE id_group IN ($groups)
|
WHERE id_group IN ($groups)
|
||||||
AND id IN (SELECT id_policy FROM tpolicy_agents
|
AND id IN (SELECT id_policy FROM tpolicy_agents
|
||||||
WHERE id_agent IN (SELECT id_agente FROM tagente
|
WHERE id_agent IN (SELECT id_agente FROM tagente
|
||||||
WHERE nombre LIKE '%$search_free%'))";
|
WHERE nombre COLLATE utf8_general_ci LIKE '%$search_free%'))";
|
||||||
$list = db_get_all_rows_sql($sql);
|
$list = db_get_all_rows_sql($sql);
|
||||||
} else {
|
} else {
|
||||||
$list = db_get_all_rows_filter('tpolicies', array('id_group' => array_keys($avariableGroups)));
|
$list = db_get_all_rows_filter('tpolicies', array('id_group' => array_keys($avariableGroups)));
|
||||||
@ -736,7 +733,7 @@ function printTree_($type) {
|
|||||||
case 'module':
|
case 'module':
|
||||||
if ($search_free != '') {
|
if ($search_free != '') {
|
||||||
$sql_search = " AND t1.id_agente IN (SELECT id_agente FROM tagente
|
$sql_search = " AND t1.id_agente IN (SELECT id_agente FROM tagente
|
||||||
WHERE nombre LIKE '%$search_free%')";
|
WHERE nombre COLLATE utf8_general_ci LIKE '%$search_free%')";
|
||||||
} else {
|
} else {
|
||||||
$sql_search ='';
|
$sql_search ='';
|
||||||
}
|
}
|
||||||
@ -774,34 +771,10 @@ function printTree_($type) {
|
|||||||
$id = $item['id_os'];
|
$id = $item['id_os'];
|
||||||
$name = $item['name'];
|
$name = $item['name'];
|
||||||
$iconImg = html_print_image(str_replace('.png' ,'_small.png', ui_print_os_icon ($item['id_os'], false, true, false)) . " ", true);
|
$iconImg = html_print_image(str_replace('.png' ,'_small.png', ui_print_os_icon ($item['id_os'], false, true, false)) . " ", true);
|
||||||
|
$num_ok = os_agents_ok($id);
|
||||||
$agentes = db_get_all_rows_sql("SELECT id_agente FROM tagente WHERE id_os=$id");
|
$num_critical = os_agents_critical($id);
|
||||||
if ($agentes === false) {
|
$num_warning = os_agents_warning($id);
|
||||||
$agentes = array();
|
$num_unknown = os_agents_unknown($id);
|
||||||
}
|
|
||||||
|
|
||||||
$num_ok = 0;
|
|
||||||
$num_critical = 0;
|
|
||||||
$num_warning = 0;
|
|
||||||
$num_unknown = 0;
|
|
||||||
foreach ($agentes as $agente) {
|
|
||||||
$stat = reporting_get_agent_module_info ($agente["id_agente"]);
|
|
||||||
|
|
||||||
switch ($stat['status']) {
|
|
||||||
case 'agent_ok.png':
|
|
||||||
$num_ok++;
|
|
||||||
break;
|
|
||||||
case 'agent_critical.png':
|
|
||||||
$num_critical++;
|
|
||||||
break;
|
|
||||||
case 'agent_warning.png':
|
|
||||||
$num_warning++;
|
|
||||||
break;
|
|
||||||
case 'agent_down.png':
|
|
||||||
$num_unknown++;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case 'group':
|
case 'group':
|
||||||
$id = $item['id_grupo'];
|
$id = $item['id_grupo'];
|
||||||
@ -882,7 +855,7 @@ function printTree_($type) {
|
|||||||
$name_sql = io_safe_input($item['nombre']);
|
$name_sql = io_safe_input($item['nombre']);
|
||||||
$agentes = db_get_all_rows_sql("SELECT id_agente FROM tagente
|
$agentes = db_get_all_rows_sql("SELECT id_agente FROM tagente
|
||||||
WHERE id_agente IN (SELECT id_agente FROM tagente_modulo
|
WHERE id_agente IN (SELECT id_agente FROM tagente_modulo
|
||||||
WHERE nombre LIKE '$name_sql')");
|
WHERE nombre COLLATE utf8_general_ci LIKE '%$name_sql%')");
|
||||||
if ($agentes === false) {
|
if ($agentes === false) {
|
||||||
$agentes = array();
|
$agentes = array();
|
||||||
}
|
}
|
||||||
@ -932,21 +905,16 @@ function printTree_($type) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//skip if there is a empty OS or group!
|
echo "<li style='margin: 0px 0px 0px 0px;'>
|
||||||
if (($type == 'os' || $type == 'group') && ($num_ok == 0) && ($num_critical == 0) && ($num_warning == 0) && ($num_unknown == 0)) {
|
<a onfocus='JavaScript: this.blur()' href='javascript: loadSubTree(\"" . $type . "\",\"" . $id . "\", " . $lessBranchs . ", \"\")'>" .
|
||||||
continue;
|
$img . $iconImg ." " . __($name) . ' ('.
|
||||||
} else {
|
'<span class="green">'.'<b>'.$num_ok.'</b>'.'</span>'.
|
||||||
echo "<li style='margin: 0px 0px 0px 0px;'>
|
' : <span class="red">'.$num_critical.'</span>' .
|
||||||
<a onfocus='JavaScript: this.blur()' href='javascript: loadSubTree(\"" . $type . "\",\"" . $id . "\", " . $lessBranchs . ", \"\")'>" .
|
' : <span class="yellow">'.$num_warning.'</span>'.
|
||||||
$img . $iconImg ." " . __($name) . ' ('.
|
' : <span class="grey">'.$num_unknown.'</span>'.') '. "</a>";
|
||||||
'<span class="green">'.'<b>'.$num_ok.'</b>'.'</span>'.
|
|
||||||
' : <span class="red">'.$num_critical.'</span>' .
|
echo "<div hiddenDiv='1' loadDiv='0' style='margin: 0px; padding: 0px;' class='tree_view' id='tree_div_" . $type . "_" . $id . "'></div>";
|
||||||
' : <span class="yellow">'.$num_warning.'</span>'.
|
echo "</li>\n";
|
||||||
' : <span class="grey">'.$num_unknown.'</span>'.') '. "</a>";
|
|
||||||
|
|
||||||
echo "<div hiddenDiv='1' loadDiv='0' style='margin: 0px; padding: 0px;' class='tree_view' id='tree_div_" . $type . "_" . $id . "'></div>";
|
|
||||||
echo "</li>\n";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
echo "</ul>\n";
|
echo "</ul>\n";
|
||||||
echo '</td>';
|
echo '</td>';
|
||||||
|
Loading…
x
Reference in New Issue
Block a user