2012-06-07 13:44:08 +02:00
< ? 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 ) {
2012-07-12 20:10:44 +02:00
// Agent of OS X and critical status
$agents_critical = " SELECT tagente.id_agente
FROM tagente_estado , tagente , tagente_modulo
WHERE tagente_estado . id_agente = tagente . id_agente
AND tagente_estado . id_agente_modulo = tagente_modulo . id_agente_modulo
AND tagente . disabled = 0
AND tagente_modulo . disabled = 0
AND estado = 1
AND tagente_estado . utimestamp != 0
AND tagente . id_os = $id_os
group by tagente . id_agente " ;
// Agent of OS X and warning status
$agents_warning = " SELECT tagente.id_agente
FROM tagente_estado , tagente , tagente_modulo
WHERE tagente_estado . id_agente = tagente . id_agente
AND tagente_estado . id_agente_modulo = tagente_modulo . id_agente_modulo
AND tagente . disabled = 0
AND tagente_modulo . disabled = 0
AND estado = 2
AND tagente_estado . utimestamp != 0
AND tagente . id_os = $id_os
group by tagente . id_agente " ;
// Agent of OS X and unknown status
$agents_unknown = " SELECT tagente.id_agente
FROM tagente_estado , tagente , tagente_modulo
WHERE tagente_estado . id_agente = tagente . id_agente
AND tagente_estado . id_agente_modulo = tagente_modulo . id_agente_modulo
AND tagente . disabled = 0
AND tagente_modulo . disabled = 0
AND estado = 3
AND tagente_estado . utimestamp != 0
AND tagente . id_os = $id_os
group by tagente . id_agente " ;
// Agent of OS X and ok status
$agents_ok = " SELECT tagente.id_agente
FROM tagente_estado , tagente , tagente_modulo
WHERE tagente_estado . id_agente = tagente . id_agente
AND tagente_estado . id_agente_modulo = tagente_modulo . id_agente_modulo
AND tagente . disabled = 0
AND tagente_modulo . disabled = 0
AND estado = 0
AND tagente_estado . utimestamp != 0
AND tagente . id_os = $id_os
group by tagente . id_agente " ;
2012-06-07 13:44:08 +02:00
2012-07-16 15:17:30 +02:00
// Agents without modules has a normal status
$void_agents = " SELECT id_agente FROM tagente
WHERE disabled = 0
AND id_os = $id_os
AND id_agente NOT IN ( SELECT id_agente FROM tagente_estado ) " ;
2012-07-12 20:10:44 +02:00
return db_get_sql ( " SELECT COUNT(*) FROM ( SELECT DISTINCT tagente.id_agente
FROM tagente , tagente_modulo , tagente_estado
WHERE tagente . id_agente = tagente_modulo . id_agente
AND tagente_modulo . id_agente_modulo = tagente_estado . id_agente_modulo
AND tagente . id_os = $id_os
AND tagente . id_agente NOT IN ( $agents_critical )
AND tagente . id_agente NOT IN ( $agents_warning )
AND tagente . id_agente NOT IN ( $agents_unknown )
2012-07-16 15:17:30 +02:00
AND tagente . id_agente IN ( $agents_ok )
UNION $void_agents ) AS t " );
2012-07-12 20:10:44 +02:00
2012-06-07 13:44:08 +02:00
}
// Get warning agents by using the status code in modules.
function os_agents_warning ( $id_os ) {
2012-07-12 20:10:44 +02:00
// Agent of OS X and critical status
$agents_critical = " SELECT tagente.id_agente
FROM tagente_estado , tagente , tagente_modulo
WHERE tagente_estado . id_agente = tagente . id_agente
AND tagente_estado . id_agente_modulo = tagente_modulo . id_agente_modulo
AND tagente . disabled = 0
AND tagente_modulo . disabled = 0
AND estado = 1
AND tagente_estado . utimestamp != 0
AND tagente . id_os = $id_os
group by tagente . id_agente " ;
// Agent of OS X and warning status
$agents_warning = " SELECT tagente.id_agente
FROM tagente_estado , tagente , tagente_modulo
WHERE tagente_estado . id_agente = tagente . id_agente
AND tagente_estado . id_agente_modulo = tagente_modulo . id_agente_modulo
AND tagente . disabled = 0
AND tagente_modulo . disabled = 0
AND estado = 2
AND tagente_estado . utimestamp != 0
AND tagente . id_os = $id_os
group by tagente . id_agente " ;
2012-06-07 13:44:08 +02:00
2012-07-12 20:10:44 +02:00
return db_get_sql ( " SELECT COUNT(*) FROM ( SELECT DISTINCT tagente.id_agente
FROM tagente , tagente_modulo , tagente_estado
WHERE tagente . id_agente = tagente_modulo . id_agente
AND tagente_modulo . id_agente_modulo = tagente_estado . id_agente_modulo
AND tagente . id_os = $id_os
AND tagente . id_agente NOT IN ( $agents_critical )
AND tagente . id_agente IN ( $agents_warning ) ) AS t " );
2012-06-07 13:44:08 +02:00
}
// Get unknown agents by using the status code in modules.
function os_agents_unknown ( $id_os ) {
2012-07-12 20:10:44 +02:00
// Agent of module group X and critical status
$agents_critical = " SELECT tagente.id_agente
FROM tagente_estado , tagente , tagente_modulo
WHERE tagente_estado . id_agente = tagente . id_agente
AND tagente_estado . id_agente_modulo = tagente_modulo . id_agente_modulo
AND tagente . disabled = 0
AND tagente_modulo . disabled = 0
AND estado = 1
AND tagente_estado . utimestamp != 0
AND tagente . id_os = $id_os
group by tagente . id_agente " ;
// Agent of module group X and warning status
$agents_warning = " SELECT tagente.id_agente
FROM tagente_estado , tagente , tagente_modulo
WHERE tagente_estado . id_agente = tagente . id_agente
AND tagente_estado . id_agente_modulo = tagente_modulo . id_agente_modulo
AND tagente . disabled = 0
AND tagente_modulo . disabled = 0
AND estado = 2
AND tagente_estado . utimestamp != 0
AND tagente . id_os = $id_os
group by tagente . id_agente " ;
// Agent of module group X and unknown status
$agents_unknown = " SELECT tagente.id_agente
FROM tagente_estado , tagente , tagente_modulo
WHERE tagente_estado . id_agente = tagente . id_agente
AND tagente_estado . id_agente_modulo = tagente_modulo . id_agente_modulo
AND tagente . disabled = 0
AND tagente_modulo . disabled = 0
AND estado = 3
AND tagente_estado . utimestamp != 0
AND tagente . id_os = $id_os
group by tagente . id_agente " ;
return db_get_sql ( " SELECT COUNT(*) FROM ( SELECT DISTINCT tagente.id_agente
FROM tagente , tagente_modulo , tagente_estado
WHERE tagente . id_agente = tagente_modulo . id_agente
AND tagente_modulo . id_agente_modulo = tagente_estado . id_agente_modulo
AND tagente . id_os = $id_os
AND tagente . id_agente NOT IN ( $agents_critical )
AND tagente . id_agente NOT IN ( $agents_warning )
AND tagente . id_agente IN ( $agents_unknown ) ) AS t " );
2012-06-07 13:44:08 +02:00
}
?>