setup min_processes to 0 for all workers
[APKPM.git] / lib / APKPM / Davolink.pm
index d9b4832..c802021 100644 (file)
@@ -9,17 +9,21 @@ with 'APKPM::Config';
 with 'APKPM::Gearman::Client';
 with 'APKPM::Gearman';
 
+use Redis;
+
 use lib '/opt/managment_tools/lib';
 use H1::Davolink;
 
 sub prefix { 'Davolink_' }
 
-sub info : Job : MinProcesses(1) : MaxProcesses(60) : Decode(d_array) : Encode(e_json) {
+sub info : Job : Decode(d_array) : Encode(e_json) {
        my ( $self, $job, $workload ) = @_;
        warn "# workload = ", dump $workload;
        my $cpeip = shift @$workload;
        my $username = shift @$workload;
 
+       unshift @$workload, 'adsl'; # add default
+
        return { error => "invalid workload", expected => 'cpe.ip username (uptime|adsl|wan|routes)', workload => $workload } unless $cpeip && $username;
 
        my $cpeconnect=H1::Davolink->new($cpeip,$self->config('iadusername'),$self->config('iadpasswd'));
@@ -30,9 +34,15 @@ sub info : Job : MinProcesses(1) : MaxProcesses(60) : Decode(d_array) : Encode(e
                        $ret->{UPTIME} = $cpeconnect->custom("cat /proc/uptime");
                } elsif ( $param =~ m/adsl/i ) {
                        $ret->{ADSL} = { $cpeconnect->adsl_info };
-                       $self->do_background_json( 'Store_ADSL', $ret );
+                       $self->do_background_json( 'Store_insert', {
+                               _table => 'davolink',
+                               ip => $cpeip,
+                               username => $username,
+                               timestamp => $self->datetime_now,
+                               %{$ret->{ADSL}}
+                       });
                        my $redis = Redis->new;
-                       $redis->sadd( 'poll.adsl.ok' => $cpeip );
+                       $redis->sadd( 'CPE.Davolink.ok' => $cpeip );
                } elsif ( $param =~ m/wan/i ) {
                        $ret->{WAN} = [ $cpeconnect->wan_info ];
                } elsif ( $param =~ m/route/i ) {