', $description);
echo $description;
return;
}
if ($get_response_params) {
$response_id = get_parameter ('response_id');
$params = db_get_value('params','tevent_response','id',$response_id);
if ($params === false) {
return;
}
echo json_encode(explode(',',$params));
return;
}
if ($get_response_target) {
$response_id = get_parameter ('response_id');
$event_id = get_parameter ('event_id');
$server_id = get_parameter ('server_id', 0);
$event_response = db_get_row('tevent_response','id',$response_id);
if (empty($event_response)) {
return;
}
echo events_get_response_target($event_id, $response_id, $server_id);
return;
}
if ($get_response) {
$response_id = get_parameter ('response_id');
$event_response = db_get_row('tevent_response','id',$response_id);
if (empty($event_response)) {
return;
}
echo json_encode($event_response);
return;
}
if ($perform_event_response) {
global $config;
$command = get_parameter('target','');
$response_id = get_parameter ('response_id');
$event_response = db_get_row('tevent_response','id',$response_id);
if (enterprise_installed()) {
if ($event_response['server_to_exec'] != 0 && $event_response['type'] == 'command') {
$commandExclusions = array ('vi', 'vim', 'nano');
$server_data = db_get_row('tserver','id_server', $event_response['server_to_exec']);
if (in_array(strtolower($command),$commandExclusions)) {
echo "Only stdin/stdout commands are supported";
}
else {
switch (PHP_OS) {
case "FreeBSD":
$timeout_bin = '/usr/local/bin/gtimeout';
break;
case "NetBSD":
$timeout_bin = '/usr/pkg/bin/gtimeout';
break;
default:
$timeout_bin = '/usr/bin/timeout';
break;
}
system("ssh pandora_exec_proxy@" . $server_data['ip_address'] . " \"" . $timeout_bin . " 90 " . io_safe_output($command) . " 2>&1\"", $ret_val);
}
}
else {
switch (PHP_OS) {
case "FreeBSD":
$timeout_bin = '/usr/local/bin/gtimeout';
break;
case "NetBSD":
$timeout_bin = '/usr/pkg/bin/gtimeout';
break;
default:
$timeout_bin = '/usr/bin/timeout';
break;
}
system($timeout_bin . ' 90 '.io_safe_output($command).' 2>&1');
}
}
else {
switch (PHP_OS) {
case "FreeBSD":
$timeout_bin = '/usr/local/bin/gtimeout';
break;
case "NetBSD":
$timeout_bin = '/usr/pkg/bin/gtimeout';
break;
default:
$timeout_bin = '/usr/bin/timeout';
break;
}
system($timeout_bin . ' 90 '.io_safe_output($command).' 2>&1');
}
return;
}
if ($dialogue_event_response) {
global $config;
$event_id = get_parameter ('event_id');
$response_id = get_parameter ('response_id');
$command = get_parameter ('target');
$event_response = db_get_row('tevent_response','id',$response_id);
$event = db_get_row('tevento','id_evento',$event_id);
$prompt = "
> ";
switch($event_response['type']) {
case 'command':
echo "
";
echo $prompt.sprintf(__('Executing command: %s',$command));
echo "
";
echo "".html_print_image('images/spinner.gif', true)."
";
echo "
";
echo "
";
html_print_button(__('Execute again'),'btn_str',false,'perform_response(\''.$command.'\', ' . $response_id . ');', "class='sub next'");
echo "
";
break;
case 'url':
$command = str_replace("localhost",$_SERVER['SERVER_NAME'],$command);
echo "";
break;
}
}
if ($add_comment) {
$comment = get_parameter ('comment');
$event_id = get_parameter ('event_id');
$return = events_comment ($event_id, $comment, 'Added comment', $meta, $history);
if ($return)
echo 'comment_ok';
else
echo 'comment_error';
return;
}
if ($change_status) {
$event_ids = get_parameter ('event_ids');
$new_status = get_parameter ('new_status');
$return = events_change_status (explode(',',$event_ids), $new_status, $meta, $history);
if ($return)
echo 'status_ok';
else
echo 'status_error';
return;
}
if ($change_owner) {
$new_owner = get_parameter ('new_owner');
$event_id = get_parameter ('event_id');
$similars = true;
if ($new_owner == -1) {
$new_owner = '';
}
$return = events_change_owner($event_id, $new_owner, true, $meta, $history);
if ($return)
echo 'owner_ok';
else
echo 'owner_error';
return;
}
if ($get_extended_event) {
global $config;
$event_id = get_parameter('event_id',false);
$childrens_ids = get_parameter('childrens_ids');
$childrens_ids = json_decode($childrens_ids);
if ($meta) {
$event = events_meta_get_event($event_id, false, $history, "ER");
}
else {
$event = events_get_event($event_id);
}
$readonly = false;
if (!$meta &&
isset($config['event_replication']) &&
$config['event_replication'] == 1 &&
$config['show_events_in_local'] == 1) {
$readonly = true;
}
// Clean url from events and store in array
$event['clean_tags'] = events_clean_tags($event['tags']);
// If the event is not found, we abort
if (empty($event)) {
ui_print_error_message('Event not found');
return false;
}
$dialog_page = get_parameter('dialog_page','general');
$similar_ids = get_parameter('similar_ids', $event_id);
$group_rep = get_parameter('group_rep',false);
$event_rep = get_parameter('event_rep',1);
$timestamp_first = get_parameter('timestamp_first', $event['utimestamp']);
$timestamp_last = get_parameter('timestamp_last', $event['utimestamp']);
$server_id = get_parameter('server_id', 0);
$event['similar_ids'] = $similar_ids;
$event['timestamp_first'] = $timestamp_first;
$event['timestamp_last'] = $timestamp_last;
$event['event_rep'] = $event_rep;
// Check ACLs
if (is_user_admin ($config["id_user"])) {
//Do nothing if you're admin, you get full access
}
else if ($config["id_user"] == $event['owner_user']) {
//Do nothing if you're the owner user, you get access
}
else if ($event['id_grupo'] == 0) {
//If the event has access to all groups, you get access
}
else {
// Get your groups
$groups = users_get_groups($config['id_user'], 'ER');
if (in_array ($event['id_grupo'], array_keys ($groups))) {
//If the event group is among the groups of the user, you get access
}
else {
// If all the access types fail, abort
echo 'Access denied';
return false;
}
}
// Print group_rep in a hidden field to recover it from javascript
html_print_input_hidden('group_rep',(int)$group_rep);
if ($event === false) {
return;
}
// Tabs
$tabs = "";
$tabs .= "- ".html_print_image('images/lightning_go.png',true)."".__('General')."
";
$tabs .= "- ".html_print_image('images/zoom.png',true)."".__('Details')."
";
$tabs .= "- ".html_print_image('images/custom_field_col.png',true)."".__('Agent fields')."
";
$tabs .= "";
if (!$readonly &&
((tags_checks_event_acl($config["id_user"], $event["id_grupo"], "EM", $event['clean_tags'], $childrens_ids)) || (tags_checks_event_acl($config["id_user"], $event["id_grupo"], "EW", $event['clean_tags'],$childrens_ids)))) {
$tabs .= "- ".html_print_image('images/event_responses_col.png',true)."".__('Responses')."
";
}
if ($event['custom_data'] != '') {
$tabs .= "- ".html_print_image('images/custom_field_col.png',true)."".__('Custom data')."
";
}
$tabs .= "
";
// Get criticity image
switch ($event["criticity"]) {
default:
case 0:
$img_sev = "images/status_sets/default/severity_maintenance.png";
break;
case 1:
$img_sev = "images/status_sets/default/severity_informational.png";
break;
case 2:
$img_sev = "images/status_sets/default/severity_normal.png";
break;
case 3:
$img_sev = "images/status_sets/default/severity_warning.png";
break;
case 4:
$img_sev = "images/status_sets/default/severity_critical.png";
break;
case 5:
$img_sev = "images/status_sets/default/severity_minor.png";
break;
case 6:
$img_sev = "images/status_sets/default/severity_major.png";
break;
}
if (!$readonly &&
((tags_checks_event_acl($config["id_user"], $event["id_grupo"], "EM", $event['clean_tags'], $childrens_ids)) || (tags_checks_event_acl($config["id_user"], $event["id_grupo"], "EW", $event['clean_tags'],$childrens_ids)))) {
$responses = events_page_responses($event, $childrens_ids);
}
else {
$responses = '';
}
$console_url = '';
// If metaconsole switch to node to get details and custom fields
if ($meta) {
$server = metaconsole_get_connection_by_id ($server_id);
metaconsole_connect($server);
}
else {
$server = "";
}
$details = events_page_details($event, $server);
// Juanma (09/05/2014) Fix: Needs to reconnect to node, in previous funct node connection was lost
if ($meta) {
$server = metaconsole_get_connection_by_id ($server_id);
metaconsole_connect($server);
}
$custom_fields = events_page_custom_fields($event);
$custom_data = events_page_custom_data($event);
if ($meta) {
metaconsole_restore_db_force();
}
$general = events_page_general($event);
$comments = events_page_comments($event, $childrens_ids);
$notifications = '';
$notifications .= '';
$notifications .= ''.ui_print_error_message(__('Error changing event status'),'',true).'
';
$notifications .= ''.ui_print_success_message(__('Event status changed successfully'),'',true).'
';
$notifications .= ''.ui_print_error_message(__('Error changing event owner'),'',true).'
';
$notifications .= ''.ui_print_success_message(__('Event owner changed successfully'),'',true).'
';
$loading = ''.html_print_image('images/spinner.gif',true).'
';
$out = ''.
$tabs.
$notifications.
$loading.
$general.
$details.
$custom_fields.
$comments.
$responses.
$custom_data.
html_print_input_hidden('id_event',$event['id_evento']).
'
';
$js = '';
echo $out.$js;
}
if ($get_events_details) {
$event_ids = explode(',',get_parameter ('event_ids'));
$events = db_get_all_rows_filter (
'tevento',
array ('id_evento' => $event_ids,'order' => 'utimestamp ASC'),
array ('evento', 'utimestamp', 'estado', 'criticity', 'id_usuario'),
'AND',
true
);
$out = '';
$out .= ' | |
';
foreach ($events as $event) {
switch ($event["estado"]) {
case 0:
$img = ui_get_full_url("images/star.png", false, false, false);
$title = __('New event');
break;
case 1:
$img = ui_get_full_url("images/tick.png", false, false, false);
$title = __('Event validated');
break;
case 2:
$img = ui_get_full_url("images/hourglass.png", false, false, false);
$title = __('Event in process');
break;
}
$out .= '';
$out .= '';
$out .= io_safe_output($event['evento']);
$out .= ' |
';
$out .= '';
$out .= '';
$out .= html_print_image(ui_get_full_url('images/clock.png', false, false, false), true, array('title' => __('Timestamp')), false, true);
$out .= ' | ';
$out .= '';
$out .= date($config['date_format'], $event['utimestamp']);
$out .= ' |
';
$out .= '';
$out .= '';
$out .= html_print_image($img, true, array('title' => $title), false, true);
$out .= ' | ';
$out .= '';
$out .= $title;
if ($event["estado"] == 1) {
if (empty($event['id_usuario'])) {
$ack_user = '' . __('Auto') . '';
}
else {
$ack_user = $event['id_usuario'];
}
$out .= ' (' . $ack_user . ')';
}
$out .= ' |
';
$out .= ' | ';
$out .= ' |
| ';
$out .= ' |
';
}
$out .= '
';
echo $out;
}
if ($table_events) {
require_once ("include/functions_events.php");
require_once ("include/functions_graph.php");
$id_agente = (int)get_parameter('id_agente', 0);
$all_events_24h = (int)get_parameter('all_events_24h', 0);
// Fix: for tag functionality groups have to be all user_groups (propagate ACL funct!)
$groups = users_get_groups($config["id_user"]);
$tags_condition = tags_get_acl_tags($config['id_user'],
array_keys($groups), 'ER', 'event_condition', 'AND');
echo '';
echo '';
echo html_print_checkbox('all_events_24h', $all_events_24h, $all_events_24h, true, false, '', true);
echo '
';
$date_subtract_day = time() - (24 * 60 * 60);
if($all_events_24h){
events_print_event_table ("utimestamp > $date_subtract_day", 200, '100%',
false, $id_agente,true);
}
else{
events_print_event_table ("estado <> 1 $tags_condition", 200, '100%',
false, $id_agente,true);
}
}
if ($get_list_events_agents) {
global $config;
$id_agent = get_parameter('id_agent');
$server_id = get_parameter('server_id');
$event_type = get_parameter("event_type");
$severity = get_parameter("severity");
$status = get_parameter("status");
$search = get_parameter("search");
$id_agent_module = get_parameter('id_agent_module');
$event_view_hr = get_parameter("event_view_hr");
$id_user_ack = get_parameter("id_user_ack");
$tag_with = get_parameter("tag_with");
$tag_without = get_parameter("tag_without");
$filter_only_alert = get_parameter("filter_only_alert");
$date_from = get_parameter("date_from");
$date_to = get_parameter("date_to");
$id_user = $config["id_user"];
$server_id = get_parameter("server_id");
$returned_sql = events_sql_events_grouped_agents($id_agent, $server_id,
$event_type,$severity, $status, $search,
$id_agent_module, $event_view_hr, $id_user_ack,
$tag_with, $tag_without, $filter_only_alert,
$date_from, $date_to, $id_user);
$returned_list = events_list_events_grouped_agents($returned_sql);
echo $returned_list;
return;
}
?>