mirror of
https://github.com/pandorafms/pandorafms.git
synced 2025-07-28 16:24:54 +02:00
Added the function 'modules_is_disable_agent' and fixed the show disabled agents in reports into items 'general' 'sla'.
This commit is contained in:
parent
dc1dc7012c
commit
cf9c53f220
@ -23,6 +23,20 @@ include_once($config['homedir'] . "/include/functions_agents.php");
|
|||||||
include_once($config['homedir'] . '/include/functions_users.php');
|
include_once($config['homedir'] . '/include/functions_users.php');
|
||||||
include_once($config['homedir'] . '/include/functions_tags.php');
|
include_once($config['homedir'] . '/include/functions_tags.php');
|
||||||
|
|
||||||
|
function modules_is_disable_agent($id_agent_module) {
|
||||||
|
$sql = "
|
||||||
|
SELECT disabled
|
||||||
|
FROM tagente
|
||||||
|
WHERE id_agente IN (
|
||||||
|
SELECT id_agente
|
||||||
|
FROM tagente_modulo
|
||||||
|
WHERE id_agente_modulo = " . (int)$id_agent_module . ")";
|
||||||
|
|
||||||
|
$disabled = db_get_value_sql($sql);
|
||||||
|
|
||||||
|
return (bool)$disabled;
|
||||||
|
}
|
||||||
|
|
||||||
function modules_is_disable_type_event($id_agent_module = false, $type_event = false) {
|
function modules_is_disable_type_event($id_agent_module = false, $type_event = false) {
|
||||||
if ($id_agent_module === false) {
|
if ($id_agent_module === false) {
|
||||||
switch ($type_event) {
|
switch ($type_event) {
|
||||||
|
@ -1860,7 +1860,7 @@ function reporting_get_group_stats ($id_group = 0, $access = 'AR') {
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
||||||
if (!is_array($id_group)){
|
if (!is_array($id_group)) {
|
||||||
$my_group = $id_group;
|
$my_group = $id_group;
|
||||||
$id_group = array();
|
$id_group = array();
|
||||||
$id_group[0] = $my_group;
|
$id_group[0] = $my_group;
|
||||||
@ -1877,7 +1877,7 @@ function reporting_get_group_stats ($id_group = 0, $access = 'AR') {
|
|||||||
|
|
||||||
foreach ($children as $sub) {
|
foreach ($children as $sub) {
|
||||||
// If the group is quering previously, we ingore it
|
// If the group is quering previously, we ingore it
|
||||||
if (!in_array($sub['id_grupo'],$covered_groups)){
|
if (!in_array($sub['id_grupo'],$covered_groups)) {
|
||||||
array_push($covered_groups, $sub['id_grupo']);
|
array_push($covered_groups, $sub['id_grupo']);
|
||||||
array_push($group_array, $sub['id_grupo']);
|
array_push($group_array, $sub['id_grupo']);
|
||||||
}
|
}
|
||||||
@ -1886,7 +1886,7 @@ function reporting_get_group_stats ($id_group = 0, $access = 'AR') {
|
|||||||
|
|
||||||
// Add id of this group to create the clause
|
// Add id of this group to create the clause
|
||||||
// If the group is quering previously, we ingore it
|
// If the group is quering previously, we ingore it
|
||||||
if (!in_array($group,$covered_groups)){
|
if (!in_array($group,$covered_groups)) {
|
||||||
array_push($covered_groups, $group);
|
array_push($covered_groups, $group);
|
||||||
array_push($group_array, $group);
|
array_push($group_array, $group);
|
||||||
}
|
}
|
||||||
@ -3799,29 +3799,29 @@ function reporting_render_report_html_item ($content, $table, $report, $mini = f
|
|||||||
$table1->style[5] = 'text-align: right';
|
$table1->style[5] = 'text-align: right';
|
||||||
// $table1->style[6] = 'text-align: center';
|
// $table1->style[6] = 'text-align: center';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Table Planned Downtimes
|
// Table Planned Downtimes
|
||||||
require_once ($config['homedir'] . '/include/functions_planned_downtimes.php');
|
require_once ($config['homedir'] . '/include/functions_planned_downtimes.php');
|
||||||
$metaconsole_on = ($config['metaconsole'] == 1) && defined('METACONSOLE');
|
$metaconsole_on = ($config['metaconsole'] == 1) && defined('METACONSOLE');
|
||||||
$downtime_malformed = false;
|
$downtime_malformed = false;
|
||||||
|
|
||||||
$planned_downtimes_empty = true;
|
$planned_downtimes_empty = true;
|
||||||
$malformed_planned_downtimes_empty = true;
|
$malformed_planned_downtimes_empty = true;
|
||||||
|
|
||||||
if ($metaconsole_on) {
|
if ($metaconsole_on) {
|
||||||
$id_agent_modules_by_server = array();
|
$id_agent_modules_by_server = array();
|
||||||
|
|
||||||
foreach ($slas as $sla) {
|
foreach ($slas as $sla) {
|
||||||
$server = $sla['server_name'];
|
$server = $sla['server_name'];
|
||||||
if (empty($server))
|
if (empty($server))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (!isset($id_agent_modules_by_server[$server]))
|
if (!isset($id_agent_modules_by_server[$server]))
|
||||||
$id_agent_modules_by_server[$server] = array();
|
$id_agent_modules_by_server[$server] = array();
|
||||||
|
|
||||||
$id_agent_modules_by_server[$server][] = $sla['id_agent_module'];
|
$id_agent_modules_by_server[$server][] = $sla['id_agent_module'];
|
||||||
}
|
}
|
||||||
|
|
||||||
$planned_downtimes_by_server = array();
|
$planned_downtimes_by_server = array();
|
||||||
$malformed_planned_downtimes_by_server = array();
|
$malformed_planned_downtimes_by_server = array();
|
||||||
foreach ($id_agent_modules_by_server as $server => $id_agent_modules) {
|
foreach ($id_agent_modules_by_server as $server => $id_agent_modules) {
|
||||||
@ -3831,10 +3831,10 @@ function reporting_render_report_html_item ($content, $table, $report, $mini = f
|
|||||||
if (!metaconsole_load_external_db($connection)) {
|
if (!metaconsole_load_external_db($connection)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
$planned_downtimes_by_server[$server] = reporting_get_planned_downtimes(($report['datetime']-$content['period']), $report['datetime'], $id_agent_modules);
|
$planned_downtimes_by_server[$server] = reporting_get_planned_downtimes(($report['datetime']-$content['period']), $report['datetime'], $id_agent_modules);
|
||||||
$malformed_planned_downtimes_by_server[$server] = planned_downtimes_get_malformed();
|
$malformed_planned_downtimes_by_server[$server] = planned_downtimes_get_malformed();
|
||||||
|
|
||||||
if (!empty($planned_downtimes_by_server[$server]))
|
if (!empty($planned_downtimes_by_server[$server]))
|
||||||
$planned_downtimes_empty = false;
|
$planned_downtimes_empty = false;
|
||||||
if (!empty($malformed_planned_downtimes_by_server[$server]))
|
if (!empty($malformed_planned_downtimes_by_server[$server]))
|
||||||
@ -3844,7 +3844,7 @@ function reporting_render_report_html_item ($content, $table, $report, $mini = f
|
|||||||
metaconsole_restore_db();
|
metaconsole_restore_db();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$planned_downtimes_empty) {
|
if (!$planned_downtimes_empty) {
|
||||||
$table_planned_downtimes = new StdClass();
|
$table_planned_downtimes = new StdClass();
|
||||||
$table_planned_downtimes->width = '100%';
|
$table_planned_downtimes->width = '100%';
|
||||||
@ -3859,7 +3859,7 @@ function reporting_render_report_html_item ($content, $table, $report, $mini = f
|
|||||||
$table_planned_downtimes->style = array();
|
$table_planned_downtimes->style = array();
|
||||||
$table_planned_downtimes->cellstyle = array();
|
$table_planned_downtimes->cellstyle = array();
|
||||||
$table_planned_downtimes->data = array();
|
$table_planned_downtimes->data = array();
|
||||||
|
|
||||||
foreach ($planned_downtimes_by_server as $server => $planned_downtimes) {
|
foreach ($planned_downtimes_by_server as $server => $planned_downtimes) {
|
||||||
foreach ($planned_downtimes as $planned_downtime) {
|
foreach ($planned_downtimes as $planned_downtime) {
|
||||||
$data = array();
|
$data = array();
|
||||||
@ -3921,7 +3921,7 @@ function reporting_render_report_html_item ($content, $table, $report, $mini = f
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$malformed_planned_downtimes_empty
|
if (!$malformed_planned_downtimes_empty
|
||||||
&& isset($malformed_planned_downtimes_by_server[$server])
|
&& isset($malformed_planned_downtimes_by_server[$server])
|
||||||
&& isset($malformed_planned_downtimes_by_server[$server][$planned_downtime['id']])) {
|
&& isset($malformed_planned_downtimes_by_server[$server][$planned_downtime['id']])) {
|
||||||
@ -3931,7 +3931,7 @@ function reporting_render_report_html_item ($content, $table, $report, $mini = f
|
|||||||
$table_planned_downtimes->cellstyle[$next_row_num][2] = 'color: red';
|
$table_planned_downtimes->cellstyle[$next_row_num][2] = 'color: red';
|
||||||
$table_planned_downtimes->cellstyle[$next_row_num][3] = 'color: red';
|
$table_planned_downtimes->cellstyle[$next_row_num][3] = 'color: red';
|
||||||
$table_planned_downtimes->cellstyle[$next_row_num][4] = 'color: red';
|
$table_planned_downtimes->cellstyle[$next_row_num][4] = 'color: red';
|
||||||
|
|
||||||
if (!$downtime_malformed)
|
if (!$downtime_malformed)
|
||||||
$downtime_malformed = true;
|
$downtime_malformed = true;
|
||||||
}
|
}
|
||||||
@ -3947,15 +3947,15 @@ function reporting_render_report_html_item ($content, $table, $report, $mini = f
|
|||||||
if (!empty($sla['id_agent_module']))
|
if (!empty($sla['id_agent_module']))
|
||||||
$id_agent_modules[] = $sla['id_agent_module'];
|
$id_agent_modules[] = $sla['id_agent_module'];
|
||||||
}
|
}
|
||||||
|
|
||||||
$planned_downtimes = reporting_get_planned_downtimes(($report['datetime']-$content['period']), $report['datetime'], $id_agent_modules);
|
$planned_downtimes = reporting_get_planned_downtimes(($report['datetime']-$content['period']), $report['datetime'], $id_agent_modules);
|
||||||
$malformed_planned_downtimes = planned_downtimes_get_malformed();
|
$malformed_planned_downtimes = planned_downtimes_get_malformed();
|
||||||
|
|
||||||
if (!empty($planned_downtimes))
|
if (!empty($planned_downtimes))
|
||||||
$planned_downtimes_empty = false;
|
$planned_downtimes_empty = false;
|
||||||
if (!empty($malformed_planned_downtimes))
|
if (!empty($malformed_planned_downtimes))
|
||||||
$malformed_planned_downtimes_empty = false;
|
$malformed_planned_downtimes_empty = false;
|
||||||
|
|
||||||
if (!$planned_downtimes_empty) {
|
if (!$planned_downtimes_empty) {
|
||||||
$table_planned_downtimes = new StdClass();
|
$table_planned_downtimes = new StdClass();
|
||||||
$table_planned_downtimes->width = '100%';
|
$table_planned_downtimes->width = '100%';
|
||||||
@ -3969,9 +3969,9 @@ function reporting_render_report_html_item ($content, $table, $report, $mini = f
|
|||||||
$table_planned_downtimes->style = array();
|
$table_planned_downtimes->style = array();
|
||||||
$table_planned_downtimes->cellstyle = array();
|
$table_planned_downtimes->cellstyle = array();
|
||||||
$table_planned_downtimes->data = array();
|
$table_planned_downtimes->data = array();
|
||||||
|
|
||||||
foreach ($planned_downtimes as $planned_downtime) {
|
foreach ($planned_downtimes as $planned_downtime) {
|
||||||
|
|
||||||
$data = array();
|
$data = array();
|
||||||
$data[0] = $planned_downtime['name'];
|
$data[0] = $planned_downtime['name'];
|
||||||
$data[1] = $planned_downtime['description'];
|
$data[1] = $planned_downtime['description'];
|
||||||
@ -4030,14 +4030,14 @@ function reporting_render_report_html_item ($content, $table, $report, $mini = f
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$malformed_planned_downtimes_empty && isset($malformed_planned_downtimes[$planned_downtime['id']])) {
|
if (!$malformed_planned_downtimes_empty && isset($malformed_planned_downtimes[$planned_downtime['id']])) {
|
||||||
$next_row_num = count($table_planned_downtimes->data);
|
$next_row_num = count($table_planned_downtimes->data);
|
||||||
$table_planned_downtimes->cellstyle[$next_row_num][0] = 'color: red';
|
$table_planned_downtimes->cellstyle[$next_row_num][0] = 'color: red';
|
||||||
$table_planned_downtimes->cellstyle[$next_row_num][1] = 'color: red';
|
$table_planned_downtimes->cellstyle[$next_row_num][1] = 'color: red';
|
||||||
$table_planned_downtimes->cellstyle[$next_row_num][2] = 'color: red';
|
$table_planned_downtimes->cellstyle[$next_row_num][2] = 'color: red';
|
||||||
$table_planned_downtimes->cellstyle[$next_row_num][3] = 'color: red';
|
$table_planned_downtimes->cellstyle[$next_row_num][3] = 'color: red';
|
||||||
|
|
||||||
if (!$downtime_malformed)
|
if (!$downtime_malformed)
|
||||||
$downtime_malformed = true;
|
$downtime_malformed = true;
|
||||||
}
|
}
|
||||||
@ -4046,9 +4046,10 @@ function reporting_render_report_html_item ($content, $table, $report, $mini = f
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($downtime_malformed) {
|
if ($downtime_malformed) {
|
||||||
$info_malformed = ui_print_error_message(__('This item is affected by a malformed planned downtime') . ". " .
|
$info_malformed = ui_print_error_message(
|
||||||
|
__('This item is affected by a malformed planned downtime') . ". " .
|
||||||
__('Go to the planned downtimes section to solve this') . ".", '', true);
|
__('Go to the planned downtimes section to solve this') . ".", '', true);
|
||||||
|
|
||||||
$data = array();
|
$data = array();
|
||||||
@ -4072,9 +4073,9 @@ function reporting_render_report_html_item ($content, $table, $report, $mini = f
|
|||||||
// $data_horin_graph[__('Unknown')] = 0;
|
// $data_horin_graph[__('Unknown')] = 0;
|
||||||
|
|
||||||
$data_graph[__('Plannified downtime')] = 0;
|
$data_graph[__('Plannified downtime')] = 0;
|
||||||
|
|
||||||
$urlImage = ui_get_full_url(false, true, false, false);
|
$urlImage = ui_get_full_url(false, true, false, false);
|
||||||
|
|
||||||
$sla_failed = false;
|
$sla_failed = false;
|
||||||
$total_SLA = 0;
|
$total_SLA = 0;
|
||||||
$total_result_SLA = 'ok';
|
$total_result_SLA = 'ok';
|
||||||
@ -4092,10 +4093,16 @@ function reporting_render_report_html_item ($content, $table, $report, $mini = f
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (modules_is_disable_agent($sla['id_agent_module'])) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
//Get the sla_value in % and store it on $sla_value
|
//Get the sla_value in % and store it on $sla_value
|
||||||
$sla_value = reporting_get_agentmodule_sla ($sla['id_agent_module'], $content['period'],
|
$sla_value = reporting_get_agentmodule_sla(
|
||||||
$sla['sla_min'], $sla['sla_max'], $report["datetime"], $content, $content['time_from'],
|
$sla['id_agent_module'], $content['period'],
|
||||||
$content['time_to']);
|
$sla['sla_min'], $sla['sla_max'],
|
||||||
|
$report["datetime"], $content,
|
||||||
|
$content['time_from'], $content['time_to']);
|
||||||
|
|
||||||
if (($config ['metaconsole'] == 1) && defined('METACONSOLE')) {
|
if (($config ['metaconsole'] == 1) && defined('METACONSOLE')) {
|
||||||
//Restore db connection
|
//Restore db connection
|
||||||
@ -4103,7 +4110,11 @@ function reporting_render_report_html_item ($content, $table, $report, $mini = f
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Do not show right modules if 'only_display_wrong' is active
|
//Do not show right modules if 'only_display_wrong' is active
|
||||||
if ($content['only_display_wrong'] == 1 && $sla_value >= $sla['sla_limit']) continue;
|
if ($content['only_display_wrong'] == 1 &&
|
||||||
|
$sla_value >= $sla['sla_limit']) {
|
||||||
|
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
$sla_showed[] = $sla;
|
$sla_showed[] = $sla;
|
||||||
$sla_showed_values[] = $sla_value;
|
$sla_showed_values[] = $sla_value;
|
||||||
@ -5322,7 +5333,8 @@ function reporting_render_report_html_item ($content, $table, $report, $mini = f
|
|||||||
switch ($group_by_agent) {
|
switch ($group_by_agent) {
|
||||||
//0 means not group by agent
|
//0 means not group by agent
|
||||||
case 0:
|
case 0:
|
||||||
$sql = sprintf("SELECT id_agent_module,
|
$sql = sprintf("
|
||||||
|
SELECT id_agent_module,
|
||||||
server_name, operation
|
server_name, operation
|
||||||
FROM treport_content_item
|
FROM treport_content_item
|
||||||
WHERE id_report_content = %d",
|
WHERE id_report_content = %d",
|
||||||
@ -5365,6 +5377,10 @@ function reporting_render_report_html_item ($content, $table, $report, $mini = f
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (modules_is_disable_agent($row['id_agent_module'])) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
$mod_name = modules_get_agentmodule_name ($row['id_agent_module']);
|
$mod_name = modules_get_agentmodule_name ($row['id_agent_module']);
|
||||||
$ag_name = modules_get_agentmodule_agent_name ($row['id_agent_module']);
|
$ag_name = modules_get_agentmodule_agent_name ($row['id_agent_module']);
|
||||||
|
|
||||||
@ -5556,6 +5572,9 @@ function reporting_render_report_html_item ($content, $table, $report, $mini = f
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (modules_is_disable_agent($g['id_agent_module'])) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
$agent_name = modules_get_agentmodule_agent_name ($g['id_agent_module']);
|
$agent_name = modules_get_agentmodule_agent_name ($g['id_agent_module']);
|
||||||
$module_name = modules_get_agentmodule_name ($g['id_agent_module']);
|
$module_name = modules_get_agentmodule_name ($g['id_agent_module']);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user