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
d796620e08
commit
16827d10cc
|
@ -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>
|
2012-07-24 Sergio Martin <sergio.martin@artica.es>
|
||||||
|
|
||||||
* include/javascript/pandora_modules.js
|
* include/javascript/pandora_modules.js
|
||||||
|
|
|
@ -1702,6 +1702,7 @@ function agents_get_status($id_agent = 0, $noACLs = false) {
|
||||||
else {
|
else {
|
||||||
return AGENT_MODULE_STATUS_NORMAL;
|
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.
|
// Get ok monitors by using the status code in modules.
|
||||||
|
|
||||||
function agents_monitor_ok ($id_agent, $filter="") {
|
function agents_monitor_ok ($id_agent, $filter="") {
|
||||||
|
|
||||||
if ($filter) {
|
if ($filter) {
|
||||||
|
@ -1964,6 +1966,47 @@ function agents_monitor_ok ($id_agent, $filter="") {
|
||||||
AND tagente.id_agente = $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.
|
* Get all monitors of an specific agent.
|
||||||
*
|
*
|
||||||
|
|
|
@ -34,16 +34,15 @@ function tags_agent_critical ($id_tag) {
|
||||||
//TODO REVIEW ORACLE AND POSTGRES
|
//TODO REVIEW ORACLE AND POSTGRES
|
||||||
|
|
||||||
return db_get_sql ("SELECT COUNT( DISTINCT tagente_estado.id_agente)
|
return db_get_sql ("SELECT COUNT( DISTINCT tagente_estado.id_agente)
|
||||||
FROM tagente_estado, tagente, tagente_modulo
|
FROM tagente_estado, tagente, tagente_modulo, ttag_module
|
||||||
WHERE tagente.disabled = 0 AND tagente_estado.utimestamp != 0
|
WHERE tagente_modulo.id_agente_modulo = tagente_estado.id_agente_modulo
|
||||||
AND 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 tagente_modulo.disabled = 0
|
||||||
AND estado = 1
|
AND estado = 1
|
||||||
AND tagente_estado.id_agente = tagente.id_agente
|
AND tagente.disabled = 0
|
||||||
AND tagente.id_agente IN (SELECT id_agente
|
AND tagente_estado.utimestamp != 0
|
||||||
FROM tagente_modulo, ttag_module
|
AND ttag_module.id_tag = $id_tag");
|
||||||
WHERE tagente_modulo.id_agente_modulo = ttag_module.id_agente_modulo
|
|
||||||
AND ttag_module.id_tag = $id_tag)");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -58,23 +57,95 @@ function tags_agent_unknown ($id_tag) {
|
||||||
if (empty($id_tag))
|
if (empty($id_tag))
|
||||||
return false;
|
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)
|
// Agent of module group X and warning status
|
||||||
FROM (SELECT MIN(tagente_estado.estado) as min_estado
|
$agents_warning = "SELECT tagente.id_agente
|
||||||
FROM tagente_estado, tagente, tagente_modulo
|
FROM tagente_estado, tagente, tagente_modulo
|
||||||
WHERE tagente.disabled = 0 AND tagente_estado.utimestamp != 0
|
WHERE tagente_estado.id_agente = tagente.id_agente
|
||||||
AND tagente_modulo.id_agente_modulo = tagente_estado.id_agente_modulo
|
AND tagente_estado.id_agente_modulo = tagente_modulo.id_agente_modulo
|
||||||
AND tagente_modulo.disabled = 0
|
AND tagente.disabled = 0
|
||||||
AND tagente_estado.id_agente = tagente.id_agente
|
AND tagente_modulo.disabled = 0
|
||||||
AND tagente_estado.estado != 0
|
AND estado = 2
|
||||||
AND tagente.id_agente IN (SELECT id_agente
|
AND tagente_estado.utimestamp != 0
|
||||||
FROM tagente_modulo, ttag_module
|
group by tagente.id_agente";
|
||||||
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 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))
|
if (empty($id_tag))
|
||||||
return false;
|
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)
|
// Agent of module group X and warning status
|
||||||
FROM (SELECT MAX(tagente_estado.estado) as max_estado
|
$agents_warning = "SELECT tagente.id_agente
|
||||||
FROM tagente_estado, tagente, tagente_modulo
|
FROM tagente_estado, tagente, tagente_modulo
|
||||||
WHERE tagente.disabled = 0 AND tagente_estado.utimestamp != 0
|
WHERE tagente_estado.id_agente = tagente.id_agente
|
||||||
AND tagente_modulo.id_agente_modulo = tagente_estado.id_agente_modulo
|
AND tagente_estado.id_agente_modulo = tagente_modulo.id_agente_modulo
|
||||||
AND tagente_modulo.disabled = 0
|
AND tagente.disabled = 0
|
||||||
AND tagente_estado.id_agente = tagente.id_agente
|
AND tagente_modulo.disabled = 0
|
||||||
AND tagente.id_agente IN (SELECT id_agente
|
AND estado = 2
|
||||||
FROM tagente_modulo, ttag_module
|
AND tagente_estado.utimestamp != 0
|
||||||
WHERE tagente_modulo.id_agente_modulo = ttag_module.id_agente_modulo
|
group by tagente.id_agente";
|
||||||
AND ttag_module.id_tag = $id_tag)
|
|
||||||
GROUP BY tagente.id_agente HAVING max_estado = 0) AS S1");
|
// 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,21 +230,37 @@ function tags_agent_warning ($id_tag) {
|
||||||
if (empty($id_tag))
|
if (empty($id_tag))
|
||||||
return false;
|
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)
|
// Agent warning status
|
||||||
FROM (SELECT MAX(tagente_estado.estado) as min_estado
|
$agents_warning = "SELECT tagente.id_agente
|
||||||
FROM tagente_estado, tagente, tagente_modulo
|
FROM tagente_estado, tagente, tagente_modulo
|
||||||
WHERE tagente.disabled = 0 AND tagente_estado.utimestamp != 0
|
WHERE tagente_estado.id_agente = tagente.id_agente
|
||||||
AND tagente_modulo.id_agente_modulo = tagente_estado.id_agente_modulo
|
AND tagente_estado.id_agente_modulo = tagente_modulo.id_agente_modulo
|
||||||
AND tagente_modulo.disabled = 0
|
AND tagente.disabled = 0
|
||||||
|
AND tagente_modulo.disabled = 0
|
||||||
|
AND estado = 2
|
||||||
|
AND tagente_estado.utimestamp != 0
|
||||||
|
group by tagente.id_agente";
|
||||||
|
|
||||||
AND tagente_estado.id_agente = tagente.id_agente
|
return db_get_sql ("SELECT COUNT(*) FROM ( SELECT DISTINCT tagente.id_agente
|
||||||
AND tagente.id_agente IN (SELECT id_agente
|
FROM tagente, tagente_modulo, tagente_estado, ttag_module
|
||||||
FROM tagente_modulo, ttag_module
|
WHERE tagente.id_agente = tagente_modulo.id_agente
|
||||||
WHERE tagente_modulo.id_agente_modulo = ttag_module.id_agente_modulo
|
AND tagente_modulo.id_agente_modulo = tagente_estado.id_agente_modulo
|
||||||
AND ttag_module.id_tag = $id_tag)
|
AND tagente_modulo.id_agente_modulo = ttag_module.id_agente_modulo
|
||||||
GROUP BY tagente.id_agente HAVING min_estado = 2) AS S1");
|
|
||||||
|
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