if ( exists $crm->{logout} ) {
$zte->logout;
$redis->sadd("$variant.$ip.logout", $self->datetime_now);
- return { logout => 'ok' };
+ return "logout ok"; # XXX return scalar!
}
my $port = $crm->{SHELF_SLOT_PORT} || die "no SHELF_SLOT_PORT";
my $username = $crm->{USERNAME} || die "no USERNAME";
- if ( ! $port ) {
- $redis->sadd("$variant.invalid.SHELF_SLOT_PORT" => $username );
- return "invalid port $port";
- }
-
my $hash;
eval { $hash = $zte->hash( $port ) };
my $redis = Redis->new;
$redis->del( $_ ) foreach $redis->keys("$variant.*");
- $redis->set( "$variant.time.start" => $self->datetime_now );
+ $redis->set( "$variant.poll.start" => $self->datetime_now );
foreach my $user ( @$crm ) {
- my $ip = $user->{IP_UREDAJA};
- my $port = $user->{SHELF_SLOT_PORT};
+ # required CRM fields for worker
+ my $ip = $user->{IP_UREDAJA} || next;
+ my $port = $user->{SHELF_SLOT_PORT} || next;
+ my $username = $user->{USERNAME} || next;
if ( $ip !~ /$RE{net}{IPv4}/ ) {
$redis->sadd("$variant.invalid.IP_UREDAJA" => $ip);
next;
} elsif ( $port !~ m{\d+(/\d+)+} ) {
- $redis->sadd("$variant.$ip.invalid.PORT" => $port);
+ $redis->sadd("$variant.$ip.invalid.SHELF_SLOT_PORT" => $port);
+ next;
+ } elsif ( ! $username ) {
+ $redis->sadd("$variant.$ip.invalid.USERNAME" => $port);
next;
} elsif ( $seen->{ $ip }->{ $port }++ ) {
- $redis->sadd("$variant.$ip.duplicate" => $port);
+ $redis->sadd("$variant.$ip.invalid.duplicate" => $port);
next;
}
- $redis->incr("$variant.queued");
+
+ $redis->incr("$variant.poll.queued");
$redis->sadd("$variant.$ip.queued" => $port);
my $name = $variant . '_' . $ip;
warn "# wait";
$taskset->wait;
- $redis->set( "$variant.time.finish" => $self->datetime_now );
+ $redis->set( "$variant.poll.finish" => $self->datetime_now );
warn "# seen ", dump($seen);
my $ips = scalar keys %$seen;