better redis CPE stats
[APKPM.git] / lib / APKPM / CPE.pm
index e87ad70..96848c2 100644 (file)
@@ -29,7 +29,7 @@ sub poll : Job : Encode(e_json) {
 
        foreach my $entry ( @$entries ) {
 
-               my $username = $entry->{cn};
+               my $username = $entry->{cn} || die "no cn in ", dump($entry);
 
                if ( $entry->{dhcpStatements} !~ m/fixed-address\s+(\S+)/ ) {
                        $redis->sadd('CPE.error.no-ip' => $username);
@@ -49,7 +49,8 @@ sub poll : Job : Encode(e_json) {
                });
                $redis->sadd('CPE.queued' => $ip);
 
-               $redis->sadd("_CPE.$vendor" => $ip); # FIXME
+               $vendor =~ s/\s+/_/g; # sadd dies on spaces in keys
+               $redis->sadd("CPE.vendor.$vendor" => $ip); # FIXME
        }
 
        warn "# wait";
@@ -103,13 +104,13 @@ sub ping : Job : Decode(d_array) : Encode(e_json) {
        });
 
        if ( $vendor =~ m/SAMSUNG/ ) {
-               $redis->sadd( 'CPE.vendor.SAMSUNG' => $username );
+               $redis->sadd( 'CPE.Davolink' => $username );
                $self->do_background( 'Davolink_info', "$ip $username adsl" );
        } elsif ( $vendor =~ m/zte/ ) {
-               $redis->sadd( 'CPE.vendor.ZTE' => $username );
+               $redis->sadd( 'CPE.EasyGateway' => $username );
                $self->do_background( 'EasyGateway_info', $ip );
        } else {
-               $redis->sadd( 'CPE.vendor.error' => $username );
+               $redis->sadd( 'CPE.skipped' => $username );
        }
 
        return { ip => $ip, rtt => $rtt };