diff --git a/pandora_console/ChangeLog b/pandora_console/ChangeLog index b45284e3ea..7aeda97989 100644 --- a/pandora_console/ChangeLog +++ b/pandora_console/ChangeLog @@ -1,3 +1,10 @@ +2010-10-18 Miguel de Dios + + * extensions/insert_data.php: added first version of extension to added + data in any module in any agent, by form or csv. + + Pending tasks: #3063417 + 2010-10-18 Ramon Novoa * extras/pandoradb_migrate_v3.1_to_v3.2.sql: Added support for recon scripts. diff --git a/pandora_console/extensions/insert_data.php b/pandora_console/extensions/insert_data.php new file mode 100644 index 0000000000..74b28a467e --- /dev/null +++ b/pandora_console/extensions/insert_data.php @@ -0,0 +1,230 @@ + + + + + + + + + "; + + $xml = sprintf($xmlTemplate, safe_output(get_os_name($agent['id_os'])), + safe_output($agent['os_version']), $agent['intervalo'], + safe_output($agent['agent_version']), $time, + safe_output($agent['nombre']), $agent['timezone_offset'], + safe_output($agentModule['nombre']), safe_output($agentModule['descripcion']), get_module_type_name($agentModule['id_tipo_modulo']), $data); + + if (false === @file_put_contents($config['remote_config'] . '/' . safe_output($agent['nombre']) . '.' . strtotime($time) . '.data', $xml)) { + print_error_message(sprintf(__('Can\'t save agent (%s), module (%s) data xml.'), $agent['nombre'], $agentModule['nombre'])); + } + else { + print_success_message(sprintf(__('Save agent (%s), module (%s) data xml.'), $agent['nombre'], $agentModule['nombre'])); + } +} + +function mainInsertData() { + global $config; + + + print_page_header (__("Insert data"), "images/extensions.png", false, "", true, ""); + + + + if (! give_acl ($config['id_user'], 0, "AW") && ! is_user_admin ($config['id_user'])) { + audit_db ($config['id_user'], $_SERVER['REMOTE_ADDR'], "ACL Violation", "Trying to access Setup Management"); + require ("general/noaccess.php"); + return; + } + + $save = (bool)get_parameter('save', false); + $id_agent = (string)get_parameter('id_agent', ''); + $id_agent_module = (int)get_parameter('id_agent_module', ''); + $data = (string)get_parameter('data'); + $date = (string) get_parameter ('date', date ('Y-m-d')); + $time = (string) get_parameter ('time', date ('h:00A')); + if (isset($_FILES['csv'])) { + if ($_FILES['csv']['error'] != 4) { + $csv = $_FILES['csv']; + } + else { + $csv = false; + } + } + else { + $csv = false; + } + + + if ($save) { + if (!check_acl($config['id_user'], get_agent_group(get_agent_id($id_agent)), "AW")) { + print_error_message(__('You haven\'t privileges for insert data in the agent.')); + } + else { + $agent = get_db_row_filter('tagente', array('nombre' => $id_agent)); + $agentModule = get_db_row_filter('tagente_modulo', array('id_agente_modulo' => $id_agent_module)); + + $date2 = str_replace('-', '/', $date); + $time2 = DATE("H:i", strtotime($time)); + + $date_xml = $date2 . ' ' . $time2 . ':00'; + + + + if ($csv !== false) { + $file = file($csv['tmp_name']); + foreach ($file as $line) { + $tokens = explode(';', $line); + + createXMLData($agent, $agentModule, trim($tokens[0]), trim($tokens[1])); + } + } + else { + createXMLData($agent, $agentModule, $date_xml, $data); + } + } + } + + + + echo '
'; + echo __("Please check that the directory \"/var/spool/pandora/data_in\" is writeable by the apache user.

The CSV file format is date;value<newline>date;value<newline>... The date in CSV is in format Y/m/d H:i:s."); + echo '
'; + + $table = null; + $table->width = '80%'; + $table->style = array(); + $table->style[0] = 'font-weight: bolder;'; + + $table->data = array(); + $table->data[0][0] = __('Agent'); + $table->data[0][1] = print_input_text_extended ('id_agent', $id_agent, 'text_id_agent', '', 30, 100, false, '', + array('style' => 'background: url(images/lightning.png) no-repeat right;'), true) + . ' ' . __("Type at least two characters to search") . ''; + $table->data[1][0] = __('Module'); + $modules = array (); + if ($id_agent) + $modules = get_agent_modules ($id_agent, false, array("delete_pending" => 0)); + $table->data[1][1] = print_select ($modules, 'id_agent_module', $id_agent_module, true, + __('Select'), 0, true, false, true, '', ($id_agent === '')); + $table->data[2][0] = __('Data'); + $table->data[2][1] = print_input_text('data', $data, __('Data'), 40, 60, true); + $table->data[3][0] = __('Date'); + $table->data[3][1] = print_input_text ('date', $date, '', 11, 11, true).' '; + $table->data[3][1] .= print_input_text ('time', $time, '', 7, 7, true); + $table->data[4][0] = __('CSV'); + $table->data[4][1] = print_input_file('csv', true); + + echo "
"; + + print_table($table); + + echo "
"; + print_input_hidden('save', 1); + print_submit_button(__('Save'), 'submit', ($id_agent === ''), 'class="sub next"'); + echo "
"; + + echo "
"; + + require_css_file ('datepicker'); + require_jquery_file ('ui.core'); + require_jquery_file ('ui.datepicker'); + require_jquery_file ('timeentry'); + ?> + + \ No newline at end of file