Minor changes in PluginTools for 1801
This commit is contained in:
parent
c006ee227f
commit
2380a18c6d
|
@ -605,8 +605,11 @@ sub transfer_xml {
|
|||
$file_name .= "_" . time() . ".data";
|
||||
}
|
||||
|
||||
$conf->{temp} = $conf->{tmp} if (empty($conf->{temp}) && defined($conf->{tmp}));
|
||||
$conf->{temp} = $conf->{temporal} if (empty($conf->{temporal}) && defined($conf->{temporal}));
|
||||
logger($conf, "transfer_xml", "Failed to generate file name.");
|
||||
|
||||
$conf->{temp} = $conf->{tmp} if (empty($conf->{temp}) && defined($conf->{tmp}));
|
||||
$conf->{temp} = $conf->{temporal} if (empty($conf->{temp}) && defined($conf->{temporal}));
|
||||
$conf->{temp} = $conf->{__system}->{tmp} if (empty($conf->{temp}) && defined($conf->{__system})) && (ref($conf->{__system}) eq "HASH");
|
||||
|
||||
$file_path = $conf->{temp} . "/" . $file_name;
|
||||
|
||||
|
@ -734,7 +737,7 @@ sub print_execution_result {
|
|||
}
|
||||
|
||||
print_module($conf, {
|
||||
name => "Plugin execution result",
|
||||
name => "Plugin execution result " . $0,
|
||||
type => "generic_proc",
|
||||
value => (defined($value)?$value:0),
|
||||
desc => $msg,
|
||||
|
@ -745,12 +748,12 @@ sub print_execution_result {
|
|||
## Plugin devolution in case of error
|
||||
################################################################################
|
||||
sub print_error {
|
||||
my ($conf, $msg, $value) = @_;
|
||||
my ($conf, $msg, $value, $always_show) = @_;
|
||||
|
||||
$value = 0 unless defined($value);
|
||||
|
||||
if (!(is_enabled($conf->{informational_modules}))) {
|
||||
return 0;
|
||||
if (!(is_enabled($conf->{informational_modules}) || is_enabled($always_show))) {
|
||||
exit 1;
|
||||
}
|
||||
|
||||
if (is_enabled($conf->{'as_server_plugin'})) {
|
||||
|
@ -760,7 +763,7 @@ sub print_error {
|
|||
}
|
||||
|
||||
print_module($conf, {
|
||||
name => (empty($conf->{'global_plugin_module'})?"Plugin execution result":$conf->{'global_plugin_module'}),
|
||||
name => (empty($conf->{'global_plugin_module'})?"Plugin execution result " . $0:$conf->{'global_plugin_module'}),
|
||||
type => "generic_proc",
|
||||
value => $value,
|
||||
desc => $msg,
|
||||
|
@ -786,32 +789,39 @@ sub print_stderror {
|
|||
my $log_aux_flag = 0;
|
||||
sub logger {
|
||||
my ($conf, $tag, $message) = @_;
|
||||
my $file = $conf->{log};
|
||||
print_error($conf, "Log file undefined\n") unless defined $file;
|
||||
my $file = $conf->{'log'};
|
||||
|
||||
print_error($conf, "[ERROR] Log file is not defined.", 0, 1) unless defined($file);
|
||||
|
||||
# Log rotation
|
||||
if (-e $file && (stat($file))[7] > 32000000) {
|
||||
if (defined($file) && -e $file && (stat($file))[7] > 32000000) {
|
||||
rename ($file, $file.'.old');
|
||||
}
|
||||
my $LOGFILE;
|
||||
if ($log_aux_flag == 0) {
|
||||
# Log starts
|
||||
if (! open ($LOGFILE, "> $file")) {
|
||||
print_error ($conf, "[ERROR] Could not open logfile '$file'");
|
||||
print_error ($conf, "[ERROR] Could not open logfile '$file'", 0, 1);
|
||||
}
|
||||
$log_aux_flag = 1;
|
||||
}
|
||||
else {
|
||||
if (! open ($LOGFILE, ">> $file")) {
|
||||
print_error ($conf, "[ERROR] Could not open logfile '$file'");
|
||||
print_error ($conf, "[ERROR] Could not open logfile '$file'", 0, 1);
|
||||
}
|
||||
}
|
||||
|
||||
$message = '' if empty($message);
|
||||
$message = "[" . $tag . "] " . $message if empty($tag);
|
||||
if (empty($message)) {
|
||||
$message = $tag;
|
||||
$message = "" if empty($message);
|
||||
}
|
||||
else {
|
||||
$message = "[" . $tag . "] " . $message unless empty($tag);
|
||||
}
|
||||
|
||||
if (!(empty($conf->{agent_name}))){
|
||||
$message = "[" . $conf->{agent_xml_name} . "] " . $message;
|
||||
|
||||
if (!(empty($conf->{'agent_name'}))){
|
||||
$message = "[" . $conf->{'agent_name'} . "] " . $message;
|
||||
}
|
||||
|
||||
print $LOGFILE strftime ("%Y-%m-%d %H:%M:%S", localtime()) . " - " . $message . "\n";
|
||||
|
@ -824,7 +834,7 @@ sub logger {
|
|||
sub is_enabled {
|
||||
my $value = shift;
|
||||
|
||||
if ((defined ($value)) && ($value > 0)){
|
||||
if ((defined ($value)) && looks_like_number($value) && ($value > 0)){
|
||||
# return true
|
||||
return 1;
|
||||
}
|
||||
|
@ -931,6 +941,7 @@ sub init_system {
|
|||
$system{grep} = "findstr";
|
||||
$system{echo} = "echo";
|
||||
$system{wcl} = "wc -l";
|
||||
$system{tmp} = ".\\";
|
||||
}
|
||||
else {
|
||||
$system{devnull} = "/dev/null";
|
||||
|
@ -940,6 +951,7 @@ sub init_system {
|
|||
$system{grep} = "grep";
|
||||
$system{echo} = "echo";
|
||||
$system{wcl} = "wc -l";
|
||||
$system{tmp} = "/tmp";
|
||||
|
||||
if ($^O =~ /hpux/i) {
|
||||
$system{os} = "HPUX";
|
||||
|
@ -970,6 +982,41 @@ sub get_sys_environment {
|
|||
|
||||
################################################################################
|
||||
# Parses any configuration, from file (1st arg to program) or direct arguments
|
||||
#
|
||||
# Custom evals are defined in an array reference of hash references:
|
||||
#
|
||||
# $custom_eval = [
|
||||
# {
|
||||
# 'exp' => 'regular expression to match',
|
||||
# 'target' => \&target_custom_method_to_parse_line
|
||||
# },
|
||||
# {
|
||||
# 'exp' => 'another regular expression to search',
|
||||
# 'target' => \&target_custom_method_to_parse_line2
|
||||
# },
|
||||
# ]
|
||||
#
|
||||
# Target is an user defined function wich will be invoked with following
|
||||
# arguments:
|
||||
#
|
||||
# $config : The configuration read to the point the regex matches
|
||||
# $exp : The matching regex which fires this action
|
||||
# $line : The complete line readed from the file
|
||||
# $file_pointer : A pointer to the file which is being parsed.
|
||||
# $current_entity : The current_entity (optional) when regex matches
|
||||
#
|
||||
# E.g.
|
||||
#
|
||||
# sub target_custom_method_to_parse_line {
|
||||
# my ($config, $exp, $line, $file_pointer, $current_entity) = @_;
|
||||
#
|
||||
# if ($line =~ /$exp/) {
|
||||
# $config->{'my_key'} = complex_operation_on_data($1,$2,$3);
|
||||
# }
|
||||
#
|
||||
# return $config;
|
||||
# }
|
||||
#
|
||||
################################################################################
|
||||
sub read_configuration {
|
||||
my ($config, $separator, $custom_eval) = @_;
|
||||
|
@ -1034,11 +1081,16 @@ sub parse_arguments {
|
|||
# $current_entity : The current_entity (optional) when regex matches
|
||||
#
|
||||
################################################################################
|
||||
sub parse_configuration;
|
||||
sub parse_configuration {
|
||||
my ($conf_file, $separator, $custom_eval, $detect_entities, $entities_list) = @_;
|
||||
|
||||
my @arguments = @_;
|
||||
shift(@arguments);
|
||||
|
||||
$separator = "=" unless defined($separator);
|
||||
|
||||
|
||||
my $_CFILE;
|
||||
my $_config;
|
||||
|
||||
|
@ -1124,6 +1176,24 @@ sub parse_configuration {
|
|||
next;
|
||||
}
|
||||
}
|
||||
if ($key =~ /^include$/i) {
|
||||
my $file_included = trim($value);
|
||||
my $aux;
|
||||
eval {
|
||||
$aux = parse_configuration($file_included, @arguments);
|
||||
};
|
||||
if($@) {
|
||||
Carp::croak ("Failed to parse configuration");
|
||||
}
|
||||
|
||||
if (empty($_config)) {
|
||||
$_config = $aux;
|
||||
}
|
||||
elsif (!empty($aux) && (ref ($aux) eq "HASH")) {
|
||||
$_config = merge_hashes($_config, $aux);
|
||||
}
|
||||
next;
|
||||
}
|
||||
$_config->{trim($key)} = trim($value);
|
||||
}
|
||||
close ($_CFILE);
|
||||
|
@ -1138,7 +1208,7 @@ sub parse_configuration {
|
|||
|
||||
return $global_config unless empty($global_config);
|
||||
}
|
||||
|
||||
|
||||
return $_config;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue