my ( $ip, $username, $vendor ) = @$workload;
- my ( $ret );
-
my $redis = Redis->new;
return { error => "invalid workload", expected => "ip username" } unless $ip && $username;
$vendor = undef;
}
- if ( $vendor ) {
- $redis->sadd( "CPE.$vendor.queued" => $ip );
-
- my $module = 'H1::' . $vendor;
- $ret = eval { $module->info( $ip ) };
-
- warn "# $module ",dump($ret);
-
- if ( $ret ) {
- $self->do_background_json( 'Store_insert', {
- _table => 'cpe_' . $vendor,
- ip => $ip,
- username => $username,
- timestamp => $self->datetime_now,
- h => $ret,
- });
- $redis->sadd( "CPE.$vendor.ok" => $ip );
- } else {
- $redis->sadd( "CPE.$vendor.error" => $ip );
- }
- }
+ my $ret = $self->_vendor( $vendor, $ip, $username, $redis ) if $vendor;
return { ip => $ip, rtt => $rtt, h => $ret };
}
+sub vendor_ip_user : Job : Encode(e_json) {
+ my ( $self, $job, $workload ) = @_;
+ my ( $vendor, $ip, $username ) = split(/\s+/,$workload);
+
+ $self->_vendor( $vendor, $ip, $username );
+}
+
+sub _vendor {
+ my ( $self, $vendor, $ip, $username, $redis ) = @_;
+
+ $redis ||= Redis->new;
+
+ $redis->sadd( "CPE.$vendor.queued" => $ip );
+
+ my $module = 'H1::' . $vendor;
+ my $ret = eval { $module->info( $ip ) };
+
+ warn "# $module ",dump($ret);
+
+ if ( $ret ) {
+ $self->do_background_json( 'Store_insert', {
+ _table => 'cpe_' . $vendor,
+ ip => $ip,
+ username => $username,
+ timestamp => $self->datetime_now,
+ h => $ret,
+ });
+ $redis->sadd( "CPE.$vendor.ok" => $ip );
+ } else {
+ $redis->sadd( "CPE.$vendor.error" => $ip );
+ }
+
+ return $ret;
+}
1;