2014-03-20 Miguel de Dios <miguel.dedios@artica.es>

* godmode/snmpconsole/snmp_alert.php,
	godmode/alerts/alert_list.list.php,
	godmode/agentes/agent_manager.php,
	godmode/agentes/configurar_agente.php,
	godmode/agentes/modificar_agente.php,
	include/functions_reporting.php,
	operation/agentes/estado_agente.php,
	images/remote_configuration.png: added a tab for enterprise remote
	configuration.
	
	Incident: #311




git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@9619 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
This commit is contained in:
mdtrooper 2014-03-20 12:02:07 +00:00
parent 5fe4fbf696
commit 0b7a657d56
9 changed files with 203 additions and 121 deletions

View File

@ -1,3 +1,17 @@
2014-03-20 Miguel de Dios <miguel.dedios@artica.es>
* godmode/snmpconsole/snmp_alert.php,
godmode/alerts/alert_list.list.php,
godmode/agentes/agent_manager.php,
godmode/agentes/configurar_agente.php,
godmode/agentes/modificar_agente.php,
include/functions_reporting.php,
operation/agentes/estado_agente.php,
images/remote_configuration.png: added a tab for enterprise remote
configuration.
Incident: #311
2014-03-19 Alejandro Gallardo <alejandro.gallardo@artica.es>
* pandoradb_data.sql,

View File

