mirror of
https://port.numenaute.org/aleajactaest/khanat-opennel-code.git
synced 2024-12-30 12:50:53 +00:00
355 lines
13 KiB
PHP
355 lines
13 KiB
PHP
|
<?php
|
||
|
|
||
|
require_once('common.php');
|
||
|
require_once('functions_tool_main.php');
|
||
|
require_once('functions_tool_log_analyser.php');
|
||
|
|
||
|
if (!tool_admin_applications_check('tool_las')) nt_common_redirect('index.php');
|
||
|
|
||
|
nt_common_add_debug('-- Starting on \'tool_log_analyser.php\'');
|
||
|
|
||
|
$tpl->assign('tool_title', "Log Analyser");
|
||
|
|
||
|
$view_domain_id = nt_auth_get_session_var('view_domain_id');
|
||
|
$view_shard_id = nt_auth_get_session_var('view_shard_id');
|
||
|
|
||
|
if (!$view_domain_id)
|
||
|
{
|
||
|
$view_domain_id = $nel_user['group_default_domain_id'];
|
||
|
$view_shard_id = $nel_user['group_default_shard_id'];
|
||
|
nt_auth_set_session_var('view_domain_id', $view_domain_id);
|
||
|
nt_auth_set_session_var('view_shard_id', $view_shard_id);
|
||
|
}
|
||
|
|
||
|
if (isset($NELTOOL['GET_VARS']['domain']))
|
||
|
{
|
||
|
if ($view_domain_id != $NELTOOL['GET_VARS']['domain'])
|
||
|
{
|
||
|
$view_domain_id = $NELTOOL['GET_VARS']['domain'];
|
||
|
nt_auth_set_session_var('view_domain_id', $view_domain_id);
|
||
|
|
||
|
$view_shard_id = null;
|
||
|
nt_auth_unset_session_var('view_shard_id');
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (isset($NELTOOL['GET_VARS']['shard']))
|
||
|
{
|
||
|
$view_shard_id = $NELTOOL['GET_VARS']['shard'];
|
||
|
nt_auth_set_session_var('view_shard_id', $view_shard_id);
|
||
|
}
|
||
|
|
||
|
$tpl->assign('tool_domain_list', $nel_user['access']['domains']);
|
||
|
$tpl->assign('tool_domain_selected', $view_domain_id);
|
||
|
|
||
|
$tpl->assign('tool_shard_list', $nel_user['access']['shards']);
|
||
|
$tpl->assign('tool_shard_selected', $view_shard_id);
|
||
|
|
||
|
$tool_shard_filters = tool_main_get_shard_ids($view_shard_id);
|
||
|
$tpl->assign('tool_shard_filters', $tool_shard_filters);
|
||
|
|
||
|
//$nel_tool_notes_meta = "<script type=\"text/javascript\" src=\"overlib/overlib_mini.js\" ></script>\n";
|
||
|
//$nel_tool_notes_meta .= "<script type=\"text/javascript\" src=\"overlib/overlib_anchor_mini.js\" ></script>\n";
|
||
|
//$nel_tool_notes_meta .= "<script type=\"text/javascript\" src=\"overlib/overlib_draggable_mini.js\" ></script>\n";
|
||
|
//$tpl->assign('nel_tool_notes_meta', $nel_tool_notes_meta);
|
||
|
|
||
|
$template_file = 'tool_log_analyser.tpl';
|
||
|
|
||
|
if ($view_domain_id)
|
||
|
{
|
||
|
$tool_as_error = null;
|
||
|
|
||
|
$AS_Name = tool_main_get_domain_name($view_domain_id);
|
||
|
$AS_Host = tool_main_get_domain_host($view_domain_id);
|
||
|
$AS_Port = tool_main_get_domain_port($view_domain_id);
|
||
|
$AS_ShardName = tool_main_get_shard_name($view_shard_id);
|
||
|
|
||
|
$tpl->assign('tool_page_title', 'Log Analyser - '. $AS_Name . ($AS_ShardName != '' ? ' / '. $AS_ShardName : ''));
|
||
|
|
||
|
$tool_as_error = null;
|
||
|
|
||
|
$AS_LAS_AdminPath = tool_main_get_domain_data($view_domain_id, 'domain_las_admin_path');
|
||
|
$AS_LAS_LocalPath = tool_main_get_domain_data($view_domain_id, 'domain_las_local_path');
|
||
|
$tool_las_file_list = tool_las_get_file_list($AS_LAS_AdminPath);
|
||
|
|
||
|
if (isset($NELTOOL['GET_VARS']['fileview']))
|
||
|
{
|
||
|
// FILE VIEWER
|
||
|
|
||
|
$template_file = 'tool_log_analyser_file_view.tpl';
|
||
|
$view_file_name = base64_decode($NELTOOL['GET_VARS']['fileview']);
|
||
|
$tpl->assign('tool_file_list', $tool_las_file_list);
|
||
|
|
||
|
$view_file_data = tool_las_check_for_file($tool_las_file_list, $view_file_name);
|
||
|
|
||
|
if (isset($NELTOOL['GET_VARS']['downloadraw']))
|
||
|
{
|
||
|
if ($fp = fopen($view_file_data['path'] . $view_file_data['name'], 'r'))
|
||
|
{
|
||
|
header("Content-type: text/plain");
|
||
|
header("Content-Disposition: attachment; filename=las_raw_". $view_file_data['name']);
|
||
|
header("Pragma: no-cache");
|
||
|
header("Expires: 0");
|
||
|
fpassthru($fp);
|
||
|
fclose($fp);
|
||
|
exit();
|
||
|
}
|
||
|
}
|
||
|
elseif (isset($NELTOOL['GET_VARS']['downloadparsed']))
|
||
|
{
|
||
|
$char_eid_data = tool_las_parse_file($view_file_data['path'] . $view_file_data['name']);
|
||
|
|
||
|
// NOTE: 'ring_live' needs to be replace with the ringdb field from the domain table
|
||
|
$db_char_data = tool_las_get_character_names('ring_live', $char_eid_data);
|
||
|
|
||
|
if (sizeof($db_char_data))
|
||
|
{
|
||
|
$search_eid_ary = array();
|
||
|
$search_char_ary = array();
|
||
|
|
||
|
reset($char_eid_data);
|
||
|
foreach($char_eid_data as $char_id => $char_eid)
|
||
|
{
|
||
|
if (isset($db_char_data[$char_id]))
|
||
|
{
|
||
|
$search_eid_ary[] = $char_eid;
|
||
|
$search_char_ary[] = $db_char_data[$char_id];
|
||
|
}
|
||
|
}
|
||
|
|
||
|
tool_las_fpassthru_replace($view_file_data['path'],$view_file_data['name'], $search_eid_ary, $search_char_ary);
|
||
|
exit();
|
||
|
}
|
||
|
}
|
||
|
//elseif (isset($NELTOOL['GET_VARS']['delete']))
|
||
|
//{
|
||
|
// nt_common_add_debug('unlinking file : '. $view_file_data['path'] . $view_file_data['name']);
|
||
|
// @unlink($view_file_data['path'] . $view_file_data['name']);
|
||
|
// nt_common_redirect('tool_log_analyser.php');
|
||
|
// exit();
|
||
|
//}
|
||
|
elseif (is_array($view_file_data))
|
||
|
{
|
||
|
$tpl->assign('tool_view_file_data', $view_file_data);
|
||
|
|
||
|
$file_line_start = 0;
|
||
|
if (isset($NELTOOL['GET_VARS']['viewstart']))
|
||
|
{
|
||
|
$file_line_start = $NELTOOL['GET_VARS']['viewstart'];
|
||
|
}
|
||
|
|
||
|
$file_line_read_max = 200;
|
||
|
|
||
|
$view_file_output_data = tool_las_read_file($view_file_data['path'] . $view_file_data['name'], $file_line_read_max, $file_line_start, $file_line_start_previous, $file_line_start_next);
|
||
|
$tpl->assign('tool_file_output', $view_file_output_data);
|
||
|
|
||
|
$tpl->assign('tool_view_line_start_previous', $file_line_start_previous);
|
||
|
$tpl->assign('tool_view_line_start_next', $file_line_start_next);
|
||
|
|
||
|
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
$tpl->assign('tool_file_error', 'File not found !');
|
||
|
}
|
||
|
}
|
||
|
elseif (($AS_LAS_AdminPath != '') && ($AS_LAS_LocalPath != ''))
|
||
|
{
|
||
|
// REGULAR SERVICE VIEW WITH COMMANDS
|
||
|
|
||
|
$tpl->assign('tool_file_list', $tool_las_file_list);
|
||
|
|
||
|
if (substr($AS_LAS_AdminPath,-1) != '/') $AS_LAS_AdminPath .= '/';
|
||
|
if (substr($AS_LAS_LocalPath,-1) != '/') $AS_LAS_LocalPath .= '/';
|
||
|
|
||
|
if ($AS_Host && $AS_Port)
|
||
|
{
|
||
|
$adminService = new MyAdminService;
|
||
|
if (@$adminService->connect($AS_Host, $AS_Port, $res) === false)
|
||
|
{
|
||
|
nt_common_add_debug($res);
|
||
|
$tpl->assign('tool_domain_error', $res );
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
if (isset($NELTOOL['POST_VARS']['services_las']))
|
||
|
{
|
||
|
$tool_services_las = $NELTOOL['POST_VARS']['services_las'];
|
||
|
$tpl->assign('tool_post_data', base64_encode(serialize($NELTOOL['POST_VARS'])));
|
||
|
|
||
|
$service_search_database = $NELTOOL['POST_VARS']['service_search_database'];
|
||
|
$service_search_file_name = $NELTOOL['POST_VARS']['service_search_file_name'];
|
||
|
$service_search_start_date = $NELTOOL['POST_VARS']['service_search_start_date'];
|
||
|
$service_search_end_date = $NELTOOL['POST_VARS']['service_search_end_date'];
|
||
|
|
||
|
$tpl->assign('tool_form_service_search_database', $service_search_database);
|
||
|
$tpl->assign('tool_form_service_search_file_name', $service_search_file_name);
|
||
|
$tpl->assign('tool_form_service_search_start_date', $service_search_start_date);
|
||
|
$tpl->assign('tool_form_service_search_end_date', $service_search_end_date);
|
||
|
|
||
|
$file_name_error_msg = null;
|
||
|
$start_date_error_msg = null;
|
||
|
|
||
|
switch ($tool_services_las)
|
||
|
{
|
||
|
case 'search eids':
|
||
|
|
||
|
if ($service_search_file_name == '') $file_name_error_msg = "Need to specify a filename !";
|
||
|
if ($service_search_start_date == '') $start_date_error_msg = "Need to specify a start date !";
|
||
|
|
||
|
$tpl->assign('tool_file_name_error_msg', $file_name_error_msg);
|
||
|
$tpl->assign('tool_start_date_error_msg', $start_date_error_msg);
|
||
|
|
||
|
if (isset($NELTOOL['POST_VARS']['service_eids']) && !$file_name_error_msg && !$start_date_error_msg)
|
||
|
{
|
||
|
$service_eids = trim(stripslashes($NELTOOL['POST_VARS']['service_eids']));
|
||
|
$tpl->assign('tool_form_service_eids', $service_eids);
|
||
|
|
||
|
$service_eids_ary = tool_las_parse_eids_to_array($service_eids);
|
||
|
nt_common_add_debug($service_eids_ary);
|
||
|
|
||
|
if (sizeof($service_eids_ary) > 0)
|
||
|
{
|
||
|
$service_command = 'executeToFile '. $AS_LAS_LocalPath . $service_search_file_name ;
|
||
|
|
||
|
if (sizeof($service_eids_ary) == 1) $service_command .= ' searchEId ';
|
||
|
else $service_command .= ' searchEIds ';
|
||
|
|
||
|
$service_command .= $service_search_database .' ';
|
||
|
$service_command .= implode(' ', $service_eids_ary) .' ';
|
||
|
|
||
|
if (sizeof($service_eids_ary) > 1) $service_command .= '- ';
|
||
|
$service_command .= $service_search_start_date;
|
||
|
|
||
|
if ($service_search_end_date != '') $service_command .= ' '. $service_search_end_date;
|
||
|
|
||
|
nt_common_add_debug($service_command);
|
||
|
|
||
|
$service_list = tool_main_get_checked_services();
|
||
|
if (sizeof($service_list))
|
||
|
{
|
||
|
nt_log("Domain '$AS_Name' : '$service_command' on ". implode(', ',array_values($service_list)));
|
||
|
nt_common_add_debug(array_combine($service_list, $service_list));
|
||
|
$tpl->assign('tool_service_select_list', array_combine($service_list, $service_list));
|
||
|
$tpl->assign('tool_execute_result', '');
|
||
|
reset($service_list);
|
||
|
foreach($service_list as $service)
|
||
|
{
|
||
|
nt_common_add_debug("about to run command '$service_command' on '$service' ...");
|
||
|
$adminService->serviceCmd($service, $service_command);
|
||
|
if (!$adminService->waitCallback())
|
||
|
{
|
||
|
nt_common_add_debug('Error while waiting for callback on service \''. $service .'\' for command : '. $service_command);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
break;
|
||
|
|
||
|
case 'search text':
|
||
|
|
||
|
if ($service_search_file_name == '') $file_name_error_msg = "Need to specify a filename !";
|
||
|
if ($service_search_start_date == '') $start_date_error_msg = "Need to specify a start date !";
|
||
|
|
||
|
$tpl->assign('tool_file_name_error_msg', $file_name_error_msg);
|
||
|
$tpl->assign('tool_start_date_error_msg', $start_date_error_msg);
|
||
|
|
||
|
if (isset($NELTOOL['POST_VARS']['service_text']) && !$file_name_error_msg && !$start_date_error_msg)
|
||
|
{
|
||
|
$service_text = trim(stripslashes(html_entity_decode($NELTOOL['POST_VARS']['service_text'], ENT_QUOTES)));
|
||
|
$tpl->assign('tool_form_service_text', htmlentities($service_text,ENT_QUOTES));
|
||
|
|
||
|
if ($service_text != '')
|
||
|
{
|
||
|
$service_command = 'executeToFile '. $AS_LAS_LocalPath . $service_search_file_name ;
|
||
|
$service_command .= ' searchString '. $service_search_database .' "'. addslashes($service_text) .'" ';
|
||
|
$service_command .= $service_search_start_date;
|
||
|
if ($service_search_end_date != '') $service_command .= ' '. $service_search_end_date;
|
||
|
|
||
|
nt_common_add_debug($service_command);
|
||
|
|
||
|
$service_list = tool_main_get_checked_services();
|
||
|
if (sizeof($service_list))
|
||
|
{
|
||
|
nt_log("Domain '$AS_Name' : '$service_command' on ". implode(', ',array_values($service_list)));
|
||
|
nt_common_add_debug(array_combine($service_list, $service_list));
|
||
|
$tpl->assign('tool_service_select_list', array_combine($service_list, $service_list));
|
||
|
$tpl->assign('tool_execute_result', '');
|
||
|
reset($service_list);
|
||
|
foreach($service_list as $service)
|
||
|
{
|
||
|
nt_common_add_debug("about to run command '$service_command' on '$service' ...");
|
||
|
$adminService->serviceCmd($service, $service_command);
|
||
|
if (!$adminService->waitCallback())
|
||
|
{
|
||
|
nt_common_add_debug('Error while waiting for callback on service \''. $service .'\' for command : '. $service_command);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
break;
|
||
|
|
||
|
case 'execute':
|
||
|
|
||
|
if (isset($NELTOOL['POST_VARS']['service_command']))
|
||
|
{
|
||
|
$service_command = trim(stripslashes(html_entity_decode($NELTOOL['POST_VARS']['service_command'], ENT_QUOTES)));
|
||
|
$service_list = tool_main_get_checked_services();
|
||
|
if (sizeof($service_list))
|
||
|
{
|
||
|
nt_log("Domain '$AS_Name' : '$service_command' on ". implode(', ',array_values($service_list)));
|
||
|
nt_common_add_debug(array_combine($service_list, $service_list));
|
||
|
$tpl->assign('tool_service_select_list', array_combine($service_list, $service_list));
|
||
|
$tpl->assign('tool_execute_result', '');
|
||
|
reset($service_list);
|
||
|
foreach($service_list as $service)
|
||
|
{
|
||
|
nt_common_add_debug("about to run command '$service_command' on '$service' ...");
|
||
|
$adminService->serviceCmd($service, $service_command);
|
||
|
if (!$adminService->waitCallback())
|
||
|
{
|
||
|
nt_common_add_debug('Error while waiting for callback on service \''. $service .'\' for command : '. $service_command);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
$tpl->assign('tool_execute_command', htmlentities($service_command, ENT_QUOTES));
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
break;
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$status = $adminService->getStates();
|
||
|
nt_common_add_debug($status);
|
||
|
|
||
|
$domainServices = tool_main_parse_status($status);
|
||
|
|
||
|
$filteredServices = array();
|
||
|
reset($domainServices);
|
||
|
foreach($domainServices as $aKey => $aService)
|
||
|
{
|
||
|
// we are only interested in EGS
|
||
|
if ($aService['ShortName'] == 'LAS')
|
||
|
{
|
||
|
$filteredServices[] = $aService;
|
||
|
}
|
||
|
}
|
||
|
$tpl->assign('tool_services_list', $filteredServices);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$tpl->display($template_file);
|
||
|
|
||
|
?>
|