return errors from ping
authorDobrica Pavlinusic <dpavlin@rot13.org>
Fri, 11 Mar 2011 20:06:53 +0000 (21:06 +0100)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Fri, 11 Mar 2011 20:06:53 +0000 (21:06 +0100)
lib/APKPM.pm

index aa5c739..051159b 100644 (file)
@@ -20,12 +20,13 @@ sub process_name {
 my $p = Net::Ping->new;
 $p->hires;
 
-sub ping : Job : MinProcesses(1) : MaxProcesses(5) {
+sub ping : Job : MinProcesses(1) : MaxProcesses(5) : Encode {
        my ( $self, $job, $workload ) = @_;
        warn "# ping $job $workload\n";
-       my ( $ok, $t, $ip ) = $p->ping( $workload );
-       warn "# $ok $t $ip\n";
-       return $t;
+       my ( $ok, $rtt, $ip ) = $p->ping( $workload );
+       return { error => $workload } unless $ok;
+       warn "# ping $ip $rtt $ok";
+       return { ip => $ip, rtt => $rtt };
 }
 
 sub inc_foo : Job : MinProcesses(1) : MaxProcesses(5) : Encode : Decode {
@@ -37,11 +38,13 @@ sub inc_foo : Job : MinProcesses(1) : MaxProcesses(5) : Encode : Decode {
 
 sub encode {
        my ( $self, $result ) = @_;
+       warn "# encode ",dump $result;
        return JSON::XS::encode_json($result);
 }
 
 sub decode {
        my ( $self, $workload ) = @_;
+       warn "# decode ", dump $workload;
        return JSON::XS::decode_json($workload);
 }