2012-09-28 Dario Rodriguez <dario.rodriguez@artica.es>

* util/pandora_xml_stress.conf,
	util/pandora_xml_stress.pl,
	util/pandora_xml_stress_module_source.txt: Added new
	features to pandora_xml_stress program.



git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@7007 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
This commit is contained in:
darode 2012-09-28 11:52:50 +00:00
parent f701cdc957
commit 1c6ce0ca4f
4 changed files with 136 additions and 1 deletions

View File

@ -1,3 +1,10 @@
2012-09-28 Dario Rodriguez <dario.rodriguez@artica.es>
* util/pandora_xml_stress.conf,
util/pandora_xml_stress.pl,
util/pandora_xml_stress_module_source.txt: Added new
features to pandora_xml_stress program.
2012-09-26 Hirofumi Kosaka <kosaka@rworks.jp>
* util/pandora_db.pl: bug fix: 'audit_purge' was used to purge

View File

@ -145,3 +145,10 @@ module_type generic_data_string
module_description Messages from the system in logfile format
module_exec type=RANDOM;variation=60;min=40;max=40
module_end
module_begin
module_name Module source
module_type generic_data
module_description Module data generated from source
module_exec type=SOURCE;src=/usr/share/pandora_server/util/pandora_xml_stress_module_source.txt
module_end

View File

@ -81,6 +81,7 @@ sub load_config ($\%\@) {
close (FILE);
}
################################################################################
# Generate XML files.
################################################################################
@ -113,6 +114,8 @@ sub generate_xml_files ($$$$$$) {
die ("[error] Invalid time_to: $time_to\n\n") unless ($time_to =~ /(\d+)\-(\d+)\-(\d+) +(\d+):(\d+):(\d+)/);
my $utimestamp_to = timelocal($6, $5, $4, $3, $2 - 1, $1 - 1900);
my %modules_src_pointers = init_src_pointers($modules);
# Generate data files
my $utimestamp = $utimestamp_from;
while ($utimestamp <= $utimestamp_to) {
@ -164,6 +167,7 @@ sub generate_xml_files ($$$$$$) {
my $module_avg = get_generation_parameter($module, 'avg', '127');
my $module_time_wave_length = get_generation_parameter($module, 'time_wave_length', '0');
my $module_time_offset = get_generation_parameter($module, 'time_offset', '0');
my $module_src = get_generation_parameter($module, 'src', 'source.txt');
# Generate module data
$xml_data .= "\t<module>\n";
@ -208,6 +212,9 @@ sub generate_xml_files ($$$$$$) {
$rnd_data = generate_curve_data ($utimestamp, $module_min, $module_max,
$module_time_wave_length, $module_time_offset);
}
}elsif ($generation_type eq 'SOURCE') {
$rnd_data = generate_data_from_source($module_name, $module_src, \%modules_src_pointers);
}
# Save previous data
@ -215,7 +222,7 @@ sub generate_xml_files ($$$$$$) {
$xml_data .= "\t\t<data>$rnd_data</data>\n";
$xml_data .= "\t</module>\n";
}
$xml_data .= "</agent_data>\n";
# Fix the temporal path
@ -233,6 +240,9 @@ sub generate_xml_files ($$$$$$) {
$XMLFiles++;
}
#Update src pointers for a new xml
update_src_pointers(\%modules_src_pointers);
# First run, let the server create the new agent before sending more data
if ($utimestamp == $utimestamp_from) {
threads->yield ();
@ -316,6 +326,79 @@ sub generate_scatter_data ($$$$$$) {
}
}
################################################################################
# Generates data from a txt source
################################################################################
sub generate_data_from_source ($$$) {
my ($module_name, $module_src, $pointers) = @_;
my $data = 0;
my $pointer;
if (-e $module_src) {
#Get data and split to an array
open (FD , "<", $module_src);
my @data_array = <FD>;
close(FD);
$module_name =~ s/\ /\_/;
$pointer = $pointers->{$module_name};
$pointer = $pointer % ($#data_array+1);
$data = $data_array[$pointer];
} else {
#There was an error, set last to 0 and return data
return $data;
}
return $data;
}
################################################################################
# Initialize SRC pointer for src modules
################################################################################
sub init_src_pointers ($) {
my ($modules) = shift;
my %pointers;
foreach my $mod (@{$modules}) {
# Skip unnamed modules
my $module_name = get_conf_token ($mod, 'module_name', '');
next if ($module_name eq '');
my $type = get_generation_parameter($mod, 'type', 'RANDOM');
if ($type eq 'SOURCE') {
$module_name =~ s/\ /\_/;
$pointers{$module_name} = 0;
}
}
return %pointers;
}
################################################################################
# Updates SRC pointer for src modules
################################################################################
sub update_src_pointers ($) {
my ($pointers) = shift;
foreach my $p (keys %{$pointers}) {
#Add 1 to the pointer
$pointers->{$p}++;
}
}
################################################################################
# Returns the value of a configuration token.
################################################################################

View File

@ -0,0 +1,38 @@
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
12
13
12
14
12
14