use Moose;
use Time::HiRes;
use Data::Dump qw(dump);
+use Redis;
with 'APKPM::Gearman::Client';
with 'APKPM::Gearman';
$ip_username->{ $entry->{cn} } = $1 if $entry->{dhcpStatements} =~ m/fixed-address\s+(\S+)/;
}
+ my $redis = Redis->new;
+ $redis->del( $_ ) foreach $redis->keys('poll.*');
+
my $taskset = $self->gc->new_task_set;
my $results;
while (my ($username,$ip) = each %$ip_username) {
$taskset->add_task('poll_ip_username', "$ip $username", {
on_complete => sub { push @$results, ${$_[0]} }
});
+ $redis->sadd('poll.queued' => $ip);
}
warn "# wait";
return { error => "invalid workload", expected => "ip username" } unless $ip && $username;
my $ping = $self->do('ping', $ip);
+ my $redis = Redis->new;
+
if ( exists $ping->{error} ) {
+warn "XXX error: $ip";
+ $redis->sadd( 'poll.ping.error' => $ip );
return $ping;
+ } else {
+ $redis->sadd( 'poll.ping.ok' => $ip );
}
$ping->{username} = $username;