2012-07-24 Juan Manuel Ramon <juanmanuel.ramon@artica.es>
* include/functions_agents.php include/functions_tags.php: Support for metaconsole tree counts. git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@6805 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
This commit is contained in:
parent
daf16f2d83
commit
a986c601eb
|
@ -1,3 +1,8 @@
|
|||
2012-07-24 Juan Manuel Ramon <juanmanuel.ramon@artica.es>
|
||||
|
||||
* include/functions_agents.php
|
||||
include/functions_tags.php: Support for metaconsole tree counts.
|
||||
|
||||
2012-07-24 Sergio Martin <sergio.martin@artica.es>
|
||||
|
||||
* include/javascript/pandora_modules.js
|
||||
|
|
|
@ -1702,6 +1702,7 @@ function agents_get_status($id_agent = 0, $noACLs = false) {
|
|||
else {
|
||||
return AGENT_MODULE_STATUS_NORMAL;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1947,6 +1948,7 @@ function agents_monitor_unknown ($id_agent, $filter="") {
|
|||
}
|
||||
|
||||
// Get ok monitors by using the status code in modules.
|
||||
|
||||
function agents_monitor_ok ($id_agent, $filter="") {
|
||||
|
||||
if ($filter) {
|
||||
|
@ -1964,6 +1966,47 @@ function agents_monitor_ok ($id_agent, $filter="") {
|
|||
AND tagente.id_agente = $id_agent" . $filter);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all monitors disabled of an specific agent.
|
||||
*
|
||||
* @param int The agent id
|
||||
* @param string Additional filters
|
||||
*
|
||||
* @return mixed Total module count or false
|
||||
*/
|
||||
function agents_monitor_disabled ($id_agent, $filter="") {
|
||||
|
||||
if ($filter) {
|
||||
$filter = " AND ".$filter;
|
||||
}
|
||||
|
||||
return db_get_sql ("SELECT COUNT( DISTINCT tagente_modulo.id_agente_modulo) FROM tagente, tagente_modulo WHERE tagente_modulo.id_agente = tagente.id_agente AND tagente_modulo.disabled = 1 AND tagente.id_agente = $id_agent".$filter);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all monitors notinit of an specific agent.
|
||||
*
|
||||
* @param int The agent id
|
||||
* @param string Additional filters
|
||||
*
|
||||
* @return mixed Total module count or false
|
||||
*/
|
||||
function agents_monitor_notinit ($id_agent, $filter="") {
|
||||
|
||||
if (!empty($filter)) {
|
||||
$filter = " AND ".$filter;
|
||||
}
|
||||
|
||||
return db_get_sql ("SELECT COUNT( DISTINCT tagente_estado.id_agente_modulo )
|
||||
FROM tagente_estado, tagente, tagente_modulo
|
||||
WHERE tagente.disabled = 0 AND tagente.id_agente = tagente_estado.id_agente
|
||||
AND tagente_estado.id_agente_modulo = tagente_modulo.id_agente_modulo
|
||||
AND tagente_modulo.disabled = 0
|
||||
AND tagente_modulo.id_tipo_modulo NOT IN (21,22,23)
|
||||
AND utimestamp = 0
|
||||
AND tagente.id_agente = $id_agent ".$filter);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all monitors of an specific agent.
|
||||
*
|
||||
|
|
|
@ -34,16 +34,15 @@ function tags_agent_critical ($id_tag) {
|
|||
//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
|
||||
FROM tagente_estado, tagente, tagente_modulo, ttag_module
|
||||
WHERE tagente_modulo.id_agente_modulo = tagente_estado.id_agente_modulo
|
||||
AND tagente_modulo.id_agente_modulo = ttag_module.id_agente_modulo
|
||||
AND tagente_estado.id_agente = tagente.id_agente
|
||||
AND tagente_modulo.disabled = 0
|
||||
AND estado = 1
|
||||
AND tagente_estado.id_agente = tagente.id_agente
|
||||
AND tagente.id_agente IN (SELECT id_agente
|
||||
FROM tagente_modulo, ttag_module
|
||||
WHERE tagente_modulo.id_agente_modulo = ttag_module.id_agente_modulo
|
||||
AND ttag_module.id_tag = $id_tag)");
|
||||
AND estado = 1
|
||||
AND tagente.disabled = 0
|
||||
AND tagente_estado.utimestamp != 0
|
||||
AND ttag_module.id_tag = $id_tag");
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -58,23 +57,95 @@ function tags_agent_unknown ($id_tag) {
|
|||
if (empty($id_tag))
|
||||
return false;
|
||||
|
||||
//TODO REVIEW ORACLE AND POSTGRES
|
||||
// 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
|
||||
group by tagente.id_agente";
|
||||
|
||||
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_estado.estado != 0
|
||||
AND tagente.id_agente IN (SELECT id_agente
|
||||
FROM tagente_modulo, ttag_module
|
||||
WHERE tagente_modulo.id_agente_modulo = ttag_module.id_agente_modulo
|
||||
AND ttag_module.id_tag = $id_tag)
|
||||
GROUP BY tagente.id_agente HAVING min_estado = 3
|
||||
) AS S1");
|
||||
// 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
|
||||
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
|
||||
group by tagente.id_agente";
|
||||
|
||||
return db_get_sql ("SELECT COUNT(*) FROM ( SELECT DISTINCT tagente.id_agente
|
||||
FROM tagente, tagente_modulo, tagente_estado, ttag_module
|
||||
WHERE tagente.id_agente = tagente_modulo.id_agente
|
||||
AND tagente_modulo.id_agente_modulo = tagente_estado.id_agente_modulo
|
||||
AND tagente_modulo.id_agente_modulo = ttag_module.id_agente_modulo
|
||||
|
||||
AND ttag_module.id_tag = $id_tag
|
||||
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");
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Get total agents filtering by id_tag.
|
||||
*
|
||||
* @param int $id_tag Id of the tag to search total agents
|
||||
*
|
||||
* @return mixed Returns count of agents with this tag or false if they aren't.
|
||||
*/
|
||||
function tags_total_agents ($id_tag) {
|
||||
|
||||
// Avoid mysql error
|
||||
if (empty($id_tag))
|
||||
return;
|
||||
|
||||
$total_agents = "SELECT COUNT(DISTINCT tagente.id_agente)
|
||||
FROM tagente, tagente_modulo, ttag_module
|
||||
WHERE tagente.id_agente = tagente_modulo.id_agente
|
||||
AND tagente_modulo.id_agente_modulo = ttag_module.id_agente_modulo
|
||||
AND ttag_module.id_tag = " . $id_tag;
|
||||
|
||||
return db_get_sql ($total_agents);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get total agents filtering by id_tag that are disabled.
|
||||
*
|
||||
* @param int $id_tag Id of the tag to search total agents
|
||||
*
|
||||
* @return mixed Returns count of agents with this tag or false if they aren't.
|
||||
*/
|
||||
function tags_agent_disabled ($id_tag) {
|
||||
|
||||
// Avoid mysql error
|
||||
if (empty($id_tag))
|
||||
return;
|
||||
|
||||
$total_agents_disabled = "SELECT COUNT(DISTINCT tagente.id_agente)
|
||||
FROM tagente, tagente_modulo, ttag_module
|
||||
WHERE tagente.id_agente = tagente_modulo.id_agente
|
||||
AND tagente_modulo.id_agente_modulo = ttag_module.id_agente_modulo
|
||||
AND tagente.disabled = 1
|
||||
AND ttag_module.id_tag = " . $id_tag;
|
||||
|
||||
return db_get_sql ($total_agents_disabled);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -89,20 +160,61 @@ function tags_agent_ok ($id_tag) {
|
|||
if (empty($id_tag))
|
||||
return false;
|
||||
|
||||
//TODO REVIEW ORACLE AND POSTGRES
|
||||
// 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
|
||||
group by tagente.id_agente";
|
||||
|
||||
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_agente IN (SELECT id_agente
|
||||
FROM tagente_modulo, ttag_module
|
||||
WHERE tagente_modulo.id_agente_modulo = ttag_module.id_agente_modulo
|
||||
AND ttag_module.id_tag = $id_tag)
|
||||
GROUP BY tagente.id_agente HAVING max_estado = 0) AS S1");
|
||||
// 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
|
||||
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
|
||||
group by tagente.id_agente";
|
||||
|
||||
// Agent of module group 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
|
||||
group by tagente.id_agente";
|
||||
|
||||
return db_get_sql ("SELECT COUNT(*) FROM ( SELECT DISTINCT tagente.id_agente
|
||||
FROM tagente, tagente_modulo, tagente_estado, ttag_module
|
||||
WHERE tagente.id_agente = tagente_modulo.id_agente
|
||||
AND tagente_modulo.id_agente_modulo = tagente_estado.id_agente_modulo
|
||||
AND tagente_modulo.id_agente_modulo = ttag_module.id_agente_modulo
|
||||
|
||||
AND ttag_module.id_tag = $id_tag
|
||||
AND tagente.id_agente NOT IN ($agents_critical)
|
||||
AND tagente.id_agente NOT IN ($agents_warning)
|
||||
AND tagente.id_agente NOT IN ($agents_unknown)
|
||||
AND tagente.id_agente IN ($agents_ok)) AS t");
|
||||
|
||||
}
|
||||
|
||||
|
@ -118,22 +230,38 @@ function tags_agent_warning ($id_tag) {
|
|||
if (empty($id_tag))
|
||||
return false;
|
||||
|
||||
//TODO REVIEW ORACLE AND POSTGRES
|
||||
// Agent 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
|
||||
group by tagente.id_agente";
|
||||
|
||||
return db_get_sql ("SELECT COUNT(min_estado)
|
||||
FROM (SELECT MAX(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_agente IN (SELECT id_agente
|
||||
FROM tagente_modulo, ttag_module
|
||||
WHERE tagente_modulo.id_agente_modulo = ttag_module.id_agente_modulo
|
||||
AND ttag_module.id_tag = $id_tag)
|
||||
GROUP BY tagente.id_agente HAVING min_estado = 2) AS S1");
|
||||
// Agent 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
|
||||
group by tagente.id_agente";
|
||||
|
||||
return db_get_sql ("SELECT COUNT(*) FROM ( SELECT DISTINCT tagente.id_agente
|
||||
FROM tagente, tagente_modulo, tagente_estado, ttag_module
|
||||
WHERE tagente.id_agente = tagente_modulo.id_agente
|
||||
AND tagente_modulo.id_agente_modulo = tagente_estado.id_agente_modulo
|
||||
AND tagente_modulo.id_agente_modulo = ttag_module.id_agente_modulo
|
||||
|
||||
AND ttag_module.id_tag = $id_tag
|
||||
AND tagente.id_agente NOT IN ($agents_critical)
|
||||
AND tagente.id_agente IN ($agents_warning)) AS t");
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue