Fixed the lost config data in modules from policy when update something in the module. TICKET: #1874
This commit is contained in:
parent
b79d572959
commit
50bbdf5590
|
@ -781,6 +781,8 @@ $edit_module = (bool) get_parameter ('edit_module');
|
||||||
if ($update_module || $create_module) {
|
if ($update_module || $create_module) {
|
||||||
$id_grupo = agents_get_agent_group ($id_agente);
|
$id_grupo = agents_get_agent_group ($id_agente);
|
||||||
|
|
||||||
|
$id_agent_module = (int) get_parameter ('id_agent_module');
|
||||||
|
|
||||||
if (!check_acl ($config["id_user"], $id_grupo, "AW")) {
|
if (!check_acl ($config["id_user"], $id_grupo, "AW")) {
|
||||||
db_pandora_audit("ACL Violation",
|
db_pandora_audit("ACL Violation",
|
||||||
"Trying to create a module without admin rights");
|
"Trying to create a module without admin rights");
|
||||||
|
@ -855,8 +857,8 @@ if ($update_module || $create_module) {
|
||||||
$macros = io_json_mb_encode($macros);
|
$macros = io_json_mb_encode($macros);
|
||||||
|
|
||||||
$conf_array = explode("\n",$configuration_data);
|
$conf_array = explode("\n",$configuration_data);
|
||||||
foreach($conf_array as $line) {
|
foreach ($conf_array as $line) {
|
||||||
if(preg_match("/^module_name\s*(.*)/", $line, $match)) {
|
if (preg_match("/^module_name\s*(.*)/", $line, $match)) {
|
||||||
$new_configuration_data .= "module_name $name\n";
|
$new_configuration_data .= "module_name $name\n";
|
||||||
}
|
}
|
||||||
// We delete from conf all the module macros starting with _field
|
// We delete from conf all the module macros starting with _field
|
||||||
|
@ -867,7 +869,7 @@ if ($update_module || $create_module) {
|
||||||
|
|
||||||
$macros_for_data = enterprise_hook('config_agents_get_macros_data_conf', array($_POST));
|
$macros_for_data = enterprise_hook('config_agents_get_macros_data_conf', array($_POST));
|
||||||
|
|
||||||
if($macros_for_data !== ENTERPRISE_NOT_HOOK && $macros_for_data != '') {
|
if ($macros_for_data !== ENTERPRISE_NOT_HOOK && $macros_for_data != '') {
|
||||||
// Add macros to configuration file
|
// Add macros to configuration file
|
||||||
$new_configuration_data = str_replace('module_end', $macros_for_data."module_end", $new_configuration_data);
|
$new_configuration_data = str_replace('module_end', $macros_for_data."module_end", $new_configuration_data);
|
||||||
}
|
}
|
||||||
|
@ -947,9 +949,10 @@ if ($update_module || $create_module) {
|
||||||
$wday = get_parameter('wday');
|
$wday = get_parameter('wday');
|
||||||
$cron_interval = "$minute $hour $mday $month $wday";
|
$cron_interval = "$minute $hour $mday $month $wday";
|
||||||
|
|
||||||
if ($prediction_module != 3) {
|
if ($prediction_module != MODULE_PREDICTION_SYNTHETIC) {
|
||||||
unset($serialize_ops);
|
unset($serialize_ops);
|
||||||
enterprise_hook('modules_delete_synthetic_operations', array($id_agent_module));
|
enterprise_hook('modules_delete_synthetic_operations',
|
||||||
|
array($id_agent_module));
|
||||||
}
|
}
|
||||||
|
|
||||||
$active_snmp_v3 = get_parameter('active_snmp_v3');
|
$active_snmp_v3 = get_parameter('active_snmp_v3');
|
||||||
|
@ -968,8 +971,11 @@ if ($update_module || $create_module) {
|
||||||
|
|
||||||
// Make changes in the conf file if necessary
|
// Make changes in the conf file if necessary
|
||||||
enterprise_include_once('include/functions_config_agents.php');
|
enterprise_include_once('include/functions_config_agents.php');
|
||||||
|
if (!policies_is_module_in_policy($id_agent_module)) {
|
||||||
enterprise_hook('config_agents_write_module_in_conf',
|
enterprise_hook('config_agents_write_module_in_conf',
|
||||||
array($id_agente, io_safe_output($old_configuration_data), io_safe_output($configuration_data), $disabled));
|
array($id_agente, io_safe_output($old_configuration_data),
|
||||||
|
io_safe_output($configuration_data), $disabled));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// MODULE UPDATE
|
// MODULE UPDATE
|
||||||
|
@ -1038,7 +1044,9 @@ if ($update_module) {
|
||||||
unset($values['module_interval']);
|
unset($values['module_interval']);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($prediction_module == 3 && $serialize_ops == '') {
|
if ($prediction_module == MODULE_PREDICTION_SYNTHETIC &&
|
||||||
|
$serialize_ops == '') {
|
||||||
|
|
||||||
$result = false;
|
$result = false;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -1069,7 +1077,7 @@ if ($update_module) {
|
||||||
$edit_module = true;
|
$edit_module = true;
|
||||||
|
|
||||||
db_pandora_audit("Agent management",
|
db_pandora_audit("Agent management",
|
||||||
"Fail to try update module '$name' for agent ".$agent["nombre"]);
|
"Fail to try update module '$name' for agent " . $agent["nombre"]);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if ($prediction_module == 3) {
|
if ($prediction_module == 3) {
|
||||||
|
|
Loading…
Reference in New Issue