Merge remote-tracking branch 'origin/develop' into ent-4623-Exportar-a-CSV-los-eventos-separador-erroneo
Conflicts: pandora_console/include/functions_ui.php
This commit is contained in:
commit
05e424a24e
|
@ -331,19 +331,19 @@ if ($config['menu_type'] == 'classic') {
|
|||
|
||||
// Support.
|
||||
if (defined('PANDORA_ENTERPRISE')) {
|
||||
$header_support_link = 'https://support.artica.es/';
|
||||
$header_support_link = $config['custom_support_url'];
|
||||
} else {
|
||||
$header_support_link = 'https://pandorafms.com/forums/';
|
||||
}
|
||||
|
||||
$header_support = '<div id="header_support">';
|
||||
$header_support .= '<a href="'.$header_support_link.'" target="_blank">';
|
||||
$header_support .= '<a href="'.ui_get_full_external_url($header_support_link).'" target="_blank">';
|
||||
$header_support .= html_print_image('/images/header_support.png', true, ['title' => __('Go to support'), 'class' => 'bot', 'alt' => 'user']);
|
||||
$header_support .= '</a></div>';
|
||||
|
||||
// Documentation.
|
||||
$header_docu = '<div id="header_docu">';
|
||||
$header_docu .= '<a href="https://wiki.pandorafms.com/index.php?title=Main_Page" target="_blank">';
|
||||
$header_docu .= '<a href="'.ui_get_full_external_url($config['custom_docs_url']).'" target="_blank">';
|
||||
$header_docu .= html_print_image('/images/header_docu.png', true, ['title' => __('Go to documentation'), 'class' => 'bot', 'alt' => 'user']);
|
||||
$header_docu .= '</a></div>';
|
||||
|
||||
|
|
|
@ -87,7 +87,7 @@ echo '<div id="login_help_dialog" title="'.__('Welcome to %s', get_product_name(
|
|||
echo '</td>';
|
||||
|
||||
echo '<td style="border:1px solid #FFF; text-align:center;">';
|
||||
echo '<a href="'.$config['custom_docs_url'].'" target="_blank" style="text-decoration:none;">'.html_print_image(
|
||||
echo '<a href="'.ui_get_full_external_url($config['custom_docs_url']).'" target="_blank" style="text-decoration:none;">'.html_print_image(
|
||||
'images/documentation.png',
|
||||
true,
|
||||
[
|
||||
|
@ -96,7 +96,7 @@ echo '<div id="login_help_dialog" title="'.__('Welcome to %s', get_product_name(
|
|||
]
|
||||
).'</a>';
|
||||
echo '<br style="margin-bottom: 40px;" />';
|
||||
echo '<a style="font-size: 9pt;" href="'.$config['custom_docs_url'].'" target="_blank">'.__('Documentation').'</span></a>';
|
||||
echo '<a style="font-size: 9pt;"href="'.ui_get_full_external_url($config['custom_docs_url']).'" target="_blank">'.__('Documentation').'</span></a>';
|
||||
echo '</td>';
|
||||
echo '</tr>';
|
||||
echo '</table>';
|
||||
|
|
|
@ -96,16 +96,16 @@ echo '<div id="header_login">';
|
|||
|
||||
echo '<div id="list_icon_docs_support"><ul>';
|
||||
if ($docs_logo !== false) {
|
||||
echo '<li><a href="'.$config['custom_docs_url'].'" target="_blank"><img src="'.$docs_logo.'" alt="docs"></a></li>';
|
||||
echo '<li><a href="'.ui_get_full_external_url($config['custom_docs_url']).'" target="_blank"><img src="'.$docs_logo.'" alt="docs"></a></li>';
|
||||
}
|
||||
|
||||
echo '<li><a href="'.$config['custom_docs_url'].'" target="_blank">'.__('Docs').'</li>';
|
||||
echo '<li><a href="'.ui_get_full_external_url($config['custom_docs_url']).'" target="_blank">'.__('Docs').'</li>';
|
||||
if (file_exists(ENTERPRISE_DIR.'/load_enterprise.php')) {
|
||||
if ($support_logo !== false) {
|
||||
echo '<li id="li_margin_left"><a href="'.$config['custom_support_url'].'" target="_blank"><img src="'.$support_logo.'" alt="support"></a></li>';
|
||||
echo '<li id="li_margin_left"><a href="'.ui_get_full_external_url($config['custom_docs_url']).'" target="_blank"><img src="'.$support_logo.'" alt="support"></a></li>';
|
||||
}
|
||||
|
||||
echo '<li><a href="'.$config['custom_support_url'].'" target="_blank">'.__('Support').'</li>';
|
||||
echo '<li><a href="'.ui_get_full_external_url($config['custom_support_url']).'" target="_blank">'.__('Support').'</li>';
|
||||
} else {
|
||||
echo '<li id="li_margin_left"><a href="https://pandorafms.com/monitoring-services/support/" target="_blank"><img src="'.$support_logo.'" alt="support"></a></li>';
|
||||
echo '<li>'.__('Support').'</li>';
|
||||
|
|
|
@ -3777,11 +3777,14 @@ $(document).ready (function () {
|
|||
});
|
||||
|
||||
$("#checkbox-checkbox_show_resume").change(function(){
|
||||
if($(this).is(":checked")){
|
||||
type = $("#type").val();
|
||||
if($(this).is(":checked") && type !== 'general'){
|
||||
$("#row_select_fields2").show();
|
||||
$("#row_select_fields3").show();
|
||||
}
|
||||
else{
|
||||
$("#row_select_fields2").hide();
|
||||
$("#row_select_fields3").hide();
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
@ -14226,6 +14226,46 @@ function api_get_agents_id_name_by_cluster_name($cluster_name, $trash1, $trash2,
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get agents alias, id and server id (if Metaconsole) given agent alias
|
||||
* matching part of it.
|
||||
*
|
||||
* @param string $alias
|
||||
* @param $trash1
|
||||
* @param $trash2
|
||||
* @param string $returnType
|
||||
* Example:
|
||||
* api.php?op=get&op2=agents_id_name_by_alias&return_type=json&apipass=1234&user=admin&pass=pandora&id=pandrora&id2=strict
|
||||
*/
|
||||
function api_get_agents_id_name_by_alias($alias, $strict, $trash2, $returnType)
|
||||
{
|
||||
global $config;
|
||||
|
||||
if ($strict == 'strict') {
|
||||
$where_clause = " alias = '$alias'";
|
||||
} else {
|
||||
$where_clause = " upper(alias) LIKE upper('%$alias%')";
|
||||
}
|
||||
|
||||
if (is_metaconsole()) {
|
||||
$all_agents = db_get_all_rows_sql("SELECT alias, id_agente, id_tagente,id_tmetaconsole_setup as 'id_server', server_name FROM tmetaconsole_agent WHERE $where_clause");
|
||||
} else {
|
||||
$all_agents = db_get_all_rows_sql("SELECT alias, id_agente from tagente WHERE $where_clause");
|
||||
}
|
||||
|
||||
if ($all_agents !== false) {
|
||||
$data = [
|
||||
'type' => 'json',
|
||||
'data' => $all_agents,
|
||||
];
|
||||
|
||||
returnData('json', $data, JSON_FORCE_OBJECT);
|
||||
} else {
|
||||
returnError('error_agents', 'Alias did not match any agent.');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function api_get_modules_id_name_by_cluster_id($cluster_id)
|
||||
{
|
||||
global $config;
|
||||
|
|
|
@ -179,6 +179,10 @@ function reporting_make_reporting_data(
|
|||
$report['group_name'] = groups_get_name($report['id_group']);
|
||||
$report['contents'] = [];
|
||||
|
||||
if (empty($report['period']) && $pdf === false) {
|
||||
$report['period'] = $period;
|
||||
}
|
||||
|
||||
if (empty($contents)) {
|
||||
return reporting_check_structure_report($report);
|
||||
}
|
||||
|
@ -224,7 +228,12 @@ function reporting_make_reporting_data(
|
|||
|
||||
// General reports with 0 period means last value
|
||||
// Avoid to overwrite it by template value.
|
||||
if (!empty($period) && ($content['type'] !== 'general' && $content['period'] != 0)) {
|
||||
$general_last_value = false;
|
||||
if ($content['type'] === 'general' && $content['period'] == 0) {
|
||||
$general_last_value = true;
|
||||
}
|
||||
|
||||
if (!empty($period) && $general_last_value === false) {
|
||||
$content['period'] = $period;
|
||||
}
|
||||
|
||||
|
|
|
@ -121,12 +121,9 @@ function html_do_report_info($report)
|
|||
</tr>
|
||||
<tr>
|
||||
<td><b>'.__('Report date').': </b></td>';
|
||||
if (isset($report['period'])) {
|
||||
if (is_numeric($report['datetime']) && is_numeric($report['period'])) {
|
||||
$html .= '<td>'.date($config['date_format'], ($report['datetime'] - $report['period'])).'</td>';
|
||||
}
|
||||
|
||||
$html .= '<td></td>';
|
||||
if (is_numeric($report['datetime']) && is_numeric($report['period']) && ($report['period'] != 0)) {
|
||||
$html .= '<td>'.__('From').' <b>'.date($config['date_format'], ($report['datetime'] - $report['period'])).'</b></td>';
|
||||
$html .= '<td>'.__('to').' <b>'.date($config['date_format'], $report['datetime']).'</b></td>';
|
||||
} else {
|
||||
$html .= '<td>'.__('Items period before').' <b>'.date($config['date_format'], $report['datetime']).'</b></td>';
|
||||
}
|
||||
|
@ -3583,10 +3580,10 @@ function reporting_html_general($table, $item, $pdf=0)
|
|||
}
|
||||
|
||||
$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';
|
||||
$table1->style[0] = 'text-align: center';
|
||||
$table1->style[1] = 'text-align: center';
|
||||
$table1->style[2] = 'text-align: center';
|
||||
$table1->style[3] = 'text-align: center';
|
||||
|
||||
// Begin - Order by agent.
|
||||
foreach ($item['data'] as $key => $row) {
|
||||
|
@ -3717,12 +3714,16 @@ function reporting_html_general($table, $item, $pdf=0)
|
|||
$table_summary->head = [];
|
||||
$table_summary->head_colspan = [];
|
||||
$table_summary->align = [];
|
||||
$table_summary->headstyle = [];
|
||||
$table_summary->headstyle[0] = 'text-align: center;';
|
||||
$table_summary->headstyle[1] = 'text-align: center;';
|
||||
$table_summary->headstyle[2] = 'text-align: center;';
|
||||
|
||||
$table_summary->align[0] = 'left';
|
||||
$table_summary->align[1] = 'right';
|
||||
$table_summary->align[2] = 'right';
|
||||
$table_summary->align[3] = 'left';
|
||||
$table_summary->align[4] = 'right';
|
||||
$table_summary->align[0] = 'center';
|
||||
$table_summary->align[1] = 'center';
|
||||
$table_summary->align[2] = 'center';
|
||||
$table_summary->align[3] = 'center';
|
||||
$table_summary->align[4] = 'center';
|
||||
|
||||
$table_summary->head_colspan[0] = 2;
|
||||
$table_summary->head[0] = __('Min Value');
|
||||
|
@ -3730,11 +3731,11 @@ function reporting_html_general($table, $item, $pdf=0)
|
|||
$table_summary->head_colspan[2] = 2;
|
||||
$table_summary->head[2] = __('Max Value');
|
||||
|
||||
$table_summary->data[0][0] = $item['min']['agent'].' - '.$item['min']['module'];
|
||||
$table_summary->data[0][1] = $item['min']['formated_value'];
|
||||
$table_summary->data[0][0] = $item['min']['agent'].' - '.$item['min']['module'].str_repeat(' ', 20).$item['min']['formated_value'];
|
||||
$table_summary->data[0][1] = '';
|
||||
$table_summary->data[0][2] = format_for_graph($item['avg_value'], 2);
|
||||
$table_summary->data[0][3] = $item['max']['agent'].' - '.$item['max']['module'];
|
||||
$table_summary->data[0][4] = $item['max']['formated_value'];
|
||||
$table_summary->data[0][3] = $item['max']['agent'].' - '.$item['max']['module'].str_repeat(' ', 20).$item['max']['formated_value'];
|
||||
$table_summary->data[0][4] = '';
|
||||
|
||||
if ($pdf !== 0) {
|
||||
$return_pdf .= html_print_table($table_summary, true);
|
||||
|
|
|
@ -3233,6 +3233,7 @@ function ui_print_datatable(array $parameters)
|
|||
{
|
||||
extend: "csv",
|
||||
text : "'.__('Export current page to CSV').'",
|
||||
title: "export_'.$parameters['id'].'_current_page_'.date('Y-m-d').'",
|
||||
fieldSeparator: "'.$config['csv_divider'].'",
|
||||
exportOptions : {
|
||||
modifier : {
|
||||
|
@ -5734,3 +5735,23 @@ function ui_print_comments($comments)
|
|||
return io_safe_output($comentario);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get complete external pandora url.
|
||||
*
|
||||
* @param string $url Url to be parsed.
|
||||
*
|
||||
* @return string Full url.
|
||||
*/
|
||||
function ui_get_full_external_url(string $url)
|
||||
{
|
||||
$url_parsed = parse_url($url);
|
||||
if ($url_parsed) {
|
||||
if (!isset($url_parsed['scheme'])) {
|
||||
$url = 'http://'.$url;
|
||||
}
|
||||
}
|
||||
|
||||
return $url;
|
||||
}
|
||||
|
|
|
@ -118,7 +118,7 @@ $now = date('Y-m-d');
|
|||
|
||||
// Download header.
|
||||
header('Content-type: text/txt');
|
||||
header('Content-Disposition: attachment; filename="pandora_export_event'.$now.'.csv"');
|
||||
header('Content-Disposition: attachment; filename="export_events_'.$now.'.csv"');
|
||||
|
||||
try {
|
||||
$fb64 = get_parameter('fb64', null);
|
||||
|
|
|
@ -91,10 +91,6 @@ check_login();
|
|||
$id_report = (int) get_parameter('id');
|
||||
$filename = (string) get_parameter('filename');
|
||||
|
||||
if (empty($filename)) {
|
||||
$filename = 'pandorafms_report_'.date('Y-m-d_His');
|
||||
}
|
||||
|
||||
$date_mode = get_parameter('date_mode', 'none');
|
||||
|
||||
$period = null;
|
||||
|
@ -132,6 +128,10 @@ $report = reporting_make_reporting_data(
|
|||
'static'
|
||||
);
|
||||
|
||||
if (empty($filename)) {
|
||||
$filename = $report['name'].'_report_'.date('Y-m-d_His');
|
||||
}
|
||||
|
||||
reporting_xml_get_report($report, $filename);
|
||||
|
||||
exit;
|
||||
|
|
|
@ -430,15 +430,38 @@ if ($date_to_trap != '') {
|
|||
}
|
||||
|
||||
if ($filter_severity != -1) {
|
||||
// Test if install the enterprise to search oid in text or oid field in ttrap.
|
||||
if ($config['enterprise_installed']) {
|
||||
$whereSubquery .= ' AND (
|
||||
(alerted = 0 AND severity = '.$filter_severity.') OR
|
||||
(alerted = 1 AND priority = '.$filter_severity.'))';
|
||||
} else {
|
||||
$whereSubquery .= ' AND (
|
||||
(alerted = 0 AND 1 = '.$filter_severity.') OR
|
||||
(alerted = 1 AND priority = '.$filter_severity.'))';
|
||||
// There are two special severity values aimed to match two different trap standard severities in database: warning/critical and critical/normal.
|
||||
if ($filter_severity != EVENT_CRIT_OR_NORMAL && $filter_severity != EVENT_CRIT_WARNING_OR_CRITICAL) {
|
||||
// Test if enterprise is installed to search oid in text or oid field in ttrap.
|
||||
if ($config['enterprise_installed']) {
|
||||
$whereSubquery .= ' AND (
|
||||
(alerted = 0 AND severity = '.$filter_severity.') OR
|
||||
(alerted = 1 AND priority = '.$filter_severity.'))';
|
||||
} else {
|
||||
$whereSubquery .= ' AND (
|
||||
(alerted = 0 AND 1 = '.$filter_severity.') OR
|
||||
(alerted = 1 AND priority = '.$filter_severity.'))';
|
||||
}
|
||||
} else if ($filter_severity === EVENT_CRIT_WARNING_OR_CRITICAL) {
|
||||
// Test if enterprise is installed to search oid in text or oid field in ttrap.
|
||||
if ($config['enterprise_installed']) {
|
||||
$whereSubquery .= ' AND (
|
||||
(alerted = 0 AND (severity = '.EVENT_CRIT_WARNING.' OR severity = '.EVENT_CRIT_CRITICAL.')) OR
|
||||
(alerted = 1 AND (priority = '.EVENT_CRIT_WARNING.' OR priority = '.EVENT_CRIT_CRITICAL.')))';
|
||||
} else {
|
||||
$whereSubquery .= ' AND (
|
||||
(alerted = 1 AND (priority = '.EVENT_CRIT_WARNING.' OR priority = '.EVENT_CRIT_CRITICAL.')))';
|
||||
}
|
||||
} else if ($filter_severity === EVENT_CRIT_OR_NORMAL) {
|
||||
// Test if enterprise is installed to search oid in text or oid field in ttrap.
|
||||
if ($config['enterprise_installed']) {
|
||||
$whereSubquery .= ' AND (
|
||||
(alerted = 0 AND (severity = '.EVENT_CRIT_NORMAL.' OR severity = '.EVENT_CRIT_CRITICAL.')) OR
|
||||
(alerted = 1 AND (priority = '.EVENT_CRIT_NORMAL.' OR priority = '.EVENT_CRIT_CRITICAL.')))';
|
||||
} else {
|
||||
$whereSubquery .= ' AND (
|
||||
(alerted = 1 AND (priority = '.EVENT_CRIT_NORMAL.' OR priority = '.EVENT_CRIT_CRITICAL.')))';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -118,12 +118,22 @@ sub help_screen{
|
|||
help_screen_line('--get_planned_downtimes_items', '<name> [<id_group> <type_downtime> <type_execution> <type_periodicity>]', 'Get all items of planned downtimes');
|
||||
help_screen_line('--set_planned_downtimes_deleted', '<name> ', 'Deleted a planned downtime');
|
||||
help_screen_line('--get_module_id', '<agent_id> <module_name>', 'Get the id of an module');
|
||||
<<<<<<< HEAD
|
||||
help_screen_line('--get_agent_group', '<agent_name>', 'Get the group name of an agent');
|
||||
help_screen_line('--get_agent_group_id', '<agent_name>', 'Get the group ID of an agent');
|
||||
help_screen_line('--get_agent_modules', '<agent_name>', 'Get the modules of an agent');
|
||||
help_screen_line('--get_agents_id_name_by_alias', '<agent_alias>', '[<strict>]', 'List id and alias of agents mathing given alias');
|
||||
help_screen_line('--get_agents', '[<group_name> <os_name> <status> <max_modules> <filter_substring> <policy_name>]', "Get \n\t list of agents with optative filter parameters");
|
||||
help_screen_line('--delete_conf_file', '<agent_name>', 'Delete a local conf of a given agent');
|
||||
help_screen_line('--clean_conf_file', '<agent_name>', "Clean a local conf of a given agent deleting all modules, \n\t policies, file collections and comments");
|
||||
=======
|
||||
help_screen_line('--get_agent_group', '<agent_name> [<use_alias>]', 'Get the group name of an agent');
|
||||
help_screen_line('--get_agent_group_id', '<agent_name> [<use_alias>]', 'Get the group ID of an agent');
|
||||
help_screen_line('--get_agent_modules', '<agent_name> [<use_alias>]', 'Get the modules of an agent');
|
||||
help_screen_line('--get_agents', '[<group_name> <os_name> <status> <max_modules> <filter_substring> <policy_name> <use_alias>]', "Get \n\t list of agents with optative filter parameters");
|
||||
help_screen_line('--delete_conf_file', '<agent_name> [<use_alias>]', 'Delete a local conf of a given agent');
|
||||
help_screen_line('--clean_conf_file', '<agent_name> [<use_alias>]', "Clean a local conf of a given agent deleting all modules, \n\t policies, file collections and comments");
|
||||
>>>>>>> origin/develop
|
||||
help_screen_line('--get_bad_conf_files', '', 'Get the files bad configured (without essential tokens)');
|
||||
help_screen_line('--locate_agent', '<agent_name> [<use_alias>]', 'Search a agent into of nodes of metaconsole. Only Enterprise.');
|
||||
help_screen_line('--migration_agent_queue', '<id_node> <source_node_name> <target_node_name> [<db_only>]', 'Migrate agent only metaconsole');
|
||||
|
@ -4849,6 +4859,49 @@ sub cli_get_agent_modules() {
|
|||
}
|
||||
}
|
||||
|
||||
##############################################################################
|
||||
# Show id, name and id_server of an agent given alias
|
||||
# Related option: --get_agents_id_name_by_alias
|
||||
##############################################################################
|
||||
|
||||
sub cli_get_agents_id_name_by_alias() {
|
||||
my $agent_alias = @ARGV[2];
|
||||
my $strict = @ARGV[3];
|
||||
my @agents;
|
||||
my $where_value;
|
||||
|
||||
if($strict eq 'strict') {
|
||||
$where_value = $agent_alias;
|
||||
} else {
|
||||
$where_value = "%".$agent_alias."%";
|
||||
}
|
||||
|
||||
if(is_metaconsole($conf) == 1) {
|
||||
@agents = get_db_rows($dbh,"SELECT alias, id_agente, id_tagente, id_tmetaconsole_setup as 'id_server', server_name FROM tmetaconsole_agent WHERE UPPER(alias) LIKE UPPER(?)", $where_value);
|
||||
} else {
|
||||
@agents = get_db_rows($dbh,"SELECT alias, id_agente FROM tagente WHERE UPPER(alias) LIKE UPPER(?)", $where_value);
|
||||
}
|
||||
if(scalar(@agents) == 0) {
|
||||
print "[ERROR] No agents retrieved.\n\n";
|
||||
} else {
|
||||
if(is_metaconsole($conf) == 1) {
|
||||
print "alias, id_agente, id_tagente, id_server, server_name\n";
|
||||
|
||||
foreach my $agent (@agents) {
|
||||
|
||||
print safe_output($agent->{'alias'}).", ".$agent->{'id_agente'}.", ".$agent->{'id_tagente'}.", ".$agent->{'id_server'}.", ".$agent->{'server_name'}."\n";
|
||||
}
|
||||
} else {
|
||||
print "alias, id_agente\n";
|
||||
|
||||
foreach my $agent (@agents) {
|
||||
print $agent->{'id_agente'}.",".safe_output($agent->{'alias'})."\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
sub cli_create_synthetic() {
|
||||
my $name_module = @ARGV[2];
|
||||
my $synthetic_type = @ARGV[3];
|
||||
|
@ -7426,6 +7479,10 @@ sub pandora_manage_main ($$$) {
|
|||
param_check($ltotal, 2, 1);
|
||||
cli_get_agent_modules();
|
||||
}
|
||||
elsif ($param eq '--get_agents_id_name_by_alias') {
|
||||
param_check($ltotal, 2,1);
|
||||
cli_get_agents_id_name_by_alias();
|
||||
}
|
||||
elsif ($param eq '--get_policy_modules') {
|
||||
param_check($ltotal, 1);
|
||||
cli_get_policy_modules();
|
||||
|
|
Loading…
Reference in New Issue