Working in the refactoring the code of reports.

This commit is contained in:
mdtrooper 2015-03-25 15:30:36 +01:00
parent b49b67be4d
commit d17fbbc3a9

View File

@ -4860,530 +4860,6 @@ function reporting_render_report_html_item ($content, $table, $report, $mini = f
case 'network_interfaces_report':
reporting_network_interfaces_table($content, $report, $mini, $item_title, $table);
break;
case 'general':
if (empty($item_title)) {
$item_title = __('General');
}
reporting_header_content($mini, $content, $report, $table, $item_title);
$group_by_agent = $content['group_by_agent'];
$order_uptodown = $content['order_uptodown'];
$table->style[1] = 'text-align: right';
// Put description at the end of the module (if exists)
$table->colspan[1][0] = 3;
if ($content["description"] != "") {
$data_desc = array();
$data_desc[0] = $content["description"];
array_push($table->data, $data_desc);
}
switch ($group_by_agent) {
//0 means not group by agent
case 0:
$sql = sprintf("
SELECT id_agent_module,
server_name, operation
FROM treport_content_item
WHERE id_report_content = %d",
$content['id_rc']);
$generals = db_process_sql ($sql);
if ($generals === false) {
$data = array ();
$table->colspan[2][0] = 3;
$data[0] =
__('There are no Agent/Modules defined');
array_push ($table->data, $data);
break;
}
$table1->width = '99%';
$table1->data = array ();
$table1->head = array ();
$table1->head[0] = __('Agent');
$table1->head[1] = __('Module');
if ($content['period'] != 0) {
$table1->head[2] = __('Operation');
}
$table1->head[3] = __('Value');
$table1->style[0] = 'text-align: left';
$table1->style[1] = 'text-align: left';
$table1->style[2] = 'text-align: left';
$table1->style[3] = 'text-align: left';
$data_res = array();
foreach ($generals as $key => $row) {
//Metaconsole connection
$server_name = $row ['server_name'];
if (($config ['metaconsole'] == 1) && $server_name != '' && defined('METACONSOLE')) {
$connection = metaconsole_get_connection($server_name);
if (metaconsole_load_external_db($connection) != NOERR) {
//ui_print_error_message ("Error connecting to ".$server_name);
continue;
}
}
if (modules_is_disable_agent($row['id_agent_module'])) {
continue;
}
$mod_name = modules_get_agentmodule_name ($row['id_agent_module']);
$ag_name = modules_get_agentmodule_agent_name ($row['id_agent_module']);
if ($content['period'] == 0) {
$data_res[$key] =
modules_get_last_value($row['id_agent_module']);
}
else {
switch ($row['operation']) {
case 'sum':
$data_res[$key] =
reporting_get_agentmodule_data_sum(
$row['id_agent_module'], $content['period'], $report["datetime"]);
break;
case 'max':
$data_res[$key] =
reporting_get_agentmodule_data_max(
$row['id_agent_module'], $content['period']);
break;
case 'min':
$data_res[$key] =
reporting_get_agentmodule_data_min(
$row['id_agent_module'], $content['period']);
break;
case 'avg':
default:
$data_res[$key] =
reporting_get_agentmodule_data_average(
$row['id_agent_module'], $content['period']);
break;
}
}
$unit = db_get_value('unit', 'tagente_modulo',
'id_agente_modulo',
$row['id_agent_module']);
$id_agent_module[$key] = $row['id_agent_module'];
$agent_name[$key] = $ag_name;
$module_name[$key] = $mod_name;
$units[$key] = $unit;
$operations[$key] = $row['operation'];
//Restore dbconnection
if (($config ['metaconsole'] == 1) && $server_name != '' && defined('METACONSOLE')) {
metaconsole_restore_db();
}
}
//Order by data descending, ascending or without order
if (($order_uptodown == 0) || ($order_uptodown == 1)
|| ($order_uptodown == 2)) {
switch ($order_uptodown) {
//Descending
case 1:
array_multisort($data_res, SORT_DESC,
$agent_name, SORT_ASC, $module_name,
SORT_ASC, $id_agent_module,
SORT_ASC, $operations, SORT_ASC);
break;
//Ascending
case 2:
array_multisort($data_res, SORT_ASC,
$agent_name, SORT_ASC, $module_name,
SORT_ASC, $id_agent_module,
SORT_ASC, $operations, SORT_ASC);
break;
}
$i = 0;
foreach ($data_res as $d) {
$data = array();
$data[0] = $agent_name[$i];
$data[1] = $module_name[$i];
if ($content['period'] != 0) {
switch ($operations[$i]) {
case 'sum':
$op = __('Summatory');
break;
case 'min':
$op = __('Minimal');
break;
case 'max':
$op = __('Maximun');
break;
case 'avg':
default:
$op = __('Rate');
break;
}
$data[2] = $op;
}
if ($d === false) {
$data[3] = '--';
}
else {
if (!is_numeric($d)) {
$data[3] = $d;
}
else {
$data[3] = format_for_graph($d, 2) . " " .
$units[$i];
}
}
array_push ($table1->data, $data);
$i++;
}
}
//Order by agent name
elseif ($order_uptodown == 3) {
array_multisort($agent_name, SORT_ASC,
$data_res, SORT_ASC, $module_name, SORT_ASC,
$id_agent_module, SORT_ASC, $operations,
SORT_ASC);
$i=0;
foreach ($agent_name as $a) {
$data = array();
$data[0] = $agent_name[$i];
$data[1] = $module_name[$i];
switch ($operations[$i]) {
case 'sum':
$op = __('Summatory');
break;
case 'min':
$op = __('Minimal');
break;
case 'max':
$op = __('Maximun');
break;
case 'avg':
default:
$op = __('Average');
break;
}
$data[2] = $op;
if ($data_res[$i] === false) {
$data[3] = '--';
}
else {
$data[3] =
format_for_graph($data_res[$i], 2)
. " " . $units[$i];
}
array_push ($table1->data, $data);
$i++;
}
}
$table->colspan[2][0] = 3;
$data = array();
$data[0] = html_print_table($table1, true);
array_push ($table->data, $data);
break;
//1 means group by agent
case 1:
//Get the data
$sql_data = sprintf("SELECT id_agent_module,
server_name, operation
FROM treport_content_item
WHERE id_report_content = %d",
$content['id_rc']);
$generals = db_process_sql ($sql_data);
if ($generals === false) {
$data = array ();
$table->colspan[2][0] = 3;
$data[0] = __('There are no Agent/Modules defined');
array_push ($table->data, $data);
break;
}
$list_modules = array();
$data = array();
foreach ($generals as $g) {
//Metaconsole connection
$server_name = $g ['server_name'];
if (($config ['metaconsole'] == 1) && $server_name != '' && defined('METACONSOLE')) {
$connection = metaconsole_get_connection($server_name);
if (metaconsole_load_external_db($connection) != NOERR) {
//ui_print_error_message ("Error connecting to ".$server_name);
continue;
}
}
if (modules_is_disable_agent($g['id_agent_module'])) {
continue;
}
$agent_name = modules_get_agentmodule_agent_name ($g['id_agent_module']);
$module_name = modules_get_agentmodule_name ($g['id_agent_module']);
$unit = db_get_value('unit', 'tagente_modulo', 'id_agente_modulo', $g['id_agent_module']);
if ($content['period'] == 0) {
$value_res =
modules_get_last_value($g['id_agent_module']);
}
else {
switch ($g['operation']) {
case 'sum':
$value_res = reporting_get_agentmodule_data_sum ($g['id_agent_module'], $content['period'], $report["datetime"]);
break;
case 'max':
$value_res = reporting_get_agentmodule_data_max ($g['id_agent_module'], $content['period']);
break;
case 'min':
$value_res = reporting_get_agentmodule_data_min ($g['id_agent_module'], $content['period']);
break;
case 'avg':
default:
$value_res = reporting_get_agentmodule_data_average ($g['id_agent_module'], $content['period']);
break;
}
}
if ($value_res === false) {
$data[$agent_name][$module_name] = '--';
}
else {
if (!is_numeric($value_res)) {
$data[$agent_name][$module_name] = $value_res;
}
else {
$data[$agent_name][$module_name] = format_for_graph($value_res, 2) . " " . $unit;
}
}
// Save the modules
$list_modules[$module_name] = null;
// Restore dbconnection
if (($config ['metaconsole'] == 1) && $server_name != '' && defined('METACONSOLE')) {
metaconsole_restore_db();
}
}
$table2->width = '99%';
$table2->data = array ();
$table2->head = array ();
$table2->head[0] = __('Agent');
$table2->style[0] = 'text-align: left';
$i = 1;
foreach (array_keys($list_modules) as $module) {
$table2->head[$i] =
ui_print_truncate_text($module, 20, false);
$table2->style[$i] = 'text-align: center';
$i++;
}
foreach ($data as $agent_name => $agent) {
$row = array();
$row[] = $agent_name;
foreach (array_keys($list_modules) as $module_name) {
if (!isset($agent[$module_name])) {
$row[] = '--';
}
else {
$row[] = $agent[$module_name];
}
}
$table2->data[] = $row;
}
$data = array();
$data[0] = html_print_table($table2, true);
array_push ($table->data, $data);
break;
}
if ($content['show_resume'] && count($generals) > 0) {
//Get the first valid value and assign it to $min & $max
$min = false;
$min_name_agent_module = '';
$max_name_agent_module = '';
$min_unit = '';
$max_unit = '';
$i=0;
do {
//Metaconsole connection
$server_name = $generals[$i]['server_name'];
if (($config ['metaconsole'] == 1) && $server_name != '' && defined('METACONSOLE')) {
$connection = metaconsole_get_connection($server_name);
if (metaconsole_load_external_db($connection) != NOERR) {
//ui_print_error_message ("Error connecting to ".$server_name);
continue;
}
}
if ($content['period'] == 0) {
$min =
modules_get_last_value($generals[$i]['id_agent_module']);
}
else {
switch ($generals[$i]['operation']) {
case 'sum':
$min = reporting_get_agentmodule_data_sum ($generals[$i]['id_agent_module'], $content['period'], $report["datetime"]);
break;
case 'max':
$min = reporting_get_agentmodule_data_max ($generals[$i]['id_agent_module'], $content['period']);
break;
case 'min':
$min = reporting_get_agentmodule_data_min ($generals[$i]['id_agent_module'], $content['period']);
break;
case 'avg':
default:
$min = reporting_get_agentmodule_data_average ($generals[$i]['id_agent_module'], $content['period']);
break;
}
}
$i++;
$min_name_agent_module =
modules_get_agentmodule_name($generals[$i]['id_agent_module']) .
" - " .
modules_get_agentmodule_agent_name($generals[$i]['id_agent_module']) .
" (" . $generals[$i]['operation'] . ")";
$min_unit = db_get_value('unit', 'tagente_modulo', 'id_agente_modulo', $generals[$i]['id_agent_module']);
//Restore dbconnection
if (($config ['metaconsole'] == 1) && $server_name != '' && defined('METACONSOLE')) {
metaconsole_restore_db();
}
}
while ($min === false && $i < count($generals));
$max = $min;
$max_name_agent_module = $min_name_agent_module;
$max_unit = $min_unit;
$avg = 0;
$length = 0;
if ($generals === false) {
$generals = array();
}
foreach ($generals as $g) {
//Metaconsole connection
$server_name = $g['server_name'];
if (($config ['metaconsole'] == 1) && $server_name != '' && defined('METACONSOLE')) {
$connection = metaconsole_get_connection($server_name);
if (metaconsole_load_external_db($connection) != NOERR) {
//ui_print_error_message ("Error connecting to ".$server_name);
continue;
}
}
if ($content['period'] == 0) {
$value =
modules_get_last_value($g['id_agent_module']);
}
else {
switch ($g['operation']) {
case 'sum':
$value = reporting_get_agentmodule_data_sum ($g['id_agent_module'], $content['period'], $report["datetime"]);
break;
case 'max':
$value = reporting_get_agentmodule_data_max ($g['id_agent_module'], $content['period']);
break;
case 'min':
$value = reporting_get_agentmodule_data_min ($g['id_agent_module'], $content['period']);
break;
case 'avg':
default:
$value = reporting_get_agentmodule_data_average ($g['id_agent_module'], $content['period']);
break;
}
}
if ($value !== false) {
if ($value > $max) {
$max = $value;
$max_name_agent_module =
modules_get_agentmodule_name($g['id_agent_module']) .
" - " .
modules_get_agentmodule_agent_name($g['id_agent_module']) .
" (" . $g['operation'] . ")";
$max_unit = db_get_value('unit', 'tagente_modulo', 'id_agente_modulo', $g['id_agent_module']);
}
if ($value < $min ) {
$min = $value;
$min_name_agent_module =
modules_get_agentmodule_name($g['id_agent_module']) .
" - " .
modules_get_agentmodule_agent_name($g['id_agent_module']) .
" (" . $g['operation'] . ")";
$min_unit = db_get_value('unit', 'tagente_modulo', 'id_agente_modulo', $g['id_agent_module']);
}
$avg += $value;
$length++;
}
//Restore dbconnection
if (($config ['metaconsole'] == 1)
&& $server_name != ''
&& defined('METACONSOLE')) {
metaconsole_restore_db();
}
}
if ($length == 0) {
$avg = 0;
}
else {
$avg = $avg / $length;
}
unset($table_summary);
$table_summary->width = '99%';
$table_summary->data = array ();
$table_summary->head = array ();
$table_summary->head_colspan = array ();
$table_summary->align = array();
$table_summary->align[0] = 'left';
$table_summary->align[1] = 'left';
$table_summary->align[2] = 'left';
$table_summary->align[3] = 'left';
$table_summary->align[4] = 'left';
$table_summary->head_colspan[0] = 2;
$table_summary->head[0] = __('Min Value');
$table_summary->head[1] = __('Average Value');
$table_summary->head_colspan[2] = 2;
$table_summary->head[2] = __('Max Value');
$table_summary->data[0][0] = $min_name_agent_module;
$table_summary->data[0][1] = format_for_graph($min,2) . ' ' . $min_unit;
$table_summary->data[0][2] = format_for_graph($avg,2);
$table_summary->data[0][3] = $max_name_agent_module;
$table_summary->data[0][4] = format_for_graph($max,2) . ' ' . $max_unit;
$table->colspan[3][0] = 3;
array_push ($table->data,
array('<b>' . __('Summary') . '</b>'));
$table->colspan[4][0] = 3;
array_push ($table->data,
array(html_print_table($table_summary, true)));
}
break;
case 'top_n':
$top_n = $content['top_n'];