Collectd.pm: Use $interval_g instead of a hard-coded value.
authorSebastian Harl <sh@tokkee.org>
Tue, 29 Jan 2008 01:12:17 +0000 (02:12 +0100)
committerFlorian Forster <octo@huhu.verplant.org>
Mon, 4 Feb 2008 16:40:24 +0000 (17:40 +0100)
The hard-coded value was still legacy code from the time before the global
variables have been exported to Perl.

Signed-off-by: Sebastian Harl <sh@tokkee.org>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
bindings/perl/Collectd.pm

index fc4a69d..4377570 100644 (file)
@@ -87,6 +87,10 @@ our %EXPORT_TAGS = (
                foreach keys %EXPORT_TAGS;
 }
 
+# global variables
+our $hostname_g;
+our $interval_g;
+
 Exporter::export_ok_tags ('all');
 
 my @plugins : shared = ();
@@ -146,8 +150,7 @@ sub plugin_call_all {
                my $status = 0;
 
                if ($p->{'wait_left'} > 0) {
-                       # TODO: use interval_g
-                       $p->{'wait_left'} -= 10;
+                       $p->{'wait_left'} -= $interval_g;
                }
 
                next if ($p->{'wait_left'} > 0);
@@ -174,11 +177,12 @@ sub plugin_call_all {
 
                if ($status) {
                        $p->{'wait_left'} = 0;
-                       $p->{'wait_time'} = 10;
+                       $p->{'wait_time'} = $interval_g;
                }
                elsif (TYPE_READ == $type) {
-                       WARNING ("${plugin}->read() failed with status $status. "
-                               . "Will suspend it for $p->{'wait_left'} seconds.");
+                       if ($p->{'wait_time'} < $interval_g) {
+                               $p->{'wait_time'} = $interval_g;
+                       }
 
                        $p->{'wait_left'} = $p->{'wait_time'};
                        $p->{'wait_time'} *= 2;
@@ -186,6 +190,9 @@ sub plugin_call_all {
                        if ($p->{'wait_time'} > 86400) {
                                $p->{'wait_time'} = 86400;
                        }
+
+                       WARNING ("${plugin}->read() failed with status $status. "
+                               . "Will suspend it for $p->{'wait_left'} seconds.");
                }
                elsif (TYPE_INIT == $type) {
                        ERROR ("${plugin}->init() failed with status $status. "
@@ -243,9 +250,8 @@ sub plugin_register {
                        $data = $pkg . "::" . $data;
                }
 
-               # TODO: make interval_g available at configuration time
                %p = (
-                       wait_time => 10,
+                       wait_time => $interval_g,
                        wait_left => 0,
                        cb_name   => $data,
                );