2012-07-16 Juan Manuel Ramon <juanmanuel.ramon@artica.es>
* include/functions_agents.php operation/tree.php: Fixed some bugs in policy tree view. And cleaned source code. git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@6782 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
This commit is contained in:
parent
b529c1e008
commit
3a8af74c99
|
@ -1,3 +1,9 @@
|
||||||
|
2012-07-16 Juan Manuel Ramon <juanmanuel.ramon@artica.es>
|
||||||
|
|
||||||
|
* include/functions_agents.php
|
||||||
|
operation/tree.php: Fixed some bugs in policy tree view.
|
||||||
|
And cleaned source code.
|
||||||
|
|
||||||
2012-07-16 Sergio Martin <sergio.martin@artica.es>
|
2012-07-16 Sergio Martin <sergio.martin@artica.es>
|
||||||
|
|
||||||
* include/functions_modules.php: Added a function to get the
|
* include/functions_modules.php: Added a function to get the
|
||||||
|
|
|
@ -341,32 +341,26 @@ function agents_get_agents ($filter = false, $fields = false, $access = 'AR', $o
|
||||||
WHERE tagente.disabled = 0 AND tagente_estado.id_agente = tagente.id_agente
|
WHERE tagente.disabled = 0 AND tagente_estado.id_agente = tagente.id_agente
|
||||||
AND tagente_estado.id_agente_modulo = tagente_modulo.id_agente_modulo
|
AND tagente_estado.id_agente_modulo = tagente_modulo.id_agente_modulo
|
||||||
AND tagente_modulo.disabled = 0 AND estado = 0
|
AND tagente_modulo.disabled = 0 AND estado = 0
|
||||||
AND (utimestamp != 0)' /*OR tagente_modulo.id_tipo_modulo IN (21,22,23))
|
AND (utimestamp != 0)';
|
||||||
AND (utimestamp >= ( UNIX_TIMESTAMP() - (current_interval * 2))
|
|
||||||
OR tagente_modulo.id_tipo_modulo IN (21,22,23,100))'*/;
|
|
||||||
|
|
||||||
$warning_modules = 'SELECT tagente.id_agente
|
$warning_modules = 'SELECT tagente.id_agente
|
||||||
FROM tagente_estado, tagente, tagente_modulo
|
FROM tagente_estado, tagente, tagente_modulo
|
||||||
WHERE tagente.disabled = 0 AND tagente_estado.id_agente = tagente.id_agente
|
WHERE tagente.disabled = 0 AND tagente_estado.id_agente = tagente.id_agente
|
||||||
AND tagente_estado.id_agente_modulo = tagente_modulo.id_agente_modulo
|
AND tagente_estado.id_agente_modulo = tagente_modulo.id_agente_modulo
|
||||||
AND tagente_modulo.disabled = 0 AND estado = 2 AND tagente_estado.utimestamp != 0';
|
AND tagente_modulo.disabled = 0 AND estado = 2 AND tagente_estado.utimestamp != 0';
|
||||||
/* AND (utimestamp >= ( UNIX_TIMESTAMP() - (current_interval * 2))
|
|
||||||
OR tagente_modulo.id_tipo_modulo IN (21,22,23,100))';*/
|
|
||||||
|
|
||||||
$critical_modules = 'SELECT tagente.id_agente
|
$critical_modules = 'SELECT tagente.id_agente
|
||||||
FROM tagente_estado, tagente, tagente_modulo
|
FROM tagente_estado, tagente, tagente_modulo
|
||||||
WHERE tagente.disabled = 0 AND tagente_estado.id_agente = tagente.id_agente
|
WHERE tagente.disabled = 0 AND tagente_estado.id_agente = tagente.id_agente
|
||||||
AND tagente_estado.id_agente_modulo = tagente_modulo.id_agente_modulo
|
AND tagente_estado.id_agente_modulo = tagente_modulo.id_agente_modulo
|
||||||
AND tagente_modulo.disabled = 0 AND estado = 1 AND tagente_estado.utimestamp != 0';
|
AND tagente_modulo.disabled = 0 AND estado = 1 AND tagente_estado.utimestamp != 0';
|
||||||
/* AND (utimestamp >= ( UNIX_TIMESTAMP() - (current_interval * 2))
|
|
||||||
OR tagente_modulo.id_tipo_modulo IN (21,22,23,100))'; */
|
|
||||||
|
|
||||||
$unknown_modules = 'SELECT tagente.id_agente
|
$unknown_modules = 'SELECT tagente.id_agente
|
||||||
FROM tagente_estado, tagente, tagente_modulo
|
FROM tagente_estado, tagente, tagente_modulo
|
||||||
WHERE tagente.disabled = 0 AND tagente.id_agente = tagente_estado.id_agente
|
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_estado.id_agente_modulo = tagente_modulo.id_agente_modulo
|
||||||
AND tagente_modulo.disabled = 0 AND estado = 3 AND utimestamp != 0' /*AND tagente_modulo.id_tipo_modulo NOT IN (21,22,23,100)
|
AND tagente_modulo.disabled = 0 AND estado = 3 AND utimestamp != 0';
|
||||||
AND utimestamp < ( UNIX_TIMESTAMP() - (current_interval * 2)) AND utimestamp != 0'*/;
|
|
||||||
|
|
||||||
$notinit_modules = 'SELECT tagente_estado.id_agente
|
$notinit_modules = 'SELECT tagente_estado.id_agente
|
||||||
FROM tagente_estado, tagente, tagente_modulo
|
FROM tagente_estado, tagente, tagente_modulo
|
||||||
|
|
|
@ -331,12 +331,9 @@ if (is_ajax ())
|
||||||
break;
|
break;
|
||||||
case 'policies':
|
case 'policies':
|
||||||
|
|
||||||
$sql = "";
|
|
||||||
|
|
||||||
$sql = agents_get_agents(array (
|
$sql = agents_get_agents(array (
|
||||||
'order' => 'nombre COLLATE utf8_general_ci ASC',
|
'order' => 'nombre COLLATE utf8_general_ci ASC',
|
||||||
'disabled' => 0,
|
'disabled' => 0,
|
||||||
'status' => $statusSel,
|
|
||||||
'search' => $search_sql),
|
'search' => $search_sql),
|
||||||
|
|
||||||
array ('*'),
|
array ('*'),
|
||||||
|
@ -344,22 +341,34 @@ if (is_ajax ())
|
||||||
false,
|
false,
|
||||||
true);
|
true);
|
||||||
|
|
||||||
if ($id != 0) {
|
if ($id != 0) {
|
||||||
|
|
||||||
// Skip agents without modules
|
// Skip agents without modules
|
||||||
$sql .= ' AND tagente.id_agente IN
|
$sql .= ' AND tagente.id_agente IN
|
||||||
(SELECT tagente.id_agente
|
(SELECT tagente.id_agente
|
||||||
FROM tagente, tagente_modulo, tagente_estado
|
FROM tagente, tagente_modulo, tagente_estado, tpolicy_modules
|
||||||
WHERE tagente.id_agente = tagente_modulo.id_agente
|
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 = tagente_estado.id_agente_modulo
|
||||||
|
AND tagente_modulo.id_policy_module = tpolicy_modules.id
|
||||||
AND tagente.disabled = 0
|
AND tagente.disabled = 0
|
||||||
AND tagente_modulo.disabled = 0
|
AND tagente_modulo.disabled = 0
|
||||||
AND tagente_estado.utimestamp != 0
|
AND tagente_estado.utimestamp != 0
|
||||||
AND tagente_modulo.id_policy_module != 0
|
AND tagente_modulo.id_policy_module != 0
|
||||||
AND tagente.id_agente IN (SELECT id_agent FROM tpolicy_agents WHERE id_policy = ' . $id . ')
|
AND tpolicy_modules.id_policy = ' . $id . '
|
||||||
group by tagente.id_agente
|
group by tagente.id_agente
|
||||||
having COUNT(*) > 0)';
|
having COUNT(*) > 0)';
|
||||||
|
|
||||||
|
}
|
||||||
|
else if ($statusSel == 0) {
|
||||||
|
|
||||||
|
// If status filter is NORMAL add void agents
|
||||||
|
$sql .= " UNION SELECT * FROM tagente
|
||||||
|
WHERE tagente.disabled = 0
|
||||||
|
AND tagente.id_agente NOT IN (SELECT tagente_estado.id_agente
|
||||||
|
FROM tagente_estado)";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
@ -523,7 +532,26 @@ if (is_ajax ())
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Filter by status (only in policy view)
|
||||||
|
if ($type == 'policies') {
|
||||||
|
|
||||||
|
if ($statusSel == NORMAL) {
|
||||||
|
if (strpos($agent_info["status_img"], 'ok') === false)
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
else if ($statusSel == WARNING) {
|
||||||
|
if (strpos($agent_info["status_img"], 'warning') === false)
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
else if ($statusSel == CRITICAL) {
|
||||||
|
if (strpos($agent_info["status_img"], 'critical') === false)
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
else if ($statusSel == UNKNOWN) {
|
||||||
|
if (strpos($agent_info["status_img"], 'down') === false)
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$less = $lessBranchs;
|
$less = $lessBranchs;
|
||||||
if ($count != $countRows)
|
if ($count != $countRows)
|
||||||
|
@ -827,64 +855,67 @@ function printTree_($type) {
|
||||||
$avariableGroupsIds == -1;
|
$avariableGroupsIds == -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Filter groups by agent status
|
if ($type !== 'policies') {
|
||||||
switch ($select_status) {
|
// Filter groups by agent status
|
||||||
case NORMAL:
|
switch ($select_status) {
|
||||||
|
case NORMAL:
|
||||||
|
foreach ($avariableGroups as $group_name) {
|
||||||
|
$id_group = db_get_value_sql('SELECT id_grupo FROM tgrupo where nombre ="' . $group_name . '"');
|
||||||
|
|
||||||
foreach ($avariableGroups as $group_name) {
|
$num_ok = groups_agent_ok($id_group);
|
||||||
$id_group = db_get_value_sql('SELECT id_grupo FROM tgrupo where nombre ="' . $group_name . '"');
|
|
||||||
|
|
||||||
$num_ok = groups_agent_ok($id_group);
|
if ($num_ok <= 0)
|
||||||
|
unset($avariableGroups[$id_group]);
|
||||||
|
|
||||||
if ($num_ok <= 0)
|
}
|
||||||
unset($avariableGroups[$id_group]);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case WARNING:
|
break;
|
||||||
|
|
||||||
foreach ($avariableGroups as $group_name) {
|
case WARNING:
|
||||||
$id_group = db_get_value_sql('SELECT id_grupo FROM tgrupo where nombre ="' . $group_name . '"');
|
|
||||||
|
|
||||||
$num_warning = groups_agent_warning($id_group);
|
foreach ($avariableGroups as $group_name) {
|
||||||
|
$id_group = db_get_value_sql('SELECT id_grupo FROM tgrupo where nombre ="' . $group_name . '"');
|
||||||
|
|
||||||
if ($num_warning <= 0)
|
$num_warning = groups_agent_warning($id_group);
|
||||||
unset($avariableGroups[$id_group]);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case CRITICAL:
|
if ($num_warning <= 0)
|
||||||
|
unset($avariableGroups[$id_group]);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
foreach ($avariableGroups as $group_name) {
|
case CRITICAL:
|
||||||
$id_group = db_get_value_sql('SELECT id_grupo FROM tgrupo where nombre ="' . $group_name . '"');
|
|
||||||
|
|
||||||
$num_critical = groups_agent_critical($id_group);
|
foreach ($avariableGroups as $group_name) {
|
||||||
|
$id_group = db_get_value_sql('SELECT id_grupo FROM tgrupo where nombre ="' . $group_name . '"');
|
||||||
|
|
||||||
if ($num_critical <= 0)
|
$num_critical = groups_agent_critical($id_group);
|
||||||
unset($avariableGroups[$id_group]);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case UNKNOWN:
|
if ($num_critical <= 0)
|
||||||
|
unset($avariableGroups[$id_group]);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
foreach ($avariableGroups as $group_name) {
|
case UNKNOWN:
|
||||||
$id_group = db_get_value_sql('SELECT id_grupo FROM tgrupo where nombre ="' . $group_name . '"');
|
|
||||||
|
|
||||||
$num_unknown = groups_agent_unknown($id_group);
|
foreach ($avariableGroups as $group_name) {
|
||||||
|
$id_group = db_get_value_sql('SELECT id_grupo FROM tgrupo where nombre ="' . $group_name . '"');
|
||||||
|
|
||||||
if ($num_unknown <= 0)
|
$num_unknown = groups_agent_unknown($id_group);
|
||||||
unset($avariableGroups[$id_group]);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
}
|
if ($num_unknown <= 0)
|
||||||
|
unset($avariableGroups[$id_group]);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
// If there are not groups display error and return
|
}
|
||||||
if (empty($avariableGroups)) {
|
|
||||||
ui_print_error_message("There aren't agents in this agrupation");
|
// If there are not groups display error and return
|
||||||
echo '</td></tr>';
|
if (empty($avariableGroups)) {
|
||||||
echo '</table>';
|
ui_print_error_message("There aren't agents in this agrupation");
|
||||||
return;
|
echo '</td></tr>';
|
||||||
|
echo '</table>';
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($search_free != '') {
|
if ($search_free != '') {
|
||||||
|
@ -984,6 +1015,8 @@ function printTree_($type) {
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'policies':
|
case 'policies':
|
||||||
|
$avariableGroups = users_get_groups ();
|
||||||
|
|
||||||
$groups_id = array_keys($avariableGroups);
|
$groups_id = array_keys($avariableGroups);
|
||||||
$groups = implode(',',$groups_id);
|
$groups = implode(',',$groups_id);
|
||||||
|
|
||||||
|
@ -996,6 +1029,57 @@ function printTree_($type) {
|
||||||
|
|
||||||
$list = db_get_all_rows_sql($sql);
|
$list = db_get_all_rows_sql($sql);
|
||||||
|
|
||||||
|
if ($list === false)
|
||||||
|
$list = array();
|
||||||
|
|
||||||
|
$element = 0;
|
||||||
|
switch ($select_status) {
|
||||||
|
case NORMAL:
|
||||||
|
foreach ($list as $policy_element) {
|
||||||
|
|
||||||
|
$policy_agents_ok = policies_agents_ok($policy_element['id']);
|
||||||
|
|
||||||
|
if ($policy_agents_ok <= 0)
|
||||||
|
unset($list[$element]);
|
||||||
|
|
||||||
|
$element++;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case CRITICAL:
|
||||||
|
foreach ($list as $policy_element) {
|
||||||
|
|
||||||
|
$policy_agents_critical = policies_agents_critical($policy_element['id']);
|
||||||
|
|
||||||
|
if ($policy_agents_critical <= 0)
|
||||||
|
unset($list[$element]);
|
||||||
|
|
||||||
|
$element++;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case WARNING:
|
||||||
|
foreach ($list as $policy_element) {
|
||||||
|
|
||||||
|
$policy_agents_warning = policies_agents_warning($policy_element['id']);
|
||||||
|
|
||||||
|
if ($policy_agents_warning <= 0)
|
||||||
|
unset($list[$element]);
|
||||||
|
|
||||||
|
$element++;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case UNKNOWN:
|
||||||
|
foreach ($list as $policy_element) {
|
||||||
|
|
||||||
|
$policy_agents_unknown = policies_agents_unknown($policy_element['id']);
|
||||||
|
|
||||||
|
if ($policy_agents_unknown <= 0)
|
||||||
|
unset($list[$element]);
|
||||||
|
|
||||||
|
$element++;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
if ($list === false)
|
if ($list === false)
|
||||||
$list = array();
|
$list = array();
|
||||||
|
|
||||||
|
@ -1007,6 +1091,54 @@ function printTree_($type) {
|
||||||
tagente_estado.utimestamp != 0 AND tagente_modulo.id_policy_module != 0 AND tpolicy_modules.id = tagente_modulo.id_policy_module AND tpolicies.id = tpolicy_modules.id_policy AND
|
tagente_estado.utimestamp != 0 AND tagente_modulo.id_policy_module != 0 AND tpolicy_modules.id = tagente_modulo.id_policy_module AND tpolicies.id = tpolicy_modules.id_policy AND
|
||||||
tagente.id_grupo IN ($groups) AND tagente.disabled = 0 AND tagente_modulo.disabled = 0");
|
tagente.id_grupo IN ($groups) AND tagente.disabled = 0 AND tagente_modulo.disabled = 0");
|
||||||
|
|
||||||
|
$element = 0;
|
||||||
|
switch ($select_status) {
|
||||||
|
case NORMAL:
|
||||||
|
foreach ($list as $policy_element) {
|
||||||
|
|
||||||
|
$policy_agents_ok = policies_agents_ok($policy_element['id']);
|
||||||
|
|
||||||
|
if ($policy_agents_ok <= 0)
|
||||||
|
unset($list[$element]);
|
||||||
|
|
||||||
|
$element++;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case CRITICAL:
|
||||||
|
foreach ($list as $policy_element) {
|
||||||
|
|
||||||
|
$policy_agents_critical = policies_agents_critical($policy_element['id']);
|
||||||
|
|
||||||
|
if ($policy_agents_critical <= 0)
|
||||||
|
unset($list[$element]);
|
||||||
|
|
||||||
|
$element++;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case WARNING:
|
||||||
|
foreach ($list as $policy_element) {
|
||||||
|
|
||||||
|
$policy_agents_warning = policies_agents_warning($policy_element['id']);
|
||||||
|
|
||||||
|
if ($policy_agents_warning <= 0)
|
||||||
|
unset($list[$element]);
|
||||||
|
|
||||||
|
$element++;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case UNKNOWN:
|
||||||
|
foreach ($list as $policy_element) {
|
||||||
|
|
||||||
|
$policy_agents_unknown = policies_agents_unknown($policy_element['id']);
|
||||||
|
|
||||||
|
if ($policy_agents_unknown <= 0)
|
||||||
|
unset($list[$element]);
|
||||||
|
|
||||||
|
$element++;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
if ($list === false)
|
if ($list === false)
|
||||||
$list = array();
|
$list = array();
|
||||||
|
|
||||||
|
@ -1015,6 +1147,7 @@ function printTree_($type) {
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'module':
|
case 'module':
|
||||||
|
|
||||||
$avariableGroupsIds = implode(',',array_keys($avariableGroups));
|
$avariableGroupsIds = implode(',',array_keys($avariableGroups));
|
||||||
if($avariableGroupsIds == ''){
|
if($avariableGroupsIds == ''){
|
||||||
$avariableGroupsIds == -1;
|
$avariableGroupsIds == -1;
|
||||||
|
|
Loading…
Reference in New Issue