use lib 'lib';
use H1::EasyGateway;
+use H1::Davolink;
with 'APKPM::Gearman::Client';
with 'APKPM::Gearman';
my $vendor = $1;
- $taskset->add_task('CPE_ping', "$ip $username $vendor", {
+ $taskset->add_task('CPE_info', "$ip $username $vendor", {
on_complete => sub { push @$results, ${$_[0]} }
});
$redis->sadd('CPE.queued' => $ip);
return $poll;
}
-sub ping : Job : Decode(d_array) : Encode(e_json) {
+sub info : Job : Decode(d_array) : Encode(e_json) {
my ( $self, $job, $workload ) = @_;
my ( $ip, $username, $vendor ) = @$workload;
});
if ( $vendor =~ m/SAMSUNG/ ) {
- $redis->sadd( 'CPE.Davolink.queued' => $username );
- $self->do( 'Davolink_info', "$ip $username adsl" );
+ $vendor = 'Davolink';
} elsif ( $vendor =~ m/zte/ ) {
- $redis->sadd( 'CPE.EasyGateway.queued' => $ip );
+ $vendor = 'EasyGateway';
+ } else {
+ $redis->sadd( 'CPE.skipped' => $username );
+ $vendor = undef;
+ }
- my $ret = eval { H1::EasyGateway->info( $ip ) };
+ if ( $vendor ) {
+ $redis->sadd( "CPE.$vendor.queued" => $ip );
- if ( $ret ) {
+ my $module = 'H1::' . $vendor;
+ my $ret = eval { $module->info( $ip ) };
+
+ warn "# $module ",dump($ret);
+ if ( $ret ) {
$self->do_background_json( 'Store_insert', {
- _table => 'easygateway',
+ _table => $vendor,
ip => $ip,
- username => delete $ret->{customerName},
+ username => $username,
timestamp => $self->datetime_now,
h => $self->to_hstore( $ret ),
});
-
- $redis->sadd( 'CPE.EasyGateway.ok' => $ip );
-
+ $redis->sadd( "CPE.$vendor.ok" => $ip );
} else {
- $redis->sadd( 'CPE.EasyGateway.error' => $ip );
+ $redis->sadd( "CPE.$vendor.error" => $ip );
}
-
- } else {
- $redis->sadd( 'CPE.skipped' => $username );
}
return { ip => $ip, rtt => $rtt };