1 package APKPM::EasyGateway;
3 use base qw(Gearman::Driver::Worker);
6 use Data::Dump qw(dump);
9 with 'APKPM::Gearman::Client';
10 with 'APKPM::Gearman';
15 sub prefix { 'EasyGateway_' }
17 sub info : Job : Encode(e_json) {
18 my ( $self, $job, $workload ) = @_;
19 warn "# workload = ", dump $workload;
23 return { error => "invalid workload", expected => 'cpe.ip', workload => $workload } unless $ip;
28 ->service('http://10.99.0.74:9090/cpews/services/Cpe112DiagnosisSoapImpl?WSDL');
30 my $out = $soap->getWanDslStatus( "IP=$ip" );
32 $ret->{$_} = $out->{$_} foreach keys %$out;
34 my $out = $soap->getCpeBasicInfo( "IP=$ip" ); # mac, username, uptime
36 foreach ( keys %$out ) {
37 next unless defined $out->{$_}; # skip undef values
38 $ret->{$_} = $out->{$_};
41 $self->do_background_json( 'Store_insert', {
42 _table => 'easygateway',
44 username => $ret->{customerName},
45 timestamp => $self->datetime_now,
46 h => $self->to_hstore( $ret ),
49 my $redis = Redis->new;
50 $redis->sadd( 'CPE.EasyGateway.ok' => $ip );