Commit a7a7e059 authored by Leigh B Stoller's avatar Leigh B Stoller

Change so that -B and no -B return sub arrays, now that I've changed

the JS code to handle the new format.

Also add a -s (silent option) to avoid warnings that cause needless email
from the Geni XMLRPC interface.
parent 57407051
...@@ -59,6 +59,7 @@ my $g_end = floor($g_now/$STEP)*$STEP + $STEP; # Now, normalized to STEP. ...@@ -59,6 +59,7 @@ my $g_end = floor($g_now/$STEP)*$STEP + $STEP; # Now, normalized to STEP.
my $g_start = $g_end - floor($DEFWINDOW/$STEP)*$STEP + 2*$STEP; # Default window, normalized. my $g_start = $g_end - floor($DEFWINDOW/$STEP)*$STEP + 2*$STEP; # Default window, normalized.
my $g_experiment; my $g_experiment;
my @g_nodelist = (); my @g_nodelist = ();
my $g_silent = 0;
sub usage() { sub usage() {
print STDERR print STDERR
...@@ -66,6 +67,7 @@ sub usage() { ...@@ -66,6 +67,7 @@ sub usage() {
"Usage: $0 [-d] [-A|-B] [-R] [-S <start_time>] [-E <end_time>] node [node ...]\n" . "Usage: $0 [-d] [-A|-B] [-R] [-S <start_time>] [-E <end_time>] node [node ...]\n" .
" $0 [-d] [-A|-B] [-R] [-S <start_time>] [-E <end_time>] -e <pid>,<eid>\n". " $0 [-d] [-A|-B] [-R] [-S <start_time>] [-E <end_time>] -e <pid>,<eid>\n".
"-d: turn on debugging.\n" . "-d: turn on debugging.\n" .
"-s: silent mode, no warnings\n" .
"-A: return averages instead of maximums.\n". "-A: return averages instead of maximums.\n".
"-B: return both average and maximum data points.\n". "-B: return both average and maximum data points.\n".
"-R: include the latest day's raw 5 minute samples.\n". "-R: include the latest day's raw 5 minute samples.\n".
...@@ -106,7 +108,7 @@ if ($UID) { ...@@ -106,7 +108,7 @@ if ($UID) {
my %opts = (); my %opts = ();
if (!getopts("dhABRS:E:e:", \%opts) || $opts{'h'}) { if (!getopts("dhABRS:E:e:s", \%opts) || $opts{'h'}) {
usage(); usage();
} }
...@@ -114,6 +116,10 @@ if ($opts{'A'}) { ...@@ -114,6 +116,10 @@ if ($opts{'A'}) {
$g_valtype = "AVERAGE"; $g_valtype = "AVERAGE";
} }
if ($opts{'s'}) {
$g_silent = 1;
}
if ($opts{'B'}) { if ($opts{'B'}) {
$g_doboth = 1; $g_doboth = 1;
} }
...@@ -185,7 +191,8 @@ if ($opts{'S'}) { ...@@ -185,7 +191,8 @@ if ($opts{'S'}) {
$stime = floor($stime/$STEP)*$STEP; $stime = floor($stime/$STEP)*$STEP;
if ($g_experiment && $stime < $g_start) { if ($g_experiment && $stime < $g_start) {
warn "Specified start time is prior to start of experiment!\n". warn "Specified start time is prior to start of experiment!\n".
"Truncating to: $g_start\n"; "Truncating to: $g_start\n"
if (!$g_silent);
} else { } else {
$g_start = $stime; $g_start = $stime;
} }
...@@ -203,7 +210,8 @@ if ($opts{'E'}) { ...@@ -203,7 +210,8 @@ if ($opts{'E'}) {
} }
$etime = floor($etime/$STEP)*$STEP; $etime = floor($etime/$STEP)*$STEP;
if ($etime > $g_now) { if ($etime > $g_now) {
warn "End time is in the future! Truncated to: $g_now\n"; warn "End time is in the future! Truncated to: $g_now\n"
if (!$g_silent);
} }
else { else {
$g_end = $etime; $g_end = $etime;
...@@ -245,7 +253,8 @@ sub get_stats($$$;$) { ...@@ -245,7 +253,8 @@ sub get_stats($$$;$) {
RRDs::fetch($rrdfile, $dtype, "--start=$start", "--end=$end", RRDs::fetch($rrdfile, $dtype, "--start=$start", "--end=$end",
"--resolution=$step"); "--resolution=$step");
if (RRDs::error) { if (RRDs::error) {
warn "Could not get interface data from $rrdfile: ". RRDs::error ."\n"; warn "Could not get interface data from $rrdfile: ". RRDs::error ."\n"
if (!$g_silent);
next; next;
} }
my $hasvalues = 0; # track whether or not any data exists. my $hasvalues = 0; # track whether or not any data exists.
...@@ -293,7 +302,8 @@ foreach my $node (@g_nodelist) { ...@@ -293,7 +302,8 @@ foreach my $node (@g_nodelist) {
}; };
if (!-f $mainrrd) { if (!-f $mainrrd) {
warn "Could not find main rrd file ($mainrrd) for $node_id\n"; warn "Could not find main rrd file ($mainrrd) for $node_id\n"
if (!$g_silent);
$nobj->{'main'} = []; # Indicate no data found. $nobj->{'main'} = []; # Indicate no data found.
} }
else { else {
...@@ -307,7 +317,7 @@ foreach my $node (@g_nodelist) { ...@@ -307,7 +317,7 @@ foreach my $node (@g_nodelist) {
$nobj->{'main'} = []; $nobj->{'main'} = [];
} }
} else { } else {
$nobj->{'main'} = $nobj->{'main'}->{($g_valtype eq "MAX" ? "MAX" : "AVG")} =
get_stats($mainrrd, $g_valtype, $mheader, $f_main); get_stats($mainrrd, $g_valtype, $mheader, $f_main);
} }
} }
...@@ -356,7 +366,8 @@ foreach my $node (@g_nodelist) { ...@@ -356,7 +366,8 @@ foreach my $node (@g_nodelist) {
$nobj->{'interfaces'}->{$mac} = []; $nobj->{'interfaces'}->{$mac} = [];
} }
} else { } else {
$nobj->{'interfaces'}->{$mac} = $nobj->{'interfaces'}->{$mac}->{($g_valtype eq
"MAX" ? "MAX" : "AVG")} =
get_stats($intfrrd, $g_valtype, $iheader); get_stats($intfrrd, $g_valtype, $iheader);
} }
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment