watchdog is now configurable
Tyler Riddle [Wed, 3 Oct 2012 17:13:42 +0000 (10:13 -0700)]
lib/System/Introspector/Config.pm
lib/System/Introspector/Gatherer.pm
lib/System/Introspector/State.pm

index f5a0199..560cba7 100644 (file)
@@ -25,6 +25,8 @@ sub host_logs { $_[0]->config->{host_logs} }
 
 sub host_concurrency { $_[0]->config->{host_concurrency} }
 
+sub watchdog_timeout { $_[0]->config->{watchdog_timeout} }
+
 my $_load_host_file = sub {
     my ($self, $path) = @_;
     my $full_path = join '/', dirname($self->config_file), $path;
index a67db62..41efe97 100644 (file)
@@ -10,7 +10,7 @@ use System::Introspector::Logger qw( :log :dlog );
 
 has introspectors => (is => 'ro', required => 1);
 has stderr_fh => ( is => 'ro' ); 
-has watchdog_timeout => ( is => 'ro', default => sub { 300 } );
+has watchdog_timeout => ( is => 'ro' );
 
 sub gather_all {
     my ($self) = @_;
@@ -64,7 +64,10 @@ sub new_from_spec {
     my ($user, $host, $sudo_user) = @arg{qw( user host sudo_user )};
     my $sudo = defined($sudo_user) ? sprintf('%s@', $sudo_user) : undef;
     my $args = { introspectors => $arg{introspectors} };
-    my %connection_args = ( stderr => $arg{stderr_fh} ); 
+    
+    Dlog_trace { "Arguments for gatherer object: $_" } $args;
+    
+    my %connection_args = ( stderr => $arg{stderr_fh}, watchdog_timeout => $arg{watchdog_timeout} );
     if (defined $host) {
         my $remote = join '@', grep defined, $user, $host;
         my $conn = Object::Remote::Connection->conn_from_spec($remote, %connection_args);
index f2f5f7f..d48d8c7 100644 (file)
@@ -179,6 +179,7 @@ sub _create_gatherer {
     my $gatherer = System::Introspector::Gatherer->new_from_spec(
         user          => $self->user,
         stderr_fh     => $stderr_fh,
+        watchdog_timeout => $self->config->watchdog_timeout,
         host          => $arg{host},
         sudo_user     => $arg{sudo} && $self->sudo_user,
         introspectors => $arg{introspectors},