Skip to Content.
Sympa Menu

perfsonar-dev - r1620 - trunk/perfsonar/contrib/benchmarking/ls

Subject: perfsonar development work

List archive

r1620 - trunk/perfsonar/contrib/benchmarking/ls


Chronological Thread 
  • From:
  • To:
  • Subject: r1620 - trunk/perfsonar/contrib/benchmarking/ls
  • Date: Thu, 7 Sep 2006 13:46:31 -0400

Author: boote
Date: 2006-09-07 13:46:30 -0400 (Thu, 07 Sep 2006)
New Revision: 1620

Modified:
trunk/perfsonar/contrib/benchmarking/ls/generateDB.pl
Log:
Added eol-style and execute properties.
Some cleanup that did not change functionality at all.
Adding options:
-I : specify exact number of interfaces per service. (-i indicates an
"average" number of interfaces to use per service in the file.)
-d : specify the dictionary file for hostnames (defaults to
/usr/share/dict/words)


Modified: trunk/perfsonar/contrib/benchmarking/ls/generateDB.pl
===================================================================
--- trunk/perfsonar/contrib/benchmarking/ls/generateDB.pl 2006-09-07
14:43:32 UTC (rev 1619)
+++ trunk/perfsonar/contrib/benchmarking/ls/generateDB.pl 2006-09-07
17:46:30 UTC (rev 1620)
@@ -46,17 +46,22 @@

# define command-line args
my %clopts = (
- NUMSERVICES => "s:", # number of services in 'store'
- NUMINTERFACES => "i:", # avg number of interfaces per/service
+ NUMSERVICES => "s:", # number of services in 'store'
+ NUMINTERFACES => "i:", # avg number of interfaces per/service
# (assuming rand() returns even distribution)
- TYPE => "t:", # type, valid types are message or store

+ EXACTINTERFACES => "I:", # Exact number of interfaces per service
+ # (over-rides -i option)
+ TYPE => "t:", # type, valid types are message or store
+ DICT => "d:", # Specify dictionary for random hostnames
);

# Provide defaults
my %defaults = (
NUMSERVICES => 1,
NUMINTERFACES => 100,
+ EXACTINTERFACES => 0,
TYPE => "message",
+ DICT => '/usr/share/dict/words',
);

# reverse mapping of command-line hash
@@ -87,12 +92,20 @@

# All interfaces allocated under same class B as service
my $max_inter = $max_serv/2;
+if($defaults{'EXACTINTERFACES'}){
+ $defaults{'NUMINTERFACES'} = $defaults{'EXACTINTERFACES'}
+}
if($defaults{'NUMINTERFACES'} > $max_inter){
die "$0: Current IP algorithm only supports max avg of $max_inter
interfaces";
}

#Check type
-if(($defaults{'TYPE'} ne "message") && ($defaults{'TYPE'} ne "store")){
+my $beginenvelope;
+my $endenvelope;
+for($defaults{'TYPE'}) {
+ $endenvelope = $_;
+ /^message$/ and $beginenvelope='message type="LSRegisterRequest"',
last;
+ /^store$/ and $beginenvelope='store type="LSStore"', last;
die "$0: Type must be message or store";
}

@@ -173,27 +186,25 @@
}
}

-# TODO: May need to create a command-line arg for the words path...
-my $wl = new Data::Random::WordList( wordlist => '/usr/share/dict/words');
+# open dictionary
+my $wl = new Data::Random::WordList( wordlist => $defaults{'DICT'});
+
+# fetch random hostnames for service
my @hnames = $wl->get_words($defaults{'NUMSERVICES'});

if($defaults{'TYPE'} eq "store"){
-print << 'HEADER';
-<?xml version="1.0" encoding="UTF-8"?>
-<nmwg:store xmlns:nmwgt="http://ggf.org/ns/nmwg/topology/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:psservice="http://ggf.org/ns/nmwg/tools/org/perfsonar/service/1.0/";
xmlns:perfsonar="http://ggf.org/ns/nmwg/tools/org/perfsonar/1.0/";
xmlns:netutil="http://ggf.org/ns/nmwg/characteristic/utilization/2.0/";
type="LSStore">
-HEADER
-} else {
-print << 'HEADER';
-<nmwg:message type="LSRegisterRequest"
- id="registration-message"
-
xmlns:perfsonar="http://ggf.org/ns/nmwg/tools/org/perfsonar/1.0/";
- xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
-
xmlns:psservice="http://ggf.org/ns/nmwg/tools/org/perfsonar/service/1.0/";
- xmlns:nmwgt="http://ggf.org/ns/nmwg/topology/2.0/";
-
xmlns:netutil="http://ggf.org/ns/nmwg/characteristic/utilization/2.0/";>
-HEADER
+ print '<?xml version="1.0" encoding="UTF-8"?>\n';
}

+print << "HEADER";
+<nmwg:$beginenvelope
+ xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
+ xmlns:perfsonar="http://ggf.org/ns/nmwg/tools/org/perfsonar/1.0/";
+ xmlns:psservice="http://ggf.org/ns/nmwg/tools/org/perfsonar/service/1.0/";
+ xmlns:nmwgt="http://ggf.org/ns/nmwg/topology/2.0/";
+ xmlns:netutil="http://ggf.org/ns/nmwg/characteristic/utilization/2.0/";>
+HEADER
+
my $servi; # service index
for($servi = 0; $servi < $defaults{'NUMSERVICES'}; $servi++){
my @classB = uniqueserv;
@@ -222,7 +233,8 @@
my %uintr_ip;
undef %uintr_ip;

- my $nintr = int(rand($defaults{'NUMINTERFACES'} * 2));
+ my $nintr = $defaults{'EXACTINTERFACES'} ||
+ int(rand($defaults{'NUMINTERFACES'} * 2));
my @inames = $wl->get_words($nintr);
my $tstamp = time;

@@ -271,14 +283,8 @@
}
}

-if($defaults{'TYPE'} eq "store"){
-print << 'FOOTER';
-</nmwg:store>
+print << "FOOTER";
+</nmwg:$endenvelope>
FOOTER
-} else {
-print << 'FOOTER';
-</nmwg:message>
-FOOTER
-}

-exit 0;
\ No newline at end of file
+exit 0;


Property changes on: trunk/perfsonar/contrib/benchmarking/ls/generateDB.pl
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:eol-style
+ native



  • r1620 - trunk/perfsonar/contrib/benchmarking/ls, svnlog, 09/07/2006

Archive powered by MHonArc 2.6.16.

Top of Page