From 36467aaa5e5660079c6c05dc49ef4390dc633000 Mon Sep 17 00:00:00 2001 From: mdtrooper Date: Mon, 18 May 2015 14:49:02 +0200 Subject: [PATCH] Working in the refactoring the code of reports. Removed the xml code. --- pandora_console/include/functions_xml.php | 171 -- .../operation/reporting/reporting_xml.php | 1456 +---------------- 2 files changed, 72 insertions(+), 1555 deletions(-) delete mode 100644 pandora_console/include/functions_xml.php mode change 100644 => 100755 pandora_console/operation/reporting/reporting_xml.php diff --git a/pandora_console/include/functions_xml.php b/pandora_console/include/functions_xml.php deleted file mode 100644 index da291e3ef4..0000000000 --- a/pandora_console/include/functions_xml.php +++ /dev/null @@ -1,171 +0,0 @@ -". $agent_data['nombre']."\n"; - $content_report .= " ". $agent_data['comentarios']."\n"; - $content_report .= " ".$agent_data['direccion']."\n"; - $content_report .= " ".$agent_data['id_grupo']."\n"; - $content_report .= " ". $agent_data['intervalo']."\n"; - - $sql = "SELECT t1.description, t2.name - FROM tagent_custom_data t1, tagent_custom_fields t2 - WHERE t1.id_agent=".$agent_data['id_agente']." - AND t1.id_field=t2.id_field"; - $custom_fields = db_get_all_rows_sql($sql); - - if ($custom_fields !== false) { - foreach ($custom_fields as $field) { - $field['name'] = io_safe_output($field['name']); - //remove blank - $field['name'] = preg_replace('/\s/', '_', $field['name']); - $content_report .= " <".$field['name'].">".$field['description']."\n"; - } - } - $content_report .= " ".$agent_data['id_os']."\n"; - $content_report .= " ". agents_get_name ($agent_data['id_parent'])."\n"; - $content_report .= " ".$agent_data['id_extra']."\n"; - $content_report .= " ".$agent_data['disabled']."\n"; - - $result = fwrite($file, $content_report); - $position++; - - fclose($file); - return $position; -} - -//xml con los datos de módulos de un agente -function xml_file_agent_conf ($modules = array(), $file_temp, $position = 0, $id_agent) { - - $file = fopen($file_temp, 'a+'); - - foreach ($modules as $module) { - - $content_report = " \n"; - - $content_report .= " ".$module['nombre']."\n"; - $content_report .= " ".$module['id_agente_modulo']."\n"; - $content_report .= " ".$module['id_tipo_modulo']."\n"; - $content_report .= " ".$module['descripcion']."\n"; - $content_report .= " ". $module['extended_info']."\n"; - $content_report .= " ". $module['unit']."\n"; - $content_report .= " ". $module['max']."\n"; - $content_report .= " ".$module['min']."\n"; - $content_report .= " ". $module['module_interval']."\n"; - $content_report .= " ". $module['module_ff_interval']."\n"; - $content_report .= " ". $module['tcp_port']."\n"; - $content_report .= " ". $module['tcp_send']."\n"; - $content_report .= " ". $module['tcp_rcv']."\n"; - $content_report .= " ". $module['snmp_community']."\n"; - $content_report .= " ".$module['snmp_oid']."\n"; - $content_report .= " ". $module['ip_target']."\n"; - $content_report .= " ".$module['id_module_group']."\n"; - $content_report .= " ". $module['disabled']."\n"; - $content_report .= " ".$module['id_plugin']."\n"; - $content_report .= " ". $module['post_process']."\n"; - $content_report .= " ". $module['min_warning']."\n"; - $content_report .= " ". $module['max_warning']."\n"; - $content_report .= " ". $module['str_warning']."\n"; - $content_report .= " ". $module['min_critical']."\n"; - $content_report .= " ".$module['max_critical']."\n"; - $content_report .= " ". $module['str_critical']."\n"; - $content_report .= " ". $module['id_policy_module']."\n"; - $content_report .= " ".$module['wizard_level']."\n"; - $content_report .= " ". $module['critical_instructions']."\n"; - $content_report .= " ". $module['warning_instructions']."\n"; - $content_report .= " ".$module['unknown_instructions']."\n"; - - $content_report .= " \n"; - - $result = fwrite($file, $content_report); - $position++; - } - fclose($file); - - return $position; -} - -// xml eventos -function xml_file_event ($events = array(), $file_temp, $position = 0, $id_agent) { - - $file = fopen($file_temp, 'a+'); - - foreach ($events as $event) { - - $content_report = " \n"; - $content_report .= " " . io_safe_output($event['evento']) . "\n"; - $content_report .= " " . $event['event_type'] . "\n"; - $content_report .= " " . get_priority_name($event['criticity']) . "\n"; - $content_report .= " " . $event['count_rep'] . "\n"; - $content_report .= " " . $event['time2'] . "\n"; - $content_report .= " " . io_safe_output(modules_get_agentmodule_name ($event['id_agentmodule'])) . "\n"; - $content_report .= " " . io_safe_output(agents_get_name ($id_agent)) . "\n"; - - if ($event['estado'] == 0) - $status = __('New'); - else if ($event['estado'] == 1) - $status = __('Validated'); - else if ($event['estado'] == 2) - $status = __('In process'); - else - $status = ""; - - $content_report .= " ".$status."\n"; - $content_report .= " ".$event['user_comment']."\n"; - $content_report .= " ".$event['tags']."\n"; - $content_report .= " ".$event['source']."\n"; - $content_report .= " ".$event['id_extra']."\n"; - $content_report .= " ".$event['owner_user']."\n"; - $content_report .= " \n"; - - $result = fwrite($file, $content_report); - $position++; - - } - fclose($file); - - return $position; -} - -//xml graph -function xml_file_graph ($data_module = array(), $file_temp, $position = 0) { - - $file = fopen($file_temp, 'a+'); - - foreach ($data_module as $data_m) { - - $content_report = " \n"; - $content_report .= " ".date ('Y-m-d H:i:s', $data_m['utimestamp'])."\n"; - $content_report .= " ".$data_m['utimestamp']."\n"; - $content_report .= " ".$data_m['datos']."\n"; - $content_report .= " \n"; - - $result = fwrite($file, $content_report); - $position++; - } - - fclose($file); - - return $position; -} -?> diff --git a/pandora_console/operation/reporting/reporting_xml.php b/pandora_console/operation/reporting/reporting_xml.php old mode 100644 new mode 100755 index c220fd0874..e55a23b890 --- a/pandora_console/operation/reporting/reporting_xml.php +++ b/pandora_console/operation/reporting/reporting_xml.php @@ -17,46 +17,41 @@ include_once("include/functions_modules.php"); include_once("include/functions_events.php"); include_once ('include/functions_groups.php'); include_once ('include/functions_netflow.php'); -include_once ('include/functions_xml.php'); enterprise_include_once ('include/functions_metaconsole.php'); -function xml_array ($array, $buffer_file = array()) { - - foreach ($array as $name => $value) { - //si coincide con el nivel de anidación y existe el fichero - $file_to_print = false; - if(isset($buffer_file[$name]) && file_exists($buffer_file[$name])) { - $file_to_print = $buffer_file[$name]; - } - - if (is_int ($name)) { - echo ""; - $name = "object"; - } - else { - echo "<".$name.">"; - } - - if (is_array ($value)) { - //si es la ruta al fichero que contiene el xml - if(is_string($file_to_print)) { - $file = fopen($file_to_print, 'r'); - while (!feof($file)) { - $buffer = fgets($file); - echo "$buffer"; - } - $file_to_print = false; - } - xml_array ($value, $file_to_print); - } - else { - echo $value; - } - - echo ""; +function array2XML($data, $root = null, $xml = NULL) { + if ($xml == null) { + $xml = simplexml_load_string( + "\n<" . $root . " />"); } + + foreach($data as $key => $value) { + if (is_numeric($key)) { + $key = "item_" . $key; + } + + if (is_array($value)) { + $node = $xml->addChild($key); + array2XML($value, $root, $node); + } + else { + $value = htmlentities($value); + + if (!is_numeric($value) && !is_bool($value)) { + if (!empty($value)) { + $xml->addChild($key, $value); + } + } + else { + $xml->addChild($key, $value); + } + } + } + + return html_entity_decode($xml->asXML()); } + // Login check if (isset ($_GET["direct"])) { /* @@ -130,1365 +125,58 @@ check_login (); $id_report = (int) get_parameter ('id'); -if (!$id_report) { - db_pandora_audit("HACK Attempt", - "Trying to access graph viewer without valid ID"); - require ("general/noaccess.php"); - - exit; -} +$date_mode = get_parameter('date_mode', 'none'); -$report = db_get_row ('treport', 'id_report', $id_report); - -if (empty($report) || ! check_acl ($config['id_user'], $report['id_group'], "RR")) { - db_pandora_audit("ACL Violation","Trying to access graph reader"); - include ("general/noaccess.php"); - exit; -} - -$report["datetime"] = get_system_time(); - -header ('Content-type: application/xml; charset="utf-8"', true); - -echo ''; //' - this is to mislead highlighters giving crap about the PHP closing tag - -$date = (string) get_parameter ('date', date ('Y-m-j')); -$time = (string) get_parameter ('time', date ('h:iA')); - -$datetime = strtotime ($date.' '.$time); - -if ($datetime === false || $datetime == -1) { - //Not translatable because this is an error message and might have - //to be used on the other end - echo "Invalid date selected"; - exit; -} - -$group_name = groups_get_name ($report['id_group'], true); - -switch ($config["dbtype"]) { - case "mysql": - $contents = db_get_all_rows_field_filter ('treport_content', 'id_report', $id_report, '`order`'); +$period = null; +switch ($date_mode) { + case 'none': + case 'end_time': + // Get different date to search the report. + $date = (string) get_parameter ('date', date ('Y-m-j')); + $time = (string) get_parameter ('time', date ('h:iA')); break; - case "postgresql": - case "oracle": - $contents = db_get_all_rows_field_filter ('treport_content', 'id_report', $id_report, '"order"'); + case 'init_and_end_time': + // Get different date to search the report. + $date = (string) get_parameter ('date', date ('Y-m-j')); + $time = (string) get_parameter ('time', date ('h:iA')); + + // Calculations in order to modify init date of the report + $date_init_less = strtotime(date ('Y-m-j')) - SECONDS_1DAY; + + $date_init = get_parameter('date_init', date ('Y-m-j', $date_init_less)); + $time_init = get_parameter('time_init', date ('h:iA')); + $datetime_init = strtotime ($date_init.' '.$time_init); + + $period = strtotime ($date.' '.$time) - $datetime_init; break; } -$time = get_system_time (); -echo ''; -echo ''.$time.''; -echo ''.date ("r",$time).''; -$xml["id"] = $id_report; -$xml["name"] = io_safe_output_xml ($report['name']); -$xml["description"] = io_safe_output_xml($report['description']); -$xml["group"]["id"] = $report['id_group']; -$xml["group"]["name"] = io_safe_output_xml ($group_name); +$report = reporting_make_reporting_data($id_report, $date, $time, + $period, 'static'); -if ($contents === false) { - $contents = array (); -} +//~ html_debug_print($report); exit; -xml_array ($xml); +//------- Removed the unused fields ------------------------------------ +unset($report['header']); +unset($report['first_page']); +unset($report['footer']); +unset($report['custom_font']); +unset($report['id_template']); +unset($report['id_group_edit']); +unset($report['metaconsole']); +unset($report['private']); +unset($report['custom_logo']); +//---------------------------------------------------------------------- -echo ''; -$counter = 0; -foreach ($contents as $content) { +$xml = null; +$xml = array2XML($report, "report", $xml); +//~ $xml = preg_replace("/(<\/[^>]+>)/", "$1\n", $xml); +$xml = preg_replace("/(<[^>]+>)(<[^>]+>)(<[^>]+>)/", "$1\n$2\n$3", $xml); +$xml = preg_replace("/(<[^>]+>)(<[^>]+>)/", "$1\n$2", $xml); - echo ''; - $data = array (); +header("Content-Type: application/xml; charset=utf-8"); - $data["period"] = human_time_description_raw ($content['period']); - $data["uperiod"] = $content['period']; - $data["type"] = $content["type"]; - if (isset($content['name']) && !empty($content['name'])) { - $data["name"] = io_safe_output_xml($content["name"]); - } - - // Support for metaconsole - $server_name = $content ['server_name']; - - // Disable remote connections for netflow report items - if ($content['type'] != 'netflow_area' && - $content['type'] != 'netflow_pie' && - $content['type'] != 'netflow_data' && - $content['type'] != 'netflow_statistics' && - $content['type'] != 'netflow_summary') { - - $remote_connection = 1; - } - else { - $remote_connection = 0; - } - - if (($config ['metaconsole'] == 1) && ($server_name != '') && defined('METACONSOLE') && $remote_connection == 1) { - $connection = metaconsole_get_connection($server_name); - if (metaconsole_connect($connection) != NOERR){ - //ui_print_error_message ("Error connecting to ".$server_name); - } - } - - $session_id = session_id(); - - switch ($content["type"]) { - - case 1: - case 'simple_graph': - $data["module"] = io_safe_output_xml (db_get_value ('nombre', 'tagente_modulo', 'id_agente_modulo', $content['id_agent_module'])); - $data["agent"] = io_safe_output_xml (modules_get_agentmodule_agent_name ($content['id_agent_module'])); - - $data["title"] = __('Simple graph'); - $data["objdata"] = array(); - - $date_end = time(); - $date_init = $date_end - $content['period']; - /// - $temp_file = $config['attachment_store'] . '/simple_graph_' . $time.'_'.$content['id_rc'] . '.tmp'; - $file = fopen ($temp_file, 'a+'); - - $buffer_file["objdata"] = $config['attachment_store'] . '/simple_graph_' . $time.'_'.$content['id_rc'] . '.tmp'; - - $limit = 1000; - $offset = 0; - - $sql_count = "SELECT COUNT(id_agente_modulo) - FROM tagente_datos - WHERE id_agente_modulo=".$content['id_agent_module']." - AND (utimestamp>=$date_init AND utimestamp<=$date_end)"; - $data_count = db_get_value_sql($sql_count); - - if ($data_count == false) { - $content_report = " \n"; - $result = fwrite($file, $content_report); - fclose($file); - } - else if ($data_count <= $limit) { - $content_report = " \n"; - $result = fwrite($file, $content_report); - fclose($file); - - $sql = "SELECT * - FROM tagente_datos - WHERE id_agente_modulo=".$content['id_agent_module']." - AND (utimestamp>=$date_init AND utimestamp<=$date_end)"; - - $data_module = db_get_all_rows_sql($sql); - xml_file_graph ($data_module, $temp_file); - - $file = fopen ($temp_file, 'a+'); - $content_report = " \n"; - $result = fwrite($file, $content_report); - } - else { - $content_report = " \n"; - $result = fwrite($file, $content_report); - fclose($file); - - $position = 0; - while ($offset < $data_count) { - - $sql = "SELECT * - FROM tagente_datos - WHERE id_agente_modulo=".$content['id_agent_module']." - AND (utimestamp>=$date_init AND utimestamp<=$date_end) LIMIT $offset,$limit"; - $data_module = db_get_all_rows_sql($sql); - - $position = xml_file_graph ($data_module, $temp_file, $position); - $offset += $limit; - } - - $file = fopen ($temp_file, 'a+'); - $content_report = " \n"; - $result = fwrite($file, $content_report); - fclose($file); - } - break; - case 'simple_baseline_graph': - - $data["module"] = io_safe_output_xml (db_get_value ('nombre', 'tagente_modulo', 'id_agente_modulo', $content['id_agent_module'])); - $data["agent"] = io_safe_output_xml (modules_get_agentmodule_agent_name ($content['id_agent_module'])); - $data["title"] = __('Simple baseline graph'); - $data["objdata"] = array(); - - $date_end = time(); - $date_init = $date_end - $content['period']; - - $temp_file = $config['attachment_store'] . '/simple_baseline_graph_' . $time.'_'.$content['id_rc'] . '.tmp'; - - $file = fopen ($temp_file, 'a+'); - - $buffer_file["objdata"] = $config['attachment_store'] . '/simple_baseline_graph_' . $time.'_'.$content['id_rc'] . '.tmp'; - - $limit = 1000; - $offset = 0; - - $sql_count = "SELECT COUNT(id_agente_modulo) - FROM tagente_datos - WHERE id_agente_modulo=".$content['id_agent_module']." - AND (utimestamp>=$date_init AND utimestamp<=$date_end)"; - $data_count = db_get_value_sql($sql_count); - - if ($data_count == false) { - $content_report = " \n"; - $result = fwrite($file, $content_report); - } - else if ($data_count <= $limit) { - $content_report = " \n"; - $result = fwrite($file, $content_report); - fclose($file); - - $sql = "SELECT * - FROM tagente_datos - WHERE id_agente_modulo=".$content['id_agent_module']." - AND (utimestamp>=$date_init AND utimestamp<=$date_end)"; - - $data_module = db_get_all_rows_sql($sql); - xml_file_graph ($data_module, $temp_file); - - $file = fopen ($temp_file, 'a+'); - $content_report = " \n"; - $result = fwrite($file, $content_report); - fclose($file); - - } - else { - $content_report = " \n"; - $result = fwrite($file, $content_report); - fclose($file); - - $position = 0; - while ($offset < $data_count) { - - $sql = "SELECT * FROM tagente_datos WHERE id_agente_modulo=".$content['id_agent_module']." - AND (utimestamp>=$date_init AND utimestamp<=$date_end) LIMIT $offset,$limit"; - $data_module = db_get_all_rows_sql($sql); - - $position = xml_file_graph ($data_module, $temp_file, $position); - $offset += $limit; - } - - $file = fopen ($temp_file, 'a+'); - $content_report = " \n"; - $result = fwrite($file, $content_report); - fclose($file); - } - /// - break; - case 2: - case 'custom_graph': - case 'automatic_custom_graph': - - $data["module"] = io_safe_output_xml (db_get_value ('nombre', 'tagente_modulo', 'id_agente_modulo', $content['id_agent_module'])); - $data["agent"] = io_safe_output_xml (modules_get_agentmodule_agent_name ($content['id_agent_module'])); - - $graph = db_get_row ("tgraph", "id_graph", $content['id_gs']); - $data["title"] = __('Custom graph'); - $data["objdata"] = array(); - - $result = db_get_all_rows_field_filter ("tgraph_source","id_graph",$content['id_gs']); - $modules = array (); - $weights = array (); - - if ($result === false) { - $result = array(); - } - - foreach ($result as $content2) { - array_push ($modules, $content2['id_agent_module']); - array_push ($weights, $content2["weight"]); - } - - $date_end = time(); - $date_init = $date_end - $content['period']; - /// - $temp_file = $config['attachment_store'] . '/custom_graph_' . $time.'_'.$content['id_rc'] . '.tmp'; - - $file = fopen ($temp_file, 'a+'); - - $buffer_file["objdata"] = $config['attachment_store'] . '/custom_graph_' . $time.'_'.$content['id_rc'] . '.tmp'; - - $limit = 1000; - $offset = 0; - - $sql_count = "SELECT COUNT(id_agente_modulo) - FROM tagente_datos - WHERE id_agente_modulo=".$content['id_agent_module']." - AND (utimestamp>=$date_init AND utimestamp<=$date_end)"; - $data_count = db_get_value_sql($sql_count); - - if ($data_count == false) { - $content_report = " \n"; - $result = fwrite($file, $content_report); - fclose($file); - } - else if ($data_count <= $limit) { - $content_report = " \n"; - $result = fwrite($file, $content_report); - fclose($file); - - $sql = "SELECT * - FROM tagente_datos - WHERE id_agente_modulo=".$content['id_agent_module']." - AND (utimestamp>=$date_init AND utimestamp<=$date_end)"; - - $data_module = db_get_all_rows_sql($sql); - xml_file_graph ($data_module, $temp_file); - - $file = fopen ($temp_file, 'a+'); - $content_report = " \n"; - $result = fwrite($file, $content_report); - - } - else { - $content_report = " \n"; - $result = fwrite($file, $content_report); - fclose($file); - - $position = 0; - while ($offset < $data_count) { - - $sql = "SELECT * FROM tagente_datos WHERE id_agente_modulo=".$content['id_agent_module']." - AND (utimestamp>=$date_init AND utimestamp<=$date_end) LIMIT $offset,$limit"; - $data_module = db_get_all_rows_sql($sql); - - $position = xml_file_graph ($data_module, $temp_file, $position); - $offset += $limit; - } - - $file = fopen ($temp_file, 'a+'); - $content_report = " \n"; - $result = fwrite($file, $content_report); - fclose($file); - } - /// - break; - case 3: - case 'SLA': - $data["title"] = __('S.L.A.'); - - $slas = db_get_all_rows_field_filter ('treport_content_sla_combined','id_report_content', $content['id_rc']); - if ($slas === false) { - $data["objdata"]["error"] = __('There are no SLAs defined'); - $slas = array (); - } - - $data["objdata"]["sla"] = array (); - $sla_failed = false; - - foreach ($slas as $sla) { - - //Metaconsole connection - $server_name = $sla ['server_name']; - if (($config ['metaconsole'] == 1) && ($server_name != '') && defined('METACONSOLE')) { - $connection = metaconsole_get_connection($server_name); - if (metaconsole_connect($connection) != NOERR) { - //ui_print_error_message ("Error connecting to ".$server_name); - continue; - } - } - - $sla_data = array (); - $sla_data["agent"] = io_safe_output(modules_get_agentmodule_agent_name ($sla['id_agent_module'])); - $sla_data["module"] = modules_get_agentmodule_name ($sla['id_agent_module']); - $sla_data["max"] = $sla['sla_max']; - $sla_data["min"] = $sla['sla_min']; - $sla_value = reporting_get_agentmodule_sla ($sla['id_agent_module'], $content['period'], $sla['sla_min'], $sla['sla_max'], $datetime, $content, $content['time_from'], $content['time_to']); - if ($sla_value === false) { - $sla_data["error"] = __('Unknown'); - } - else { - if ($sla_value < $sla['sla_limit']) { - $sla_data["failed"] = true; - } - $sla_data["value"] = format_numeric ($sla_value); - } - array_push ($data["objdata"]["sla"], $sla_data); - - if (($config ['metaconsole'] == 1) && defined('METACONSOLE')) { - //Restore db connection - metaconsole_restore_db(); - } - - } - break; - case 6: - case 'monitor_report': - $data["title"] = __('Monitor report'); - $monitor_value = reporting_get_agentmodule_sla ($content['id_agent_module'], $content['period'], 1, false, $datetime); - if ($monitor_value === false) { - $monitor_value = __('Unknown'); - } - else { - $monitor_value = format_numeric ($monitor_value); - } - $data["objdata"]["good"] = $monitor_value; - if ($monitor_value !== __('Unknown')) { - $monitor_value = format_numeric (100 - $monitor_value); - } - $data["objdata"]["bad"] = $monitor_value; - break; - case 7: - case 'avg_value': - $data["module"] = io_safe_output_xml (db_get_value ('nombre', 'tagente_modulo', 'id_agente_modulo', $content['id_agent_module'])); - $data["agent"] = io_safe_output_xml (modules_get_agentmodule_agent_name ($content['id_agent_module'])); - $data["title"] = __('Avg. Value'); - $data["objdata"]["avg_value"] = reporting_get_agentmodule_data_average ($content['id_agent_module'], $content['period'], $datetime); - if ($data["objdata"]["avg_value"] === false) { - $data["objdata"]["avg_value"] = __('Unknown'); - } - else { - $data["objdata"]["avg_value"] = format_numeric ($data["objdata"]["avg_value"]); - } - break; - case 8: - case 'max_value': - $data["module"] = io_safe_output_xml (db_get_value ('nombre', 'tagente_modulo', 'id_agente_modulo', $content['id_agent_module'])); - $data["agent"] = io_safe_output_xml (modules_get_agentmodule_agent_name ($content['id_agent_module'])); - - $data["title"] = __('Max. Value'); - $data["objdata"]["max_value"] = reporting_get_agentmodule_data_max ($content['id_agent_module'], $content['period'], $datetime); - if ($data["objdata"]["max_value"] === false) { - $data["objdata"]["max_value"] = __('Unknown'); - } - else { - $data["objdata"]["max_value"] = format_numeric ($data["objdata"]["max_value"]); - } - break; - case 9: - case 'min_value': - $data["module"] = io_safe_output_xml (db_get_value ('nombre', 'tagente_modulo', 'id_agente_modulo', $content['id_agent_module'])); - $data["agent"] = io_safe_output_xml (modules_get_agentmodule_agent_name ($content['id_agent_module'])); - - $data["title"] = __('Min. Value'); - $data["objdata"]["min_value"] = reporting_get_agentmodule_data_min ($content['id_agent_module'], $content['period'], $datetime); - if ($data["objdata"]["min_value"] === false) { - $data["objdata"]["min_value"] = __('Unknown'); - } - else { - $data["objdata"]["min_value"] = format_numeric ($data["objdata"]["min_value"]); - } - break; - case 10: - case 'sumatory': - $data["module"] = io_safe_output_xml (db_get_value ('nombre', 'tagente_modulo', 'id_agente_modulo', $content['id_agent_module'])); - $data["agent"] = io_safe_output_xml (modules_get_agentmodule_agent_name ($content['id_agent_module'])); - - $data["title"] = __('Sumatory'); - $data["objdata"]["summatory_value"] = reporting_get_agentmodule_data_sum ($content['id_agent_module'], $content['period'], $datetime); - if ($data["objdata"]["summatory_value"] === false) { - $data["objdata"]["summatory_value"] = __('Unknown'); - } - else { - $data["objdata"]["summatory_value"] = format_numeric ($data["objdata"]["summatory_value"]); - } - break; - case 'agent_detailed_event': - case 'event_report_agent': - $data["title"] = __('Agent detailed event'); - $data["objdata"] = array (); - - $date = get_system_time (); - /// - $temp_file = $config['attachment_store'] . '/event_report_agent_' . $time.'_'.$content['id_rc'] . '.tmp'; - $file = fopen ($temp_file, 'a+'); - $buffer_file["objdata"] = $config['attachment_store'] . '/event_report_agent_' . $time.'_'.$content['id_rc'] . '.tmp'; - - $limit = 1000; - $offset = 0; - - $datelimit = $date - $content['period']; - - $sql_count = "SELECT count(*) FROM (SELECT count(*) - FROM tevento - WHERE id_agente =".$content['id_agent']." AND utimestamp > $datelimit AND utimestamp <= $date - GROUP BY id_agentmodule, evento) t1"; - $data_count = db_get_value_sql($sql_count); - - if ($data_count == false) { - $content_report = " \n"; - $result = fwrite($file, $content_report); - fclose($file); - } - else if ($data_count <= $limit) { - $content_report = " \n"; - $result = fwrite($file, $content_report); - fclose($file); - - $sql = sprintf (' - SELECT evento, event_type, criticity, - count(*) AS count_rep, max(timestamp) AS time2, - id_agentmodule, estado, user_comment, tags, - source, id_extra, owner_user - FROM tevento - WHERE id_agente = %d AND utimestamp > %d - AND utimestamp <= %d - GROUP BY id_agentmodule, evento - ORDER BY time2 DESC', $content['id_agent'], - $datelimit, $date); - - $events = db_get_all_rows_sql ($sql); - xml_file_event ($events, $temp_file,0, $content['id_agent']); - - $file = fopen ($temp_file, 'a+'); - $content_report = " \n"; - $result = fwrite($file, $content_report); - - - } - else { - $content_report = " \n"; - $result = fwrite($file, $content_report); - fclose($file); - - $position = 0; - while ($offset < $data_count) { - - $sql = sprintf ('SELECT evento, event_type, criticity, count(*) as count_rep, - max(timestamp) AS time2, id_agentmodule, estado, user_comment, tags, source, id_extra, owner_user - FROM tevento - WHERE id_agente = %d AND utimestamp > %d AND utimestamp <= %d - GROUP BY id_agentmodule, evento - ORDER BY time2 DESC LIMIT %d,%d', $content['id_agent'], $datelimit, $date, $offset,$limit); - - $events = db_get_all_rows_sql ($sql); - - $position = xml_file_event ($events, $temp_file, $position, $content['id_agent']); - $offset += $limit; - } - - $file = fopen ($temp_file, 'a+'); - $content_report = " \n"; - $result = fwrite($file, $content_report); - fclose($file); - } - /// - break; - case 'text': - $data["title"] = __('Text'); - $data["objdata"] = ""; - break; - case 'sql': - - $data["title"] = __('SQL'); - - //name tags of row - if ($content['header_definition'] != '') { - $tags = explode('|', $content['header_definition']); - } - - if ($content['treport_custom_sql_id'] != 0) { - switch ($config["dbtype"]) { - case "mysql": - $sql = db_get_value_filter('`sql`', 'treport_custom_sql', array('id' => $content['treport_custom_sql_id'])); - break; - case "postgresql": - $sql = db_get_value_filter('"sql"', 'treport_custom_sql', array('id' => $content['treport_custom_sql_id'])); - break; - case "oracle": - $sql = db_get_value_filter('sql', 'treport_custom_sql', array('id' => $content['treport_custom_sql_id'])); - break; - } - } - else { - $sql = $content['external_source']; - } - - $sql = safe_output ($sql); - $result = db_get_all_rows_sql($sql); - if ($result === false) { - $result = array(); - } - - if (isset($result[0])) { - for ($i = 0; $i < (count($result[0]) - count($tags)); $i) { - $tags[] = 'unname_' . $i; - } - } - - $data["objdata"]["data"] = array (); - - foreach ($result as $row) { - $objdata = array (); - $i = 0; - foreach ($row as $column) { - $objdata[$tags[$i]] = $column; - $i++; - } - array_push($data["objdata"]["data"], $objdata); - } - break; - case 'event_report_group': - $data["title"] = __('Group detailed event'); - $data['group'] = groups_get_name($content['id_group'], true); - $data["objdata"] = array(); - - $id_group = groups_safe_acl ($config["id_user"], $content['id_group'], "AR"); - /// - if (!empty ($id_group)) { - - //An empty array means the user doesn't have access - $datelimit = $report["datetime"] - $content['period']; - - $sql_count = sprintf ('SELECT count(*) FROM tevento - WHERE utimestamp > %d AND utimestamp <= %d - AND id_grupo IN (%s) - ORDER BY utimestamp ASC', - $datelimit, $report["datetime"], implode (",", $id_group)); - - $data_count = db_get_value_sql($sql_count); - - $temp_file = $config['attachment_store'] . '/event_report_group_' . $time.'_'.$content['id_rc'] . '.tmp'; - $file = fopen ($temp_file, 'a+'); - $buffer_file["objdata"] = $config['attachment_store'] . '/event_report_group_' . $time.'_'.$content['id_rc'] . '.tmp'; - - $limit = 1000; - $offset = 0; - - if ($data_count == false) { - $content_report = " \n"; - $result = fwrite($file, $content_report); - fclose($file); - } - else if ($data_count <= $limit) { - $content_report = " \n"; - $result = fwrite($file, $content_report); - fclose($file); - - $sql = sprintf ('SELECT * FROM tevento - WHERE utimestamp > %d AND utimestamp <= %d - AND id_grupo IN (%s) - ORDER BY utimestamp ASC', - $datelimit, $report["datetime"], implode (",", $id_group)); - $events = db_get_all_rows_sql($sql); - xml_file_event ($events, $temp_file, 0, $content['id_agent']); - - $file = fopen ($temp_file, 'a+'); - $content_report = " \n"; - $result = fwrite($file, $content_report); - - } - else { - $content_report = " \n"; - $result = fwrite($file, $content_report); - fclose($file); - - $position = 0; - while ($offset < $data_count) { - - $sql = sprintf ('SELECT * FROM tevento - WHERE utimestamp > %d AND utimestamp <= %d - AND id_grupo IN (%s) - ORDER BY utimestamp ASC LIMIT %d,%d', - $datelimit, $report["datetime"], implode (",", $id_group), $offset,$limit); - - $events = db_get_all_rows_sql($sql); - - $position = xml_file_event ($events, $temp_file, $position, $content['id_agent']); - $offset += $limit; - } - - $file = fopen ($temp_file, 'a+'); - $content_report = " \n"; - $result = fwrite($file, $content_report); - fclose($file); - } - } - break; - case 'event_report_module': - - $data["title"] = __('Agents detailed event'); - $data["objdata"] = array(); - - $date = get_system_time (); - $datelimit = $date - $content['period']; - - $sql_count = "SELECT count(*) FROM (SELECT count(*) - FROM tevento - WHERE id_agente =".$content['id_agent']." AND utimestamp > $datelimit AND utimestamp <=". $date. - " GROUP BY id_agentmodule, evento) t1"; - - $data_count = db_get_value_sql($sql_count); - - $temp_file = $config['attachment_store'] . '/event_report_module_' . $time.'_'.$content['id_rc'] . '.tmp'; - $file = fopen ($temp_file, 'a+'); - $buffer_file["objdata"] = $config['attachment_store'] . '/event_report_module_' . $time.'_'.$content['id_rc'] . '.tmp'; - - $limit = 1000; - $offset = 0; - - if ($data_count == false) { - $content_report = " \n"; - $result = fwrite($file, $content_report); - fclose($file); - } - else if ($data_count <= $limit) { - $content_report = " \n"; - $result = fwrite($file, $content_report); - fclose($file); - - $sql = "SELECT evento, event_type, criticity, count(*) as count_rep, max(timestamp) AS time2, id_agentmodule, estado, user_comment, tags, source, id_extra, owner_user - FROM tevento - WHERE id_agente =".$content['id_agent']." AND utimestamp > $datelimit AND utimestamp <=". $date. - " GROUP BY id_agentmodule, evento"; - - $events = db_get_all_rows_sql($sql); - - xml_file_event ($events, $temp_file, 0, $content['id_agent']); - - $file = fopen ($temp_file, 'a+'); - $content_report = " \n"; - $result = fwrite($file, $content_report); - - } - else { - $content_report = " \n"; - $result = fwrite($file, $content_report); - fclose($file); - - $position = 0; - while ($offset < $data_count) { - - $sql = sprintf ('SELECT evento, event_type, criticity, count(*) as count_rep, max(timestamp) AS time2, id_agentmodule, estado, user_comment, tags, source, id_extra, owner_user - FROM tevento - WHERE id_agentmodule = %d AND utimestamp > %d AND utimestamp <= %d - GROUP BY id_agentmodule, evento ORDER BY time2 DESC LIMIT %d,%d', $content['id_agent_module'], $datelimit, $date, $offset,$limit); - - $events = db_get_all_rows_sql($sql); - - $position = xml_file_event ($events, $temp_file, $position, $content['id_agent']); - $offset += $limit; - } - - $file = fopen ($temp_file, 'a+'); - $content_report = " \n"; - $result = fwrite($file, $content_report); - fclose($file); - } - break; - case 'alert_report_module': - $data["title"] = __('Alert report module'); - $data["objdata"]["alert_report_module"] = array(); - - $alerts = reporting_alert_reporting_module ($content['id_agent_module'], $content['period'], $report["datetime"], true, false); - - foreach ($alerts->data as $row) { - $objdata = array(); - - $actionsHtml = strip_tags($row[2], '
  • '); - $actions = explode('
  • ', $actionsHtml); - - $objdata['template'] = $row[1]; - - $objdata['action'] = array(); - foreach ($actions as $action) { - $actionText = strip_tags($action); - if ($actionText == '') { - continue; - } - $objdata['action'][] = $actionText; - } - - $firedHtml = strip_tags($row[3], '
  • '); - $fireds= explode('
  • ', $firedHtml); - - $objdata['fired'] = array(); - foreach ($fireds as $fired) { - $firedText = strip_tags($fired); - if ($firedText == '') { - continue; - } - $objdata['fired'][] = $firedText; - } - array_push($data["objdata"]["alert_report_module"], $objdata); - } - break; - case 'alert_report_agent': - $data["title"] = __('Alert report agent'); - - $alerts = reporting_alert_reporting_agent ($content['id_agent'], $content['period'], $report["datetime"], true, false); - $data["objdata"]["alert_report_agent"] = array(); - - foreach ($alerts->data as $row) { - $objdata = array(); - - $objdata['module'] = $row[0]; - $objdata['template'] = $row[1]; - - $actionsHtml = strip_tags($row[2], '
  • '); - $actions = explode('
  • ', $actionsHtml); - - $objdata['action'] = array(); - foreach ($actions as $action) { - $actionText = strip_tags($action); - if ($actionText == '') { - continue; - } - $objdata['action'][] = $actionText; - } - - $firedHtml = strip_tags($row[3], '
  • '); - $fireds= explode('
  • ', $firedHtml); - - $objdata['fired'] = array(); - foreach ($fireds as $fired) { - $firedText = strip_tags($fired); - if ($firedText == '') { - continue; - } - $objdata['fired'][] = $firedText; - } - - array_push($data["objdata"]["alert_report_agent"], $objdata); - } - break; - case 'url': - $data["title"] = __('Import text from URL'); - - $curlObj = curl_init(); - - curl_setopt($curlObj, CURLOPT_URL, $content['external_source']); - curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, 1); - $output = curl_exec($curlObj); - curl_close($curlObj); - - $data["objdata"] = $output; - break; - case 'database_serialized': - $data["title"] = __('Serialize data'); - - //Create the head - $tags = array(); - if ($content['header_definition'] != '') { - $tags = explode('|', $content['header_definition']); - } - else { - $tags[] = 'Data'; - } - array_unshift($tags, 'Date'); - - $datelimit = $report["datetime"] - $content['period']; - - $result = db_get_all_rows_sql('SELECT * - FROM tagente_datos - WHERE id_agente_modulo = ' . $content['id_agent_module'] . ' - AND utimestamp > ' . $datelimit . ' - AND utimestamp <= ' . $report["datetime"]); - - // Adds string data if there is no numeric data - if ((count($result) < 0) or (!$result)){ - $result = db_get_all_rows_sql('SELECT * - FROM tagente_datos_string - WHERE id_agente_modulo = ' . $content['id_agent_module'] . ' - AND utimestamp > ' . $datelimit . ' - AND utimestamp <= ' . $report["datetime"]); - } - if ($result === false) { - $result = array(); - } - - $data["objdata"]["data"] = array (); - foreach ($result as $row) { - $date = date ($config["date_format"], $row['utimestamp']); - $serialized = $row['datos']; - - $rowsUnserialize = (array)$serialized; - if (!empty($content['line_separator'])) { - $rowsUnserialize = explode($line_separator, - $serialized); - } - - foreach ($rowsUnserialize as $rowUnser) { - - $columnsUnserialize = (array)$rowUnser; - if (!empty($content['column_separator'])) { - $columnsUnserialize = explode($content['column_separator'], $rowUnser); - } - - array_unshift($columnsUnserialize, $date); - - $objdata = array (); - $i = 0; - foreach ($columnsUnserialize as $column) { - $objdata[$tags[$i]] = $column; - $i++; - } - array_push($data["objdata"]["data"], $objdata); - } - } - break; - case 'TTRT': - $ttr = reporting_get_agentmodule_ttr ($content['id_agent_module'], $content['period'], $report["datetime"]); - if ($ttr === false) { - $ttr = __('Unknown'); - } - else if ($ttr != 0) { - $ttr = human_time_description_raw ($ttr); - } - - $data["title"] = __('TTRT'); - $data["objdata"] = $ttr; - break; - case 'TTO': - $tto = reporting_get_agentmodule_tto ($content['id_agent_module'], $content['period'], $report["datetime"]); - if ($tto === false) { - $tto = __('Unknown'); - } - else if ($tto != 0) { - $tto = human_time_description_raw ($tto); - } - - $data["title"] = __('TTO'); - $data["objdata"] = $tto; - break; - case 'MTBF': - $mtbf = reporting_get_agentmodule_mtbf ($content['id_agent_module'], $content['period'], $report["datetime"]); - if ($mtbf === false) { - $mtbf = __('Unknown'); - } - else if ($mtbf != 0) { - $mtbf = human_time_description_raw ($mtbf); - } - - $data["title"] = __('MTBF'); - $data["objdata"] = $mtbf; - break; - case 'MTTR': - $mttr = reporting_get_agentmodule_mttr ($content['id_agent_module'], $content['period'], $report["datetime"]); - if ($mttr === false) { - $mttr = __('Unknown'); - } - else if ($mttr != 0) { - $mttr = human_time_description_raw ($mttr); - } - - $data["title"] = __('MTTR'); - $data["objdata"] = $mttr; - break; - case 'inventory': - $data["title"] = __('Inventory'); - $data["objdata"]["inventory"] = array(); - - $es = json_decode($content['external_source'], true); - - $id_agent = $es['id_agents']; - $module_name = $es['inventory_modules']; - $date = $es['date']; - - $data["objdata"]["inventory"] = inventory_get_data((array)$id_agent,(array)$module_name,$date,'',false, 'array'); - break; - case 'inventory_changes': - $data["title"] = __('Inventory changes'); - $data["objdata"]["inventory_changes"] = array(); - - $es = json_decode($content['external_source'], true); - - $id_agent = $es['id_agents']; - $module_name = $es['inventory_modules']; - - $data["objdata"]["inventory_changes"] = inventory_get_changes($id_agent, $module_name, $report["datetime"] - $content['period'], $report["datetime"], 'array'); - - break; - case 'agent_configuration': - - $agent_name = agents_get_name ($content['id_agent']); - - $sql = "SELECT * FROM tagente WHERE id_agente=".$content['id_agent']; - $agent_data = db_get_row_sql($sql); - - $data["title"] = __('Configuration report for agent ').$agent_name; - $data["agent"] = $agent_name; - $data["objdata"] = array(); - - ///// - $temp_file = $config['attachment_store'] . '/agent_configuration_' . $time.'_'.$content['id_rc'] . '.tmp'; - $file = fopen ($temp_file, 'a+'); - $buffer_file["objdata"] = $config['attachment_store'] . '/agent_configuration_' . $time.'_'.$content['id_rc'] . '.tmp'; - - $content_report = " \n"; - $result = fwrite($file, $content_report); - fclose($file); - - xml_file_agent_data($agent_data, $temp_file, $agent_name); - - $userGroups = users_get_groups($config['id_user'], 'AR', false); - if (empty($userGroups)) { - return array(); - } - $id_groups = array_keys($userGroups); - if (!empty($id_groups)) { - - $sql_count = "SELECT count(*) FROM (SELECT * - FROM tagente_modulo WHERE - ( - 1 = ( - SELECT is_admin - FROM tusuario - WHERE id_user = '".$config['id_user']."' - ) - OR tagente_modulo.id_agente IN ( - SELECT id_agente - FROM tagente - WHERE id_grupo IN (" . implode(',', $id_groups) . ") - ) - OR 0 IN ( - SELECT id_grupo - FROM tusuario_perfil - WHERE id_usuario ='".$config['id_user']."' - AND id_perfil IN ( - SELECT id_perfil - FROM tperfil WHERE agent_view = 1 - ) - ) - ) AND id_agente=".$content['id_agent']." AND delete_pending = 0 - ORDER BY nombre) t1"; - $data_count = db_get_value_sql($sql_count); - - $limit = 1000; - $offset = 0; - - if ($data_count == false) { - - $content_report = " \n"; - $content_report .= " \n"; - - $file = fopen ($temp_file, 'a+'); - $result = fwrite($file, $content_report); - fclose($file); - } else if ($data_count <= $limit) { - $content_report = " \n"; - - $file = fopen ($temp_file, 'a+'); - $result = fwrite($file, $content_report); - fclose($file); - - $sql = "SELECT * - FROM tagente_modulo WHERE - ( - 1 = ( - SELECT is_admin - FROM tusuario - WHERE id_user = '".$config['id_user']."' - ) - OR tagente_modulo.id_agente IN ( - SELECT id_agente - FROM tagente - WHERE id_grupo IN (" . implode(',', $id_groups) . ") - ) - OR 0 IN ( - SELECT id_grupo - FROM tusuario_perfil - WHERE id_usuario ='".$config['id_user']."' - AND id_perfil IN ( - SELECT id_perfil - FROM tperfil WHERE agent_view = 1 - ) - ) - ) AND id_agente=".$content['id_agent']." AND delete_pending = 0 - ORDER BY nombre"; - - $modules = db_get_all_rows_sql ($sql); - xml_file_agent_conf ($modules, $temp_file,0, $content['id_agent']); - - $file = fopen ($temp_file, 'a+'); - $content_report = " \n"; - $content_report .= " \n"; - $result = fwrite($file, $content_report); - - } - else { - $content_report = " \n"; - - $file = fopen ($temp_file, 'a+'); - $result = fwrite($file, $content_report); - fclose($file); - - $position = 0; - while ($offset < $data_count) { - - $sql = "SELECT * - FROM tagente_modulo WHERE - ( - 1 = ( - SELECT is_admin - FROM tusuario - WHERE id_user = '".$config['id_user']."' - ) - OR tagente_modulo.id_agente IN ( - SELECT id_agente - FROM tagente - WHERE id_grupo IN (" . implode(',', $id_groups) . ") - ) - OR 0 IN ( - SELECT id_grupo - FROM tusuario_perfil - WHERE id_usuario ='".$config['id_user']."' - AND id_perfil IN ( - SELECT id_perfil - FROM tperfil WHERE agent_view = 1 - ) - ) - ) AND id_agente=".$content['id_agent']." AND delete_pending = 0 - ORDER BY nombre - LIMIT $offset,$limit"; - - $modules = db_get_all_rows_sql ($sql); - - $position = xml_file_agent_conf ($modules, $temp_file, $position, $content['id_agent']); - $offset += $limit; - } - - $file = fopen ($temp_file, 'a+'); - $content_report = " \n"; - $content_report .= " \n"; - $result = fwrite($file, $content_report); - fclose($file); - } - - } - - break; - case 'group_configuration': - - $group_name = groups_get_name ($content['id_group'], true); - - $data["title"] = __('Configuration report for group ').$group_name; - $data["group"] = $group_name; - - /// - $data["objdata"] = array(); - $temp_file = $config['attachment_store'] . '/group_configuration_' . $time.'_'.$content['id_rc'] . '.tmp'; - $file = fopen ($temp_file, 'a+'); - $buffer_file["objdata"] = $config['attachment_store'] . '/group_configuration_' . $time.'_'.$content['id_rc'] . '.tmp'; - - $content_report = " \n"; - $content_report .= " ".$group_name."\n"; - $content_report .= " ".$content['id_group']."\n"; - $result = fwrite($file, $content_report); - fclose($file); - - $sql = "SELECT * FROM tagente WHERE id_grupo=".$content['id_group']; - $agents_list = db_get_all_rows_sql($sql); - if ($agents_list === false) - $agents_list = array(); - $i = 0; - foreach ($agents_list as $key=>$agent) { - $file = fopen ($temp_file, 'a+'); - $content_report = " \n"; - $content_report .= " \n"; - $result = fwrite($file, $content_report); - xml_file_agent_data($agent, $temp_file); - - $userGroups = users_get_groups($config['id_user'], 'AR', false); - if (empty($userGroups)) { - return array(); - } - $id_groups = array_keys($userGroups); - if (!empty($id_groups)) { - - $sql_count = "SELECT count(*) FROM (SELECT * - FROM tagente_modulo WHERE - ( - 1 = ( - SELECT is_admin - FROM tusuario - WHERE id_user = '".$config['id_user']."' - ) - OR tagente_modulo.id_agente IN ( - SELECT id_agente - FROM tagente - WHERE id_grupo IN (" . implode(',', $id_groups) . ") - ) - OR 0 IN ( - SELECT id_grupo - FROM tusuario_perfil - WHERE id_usuario ='".$config['id_user']."' - AND id_perfil IN ( - SELECT id_perfil - FROM tperfil WHERE agent_view = 1 - ) - ) - ) AND id_agente=".$agent['id_agente']." AND delete_pending = 0 - ORDER BY nombre) t1"; - - $data_count = db_get_value_sql($sql_count); - - $limit = 1000; - $offset = 0; - - if ($data_count == false) { - $content_report = " \n"; - $content_report .= " \n"; - - $file = fopen ($temp_file, 'a+'); - $result = fwrite($file, $content_report); - fclose($file); - - } else if ($data_count <= $limit) { - $content_report = " \n"; - - $file = fopen ($temp_file, 'a+'); - $result = fwrite($file, $content_report); - fclose($file); - - $sql = "SELECT * - FROM tagente_modulo WHERE - ( - 1 = ( - SELECT is_admin - FROM tusuario - WHERE id_user = '".$config['id_user']."' - ) - OR tagente_modulo.id_agente IN ( - SELECT id_agente - FROM tagente - WHERE id_grupo IN (" . implode(',', $id_groups) . ") - ) - OR 0 IN ( - SELECT id_grupo - FROM tusuario_perfil - WHERE id_usuario ='".$config['id_user']."' - AND id_perfil IN ( - SELECT id_perfil - FROM tperfil WHERE agent_view = 1 - ) - ) - ) AND id_agente=".$agent['id_agente']." AND delete_pending = 0 - ORDER BY nombre"; - - $modules = db_get_all_rows_sql ($sql); - xml_file_agent_conf ($modules, $temp_file, 0, $content['id_agent']); - - $file = fopen ($temp_file, 'a+'); - $content_report = " \n"; - $content_report .= " \n"; - $result = fwrite($file, $content_report); - - - } - else { - $content_report = " \n"; - - $file = fopen ($temp_file, 'a+'); - $result = fwrite($file, $content_report); - fclose($file); - - $position = 0; - while ($offset < $data_count) { - - $sql = "SELECT * - FROM tagente_modulo WHERE - ( - 1 = ( - SELECT is_admin - FROM tusuario - WHERE id_user = '".$config['id_user']."' - ) - OR tagente_modulo.id_agente IN ( - SELECT id_agente - FROM tagente - WHERE id_grupo IN (" . implode(',', $id_groups) . ") - ) - OR 0 IN ( - SELECT id_grupo - FROM tusuario_perfil - WHERE id_usuario ='".$config['id_user']."' - AND id_perfil IN ( - SELECT id_perfil - FROM tperfil WHERE agent_view = 1 - ) - ) - ) AND id_agente=".$agent['id_agente']." AND delete_pending = 0 - ORDER BY nombre - LIMIT $offset,$limit"; - - $modules = db_get_all_rows_sql ($sql); - - $position = xml_file_agent_conf ($modules, $temp_file, $position, $content['id_agent']); - $offset += $limit; - } - - $file = fopen ($temp_file, 'a+'); - $content_report = " \n"; - $content_report .= " \n"; - $result = fwrite($file, $content_report); - fclose($file); - } - - } - $i++; - - $file = fopen ($temp_file, 'a+'); - $content_report = " \n"; - $result = fwrite($file, $content_report); - fclose($file); - } - $file = fopen ($temp_file, 'a+'); - $content_report = " \n"; - $result = fwrite($file, $content_report); - fclose($file); - /// - - break; - case 'netflow_area': - case 'netflow_pie': - case 'netflow_data': - case 'netflow_statistics': - case 'netflow_summary': - // Read the report item - $report_id = $report['id_report']; - $content_id = $content['id_rc']; - $max_aggregates= $content['top_n_value']; - $type = $content['show_graph']; - $description = io_safe_output ($content['description']); - $resolution = $content['top_n']; - $type = $content['type']; - $period = $content['period']; - - // Calculate the start and end dates - $end_date = $report['datetime']; - $start_date = $end_date - $period; - - // Get item filters - $filter = db_get_row_sql("SELECT * - FROM tnetflow_filter - WHERE id_sg = '" . (int)$content['text'] . "'", false, true); - if ($description == '') { - $description = io_safe_output ($filter['id_name']); - } - - // Build a unique id for the cache - //$unique_id = $report_id . '_' . $content_id . '_' . ($end_date - $start_date); - - $table->colspan[0][0] = 4; - if ($filter['aggregate'] != 'none') { - $data["title"] = $description . ' (' . __($filter['aggregate']) . '/' . __($filter['output']) . ')'; - } - else { - $data["title"] = $description . ' (' . __($filter['output']) . ')'; - } - - //$data["objdata"]["netflow"] = netflow_draw_item ($start_date, $end_date, $resolution, $type, $filter, $max_aggregates, $unique_id, $server_name, 'XML'); - $data["objdata"]["netflow"] = netflow_draw_item ($start_date, $end_date, $resolution, $type, $filter, $max_aggregates, $server_name, 'XML'); - $buffer_file["objdata"] = $config['attachment_store'] . '/netflow_' . $time.'_'.$content['id_rc'] . '.tmp'; - $objdata_file = true; - break; - } - - xml_array ($data, $buffer_file); - echo '
    '; - $counter++; - - if (($config ['metaconsole'] == 1) && defined('METACONSOLE') && $remote_connection == 1) { - //Restore db connection - metaconsole_restore_db(); - } - -} - -echo '
    '; +echo $xml; ?>