@ -128,13 +128,6 @@ if (!$new_agent) {
}
}
$disk_conf = (bool) get_parameter ('disk_conf');
if ($disk_conf) {
require ("agent_disk_conf_editor.php");
return;
}
$disk_conf_delete = (bool) get_parameter ('disk_conf_delete');
// Agent remote configuration DELETE
if ($disk_conf_delete) {
@ -174,11 +167,18 @@ if (!$new_agent) {
$agent_name = io_safe_output($agent_name);
$agent_md5 = md5 ($agent_name, false);
$table->data[0][1] .= '&nbsp;&nbsp;<a href="index.php?sec=gagente&amp;sec2=godmode/agentes/configurar_agente&amp;tab=main&amp;id_agente='.$id_agente.'&amp;disk_conf='.$agent_md5.'">';
$table->data[0][1] .= '&nbsp;&nbsp;' .
'<a href="index.php?' .
'sec=gagente&amp;' .
'sec2=godmode/agentes/configurar_agente&amp;' .
'tab=remote_configuration&amp;' .
'id_agente=' . $id_agente . '&amp;' .
'disk_conf=' . $agent_md5 . '">';
$table->data[0][1] .= html_print_image(
"images/application_edit.png",
true,
array ("border" => 0, "title" => __('This agent can be remotely configured')));
array("border" => 0,
"title" => __('This agent can be remotely configured')));
$table->data[0][1] .= '</a>' .
ui_print_help_tip (
__('You can remotely edit this agent configuration'), true);
@ -286,7 +286,12 @@ if (!$new_agent) {
if (file_exists ($filename['md5'])) {
$table->data[3][1] = date ("F d Y H:i:s", fileatime ($filename['md5']));
// Delete remote configuration
$table->data[3][1] .= '<a href="index.php?sec=gagente&amp;sec2=godmode/agentes/configurar_agente&amp;tab=main&amp;disk_conf_delete=1&amp;id_agente='.$id_agente.'">';
$table->data[3][1] .= '<a href="index.php?' .
'sec=gagente&amp;' .
'sec2=godmode/agentes/configurar_agente&amp;' .
'tab=main&amp;' .
'disk_conf_delete=1&amp;' .
'id_agente=' . $id_agente . '">';
$table->data[3][1] .= html_print_image(
"images/cross.png", true,
array ('title' => __('Delete remote configuration file'), 'style' => 'vertical-align: middle;')).'</a>';

View File

@ -212,11 +212,16 @@ if ($create_agent) {
$agent_created_ok = true;
$info = 'Name: ' . $nombre_agente . ' IP: ' . $direccion_agente .
' Group: ' . $grupo . ' Interval: ' . $intervalo .
' Comments: ' . $comentarios . ' Mode: ' . $modo .
' ID_parent: ' . $id_parent . ' Server: ' . $server_name .
' ID os: ' . $id_os . ' Disabled: ' . $disabled .
$info = 'Name: ' . $nombre_agente .
' IP: ' . $direccion_agente .
' Group: ' . $grupo .
' Interval: ' . $intervalo .
' Comments: ' . $comentarios .
' Mode: ' . $modo .
' ID_parent: ' . $id_parent .
' Server: ' . $server_name .
' ID os: ' . $id_os .
' Disabled: ' . $disabled .
' Custom ID: ' . $custom_id .
' Cascade protection: ' . $cascade_protection .
' Icon path: ' . $icon_path .
@ -237,7 +242,6 @@ if ($create_agent) {
// Show tabs
$img_style = array ("class" => "top", "width" => 16);
// TODO: Change to use ui_print_page_header
if ($id_agente) {
/* View tab */
@ -299,7 +303,8 @@ if ($id_agente) {
$inventorytab = "";
$has_remote_conf = enterprise_hook('config_agents_has_remote_configuration',array($id_agente));
$has_remote_conf = enterprise_hook('config_agents_has_remote_configuration',
array($id_agente));
if ($has_remote_conf === true) {
/* Plugins */
@ -365,7 +370,44 @@ if ($id_agente) {
}
if (check_acl ($config["id_user"], $group, "AW", $id_agente)) {
if ($has_remote_conf) {
$agent_name = agents_get_name($id_agente);
$agent_name = io_safe_output($agent_name);
$agent_md5 = md5 ($agent_name, false);
$remote_configuration_tab['text'] =
'<a href="index.php?' .
'sec=gagente&amp;' .
'sec2=godmode/agentes/configurar_agente&amp;' .
'tab=remote_configuration&amp;' .
'id_agente=' . $id_agente . '&amp;' .
'disk_conf=' . $agent_md5 . '">'
. html_print_image ("images/book_edit.png", true,
array("title" =>__('Remote configuration')))
. '</a>';
if ($tab == 'remote_configuration')
$remote_configuration_tab['active'] = true;
else
$remote_configuration_tab['active'] = false;
$onheader = array('view' => $viewtab,
'separator' => "",
'main' => $maintab,
'remote_configuration' => $remote_configuration_tab,
'module' => $moduletab,
'alert' => $alerttab,
'template' => $templatetab,
'inventory' => $inventorytab,
'pluginstab' => $pluginstab,
'collection'=> $collectiontab,
'group' => $grouptab,
'gis' => $gistab,
'agent_wizard' => $agent_wizard);
}
else {
$onheader = array('view' => $viewtab,
'separator' => "",
'main' => $maintab,
'module' => $moduletab,
'alert' => $alerttab,
@ -376,6 +418,7 @@ if ($id_agente) {
'group' => $grouptab,
'gis' => $gistab,
'agent_wizard' => $agent_wizard);
}
// Only if the agent has incidents associated show incidents tab
if ($total_incidents) {
@ -449,6 +492,9 @@ if ($id_agente) {
case "incident":
$tab_description = '- ' . __('Incidents');
break;
case "remote_configuration":
$tab_description = '- ' . __('Remote configuration');
break;
case "agent_wizard":
switch(get_parameter('wizard_section')) {
case 'snmp_explorer':
@ -475,12 +521,14 @@ if ($id_agente) {
break;
}
ui_print_page_header (agents_get_name ($id_agente) .
' ' . $tab_description, "images/setup.png", false, $help_header , true, $onheader);
ui_print_page_header (
agents_get_name ($id_agente) . ' ' . $tab_description,
"images/setup.png", false, $help_header , true, $onheader);
}
else {
// Create agent
ui_print_page_header (__('Agent manager'), "images/bricks.png", false, "create_agent", true);
ui_print_page_header (__('Agent manager'), "images/bricks.png",
false, "create_agent", true);
}
$delete_conf_file = (bool) get_parameter('delete_conf_file');
@ -594,7 +642,8 @@ if ($update_agent) { // if modified some agent paramenter
foreach ($field_values as $key => $value) {
$old_value = db_get_all_rows_filter('tagent_custom_data', array('id_agent' => $id_agente, 'id_field' => $key));
$old_value = db_get_all_rows_filter('tagent_custom_data',
array('id_agent' => $id_agente, 'id_field' => $key));
if ($old_value === false) {
// Create custom field if not exist
@ -741,7 +790,7 @@ if ($update_module || $create_module) {
// where are very big and PHP uses scientific notation, p.e:
// 1.23E-10 is 0.000000000123
$post_process = get_parameter ('post_process', 0);
$post_process = (string) get_parameter ('post_process', 0.0);
$prediction_module = 0;
$max_timeout = (int) get_parameter ('max_timeout');
$max_retries = (int) get_parameter ('max_retries');
@ -790,15 +839,15 @@ if ($update_module || $create_module) {
if (!empty($macros)) {
$macros = json_decode(base64_decode($macros), true);
foreach ($macros as $k => $m) {
foreach($macros as $k => $m) {
$macros[$k]['value'] = get_parameter($m['macro'], '');
}
$macros = json_encode($macros);
$conf_array = explode("\n", $configuration_data);
foreach ($conf_array as $line) {
if (preg_match("/^module_name\s*(.*)/", $line, $match)) {
$conf_array = explode("\n",$configuration_data);
foreach($conf_array as $line) {
if(preg_match("/^module_name\s*(.*)/", $line, $match)) {
$new_configuration_data .= "module_name $name\n";
}
// We delete from conf all the module macros starting with _field
@ -822,7 +871,8 @@ if ($update_module || $create_module) {
enterprise_hook ('get_service_synthetic_parameters');
$agent_name = (string) get_parameter('agent_name',agents_get_name ($id_agente));
$agent_name = (string) get_parameter('agent_name',
agents_get_name($id_agente));
$snmp_community = (string) get_parameter ('snmp_community');
$snmp_oid = (string) get_parameter ('snmp_oid');
@ -1413,6 +1463,9 @@ switch ($tab) {
case "incident":
require("agent_incidents.php");
break;
case "remote_configuration":
enterprise_include("godmode/agentes/agent_disk_conf_editor.php");
break;
case "extension":
$found = false;
foreach($config['extensions'] as $extension) {
@ -1470,34 +1523,34 @@ echo '</ul>';
echo '</div>';
?>
<script type="text/javascript">
var wizard_tab_showed = 0;
/* <![CDATA[ */
var wizard_tab_showed = 0;
/* <![CDATA[ */
$(document).ready (function () {
$(document).ready (function () {
// Control the tab and subtab hover. When mouse leave one,
// check if is hover the other before hide the subtab
$('.agent_wizard_tab').hover(agent_wizard_tab_show, agent_wizard_tab_hide);
$('#agent_wizard_subtabs').hover(agent_wizard_tab_show, agent_wizard_tab_hide);
});
});
// Set the position and width of the subtab
function agent_wizard_tab_setup() {
// Set the position and width of the subtab
function agent_wizard_tab_setup() {
$('#agent_wizard_subtabs').css('left', $('.agent_wizard_tab').offset().left)
$('#agent_wizard_subtabs').css('top', $('.agent_wizard_tab').offset().top + $('.agent_wizard_tab').height() + 4)
$('#agent_wizard_subtabs').css('width', $('.agent_wizard_tab').width() + 6)
}
}
function agent_wizard_tab_show() {
function agent_wizard_tab_show() {
agent_wizard_tab_setup();
wizard_tab_showed = wizard_tab_showed + 1;
if(wizard_tab_showed == 1) {
$('#agent_wizard_subtabs').show("fast");
}
}
}
function agent_wizard_tab_hide() {
function agent_wizard_tab_hide() {
wizard_tab_showed = wizard_tab_showed - 1;
setTimeout(function() {
@ -1505,11 +1558,11 @@ function agent_wizard_tab_hide() {
$('#agent_wizard_subtabs').hide("fast");
}
},500);
}
}
$(window).resize(function() {
$(window).resize(function() {
agent_wizard_tab_setup();
});
});
/* ]]> */
/* ]]> */
</script>

View File

@ -483,7 +483,11 @@ if ($agents !== false) {
if (enterprise_installed()) {
enterprise_include_once('include/functions_config_agents.php');
if (config_agents_has_remote_configuration($agent["id_agente"])) {
echo "<a href='index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=main&id_agente=".$agent["id_agente"]."&disk_conf=1'>";
echo "<a href='index.php?" .
"sec=gagente&" .
"sec2=godmode/agentes/configurar_agente&" .
"tab=remote_configuration&" .
"id_agente=" . $agent["id_agente"] . "&disk_conf=1'>";
echo html_print_image("images/application_edit.png", true, array("align" => 'middle', "title" => __('Edit remote config')));
echo "</a>";
}

View File

@ -41,18 +41,18 @@ else {
}
// Table for filter controls
$form_filter = '<form method="post" action="index.php?sec='.$sec.'&amp;sec2=godmode/alerts/alert_list&amp;refr=' . ((int)get_parameter('refr', 0)) . '&amp;pure='.$config["pure"].'">';
$form_filter = '<form method="post" action="index.php?sec=' . $sec . '&amp;sec2=godmode/alerts/alert_list&amp;refr=' . ((int)get_parameter('refr', 0)) . '&amp;pure='.$config["pure"].'">';
$form_filter .= "<input type='hidden' name='search' value='1' />\n";
$form_filter .= '<table style="width: 98%;" cellpadding="4" cellspacing="4" class="databox">'."\n";
$form_filter .= "<tr>\n";
$form_filter .= "<td>".__('Template name')."</td><td>";
$form_filter .= "<td>" . __('Template name') . "</td><td>";
$form_filter .= html_print_input_text ('template_name', $templateName, '', 12, 255, true);
$form_filter .= "</td>\n";
$temp = agents_get_agents();
$arrayAgents = array();
# Avoid empty arrays, warning messages are UGLY !
if ($temp){
if ($temp) {
foreach ($temp as $agentElement) {
$arrayAgents[$agentElement['id_agente']] = $agentElement['nombre'];
}
@ -137,7 +137,7 @@ $form_filter .= "</table>\n";
$form_filter .= "</form>\n";
echo "<br>";
ui_toggle($form_filter,__('Alert control filter'), __('Toggle filter(s)'));
ui_toggle($form_filter, __('Alert control filter'), __('Toggle filter(s)'));
$simple_alerts = array();
@ -395,7 +395,7 @@ foreach ($simple_alerts as $alert) {
$data[0] = '';
if(check_acl ($config['id_user'], $agent_group, "AW")) {
if (check_acl ($config['id_user'], $agent_group, "AW")) {
$main_tab = 'main';
}
else {
@ -658,11 +658,11 @@ foreach ($simple_alerts as $alert) {
array_push ($table->data, $data);
}
if (isset($data)){
if (isset($data)) {
html_print_table ($table);
}
else {
echo "<div class='nf'>".__('No alerts defined')."</div>";
echo "<div class='nf'>" . __('No alerts defined') . "</div>";
}
// Create alert button
@ -673,7 +673,7 @@ if (isset($dont_display_alert_create_bttn))
$display_create = false;
if ($display_create && check_acl ($config['id_user'], 0, "LW")){
echo '<div class="action-buttons" style="width: '.$table->width.'">';
echo '<div class="action-buttons" style="width: ' . $table->width . '">';
echo '<form method="post" action="index.php?sec='.$sec.'&sec2=godmode/alerts/alert_list&tab=builder&pure='.$pure.'">';
html_print_submit_button (__('Create'), 'crtbtn', false, 'class="sub next"');
echo '</form>';

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -1423,11 +1423,12 @@ function reporting_get_group_stats ($id_group = 0, $access = 'AR') {
$id_group[0] = $my_group;
}
foreach ($id_group as $group){
foreach ($id_group as $group) {
$group_stat = db_get_all_rows_sql ("SELECT *
FROM tgroup_stat, tgrupo
WHERE tgrupo.id_grupo = tgroup_stat.id_group AND tgroup_stat.id_group = $group
ORDER BY nombre");
$data["monitor_checks"] += $group_stat[0]["modules"];
$data["monitor_not_init"] += $group_stat[0]["non-init"];
$data["monitor_unknown"] += $group_stat[0]["unknown"];

View File

@ -493,7 +493,12 @@ foreach ($agents as $agent) {
if (enterprise_installed()) {
if (config_agents_has_remote_configuration($agent["id_agente"])) {
$data[9] = "<a href='index.php?sec=estado&sec2=godmode/agentes/configurar_agente&tab=main&id_agente=".$agent["id_agente"]."&disk_conf=1'>".
$data[9] = "<a href='index.php?" .
"sec=estado&" .
"sec2=godmode/agentes/configurar_agente&" .
"tab=remote_configuration&" .
"id_agente=" . $agent["id_agente"] . "&" .
"disk_conf=1'>".
html_print_image("images/application_edit.png", true, array("align" => 'middle', "title" => __('Edit remote config')))."</a>";
}
}