sub prefix { 'Davolink_' }
-sub info : Job : MinProcesses(1) : MaxProcesses(5) : Decode(d_array) : Encode(e_json) {
+sub info : Job : MinProcesses(1) : MaxProcesses(20) : Decode(d_array) : Encode(e_json) {
my ( $self, $job, $workload ) = @_;
warn "# workload = ", dump $workload;
my $cpeip = shift @$workload;
},
);
+sub do_background {
+ my ( $self, $func, $args ) = @_;
+ warn "# do_background ", dump( $func, $args );
+ $self->gc->dispatch_background( $func, $args );
+}
+
sub do_background_json {
my ( $self, $func, $args ) = @_;
warn "# do_background_json ", dump( $func, $args );
my $p = Net::Ping->new;
$p->hires;
-sub ping : Job : MinProcesses(1) : MaxProcesses(5) : Encode(e_json) {
+sub ping : Job : MinProcesses(1) : MaxProcesses(50) : Encode(e_json) {
my ( $self, $job, $workload ) = @_;
warn "# ping $job $workload\n";
my ( $ok, $rtt, $ip ) = $p->ping( $workload );
sub by_prefix : Job : MinProcesses(1) : MaxProcesses(1) : Encode(e_json) {
my ( $self, $job, $workload ) = @_;
- $workload ||= 'aa'; # FIXME limit for debugging
-
my $entries = $self->do( 'LDAP_search' => "(&(cn=$workload*)(dhcpStatements=*))" );
my $ip_username;
return { ldap => $ip_username, results => $results };
}
-sub ip_username : Job : MinProcesses(1) : MaxProcesses(1) : Decode(d_array) : Encode(e_json) {
+sub ip_username : Job : MinProcesses(1) : MaxProcesses(20) : Decode(d_array) : Encode(e_json) {
my ( $self, $job, $workload ) = @_;
my ( $ip, $username ) = @$workload;
$ping->{username} = $username;
$self->do_background_json( 'Store_ping', $ping );
+ $self->do_background( 'Davolink_info', "$ip $username adsl" );
+
return $ping;
}
ok my $o = APKPM::Davolink->new, 'new';
-ok my $r = $o->info( 'job', [ '10.16.9.2', 'nobody', 'adsl' ] ), 'info';
+ok my $r = $o->info( 'job', [ $ARGV[0] || '10.16.9.2', $ARGV[1] || 'nobody', 'adsl' ] ), 'info';
diag dump($r);