--- lib/PXElator/httpd.pm 2010/01/23 20:47:17 487
+++ lib/PXElator/httpd.pm 2010/08/26 19:29:18 522
@@ -18,7 +18,7 @@
#use JSON;
use IO::Socket::INET;
use Regexp::Common qw/net/;
-use YAML;
+use POSIX qw(strftime);
our $title;
@@ -77,8 +77,8 @@
brctl
ip
|
-store
-query
+MongoDB
+latest
|
nmap
client
@@ -270,20 +270,65 @@
|
;
- } elsif ( $path =~ m{^/store/query} ) {
+ } elsif ( $path =~ m{^/store/latest} ) {
print $client ok
+ , qq|
+
+ |
, qq|
|
;
- store::query( sub {
+ my ( $s1,$s2 ) = ( ' class=z', '' );
+ my @cols;
+
+ my $from_t = $param->{from_t};
+
+ my $q;
+ $q->{'package.time'} = { '$lt' => $from_t * 1 } if $from_t;
+# $q->{'package.name'} = { '$ne' => 'syslogd' };
+ $q->{'package.name'} = { '$ne' => 'dhcpd' };
+# $q->{'package.name'} = { '$ne' => [ 'dhcpd', 'dnsd' ] };
+ $q->{'tag'} = { '$ne' => 'CRON' };
+ store::query( $q, sub {
my $o = shift;
my $p = delete( $o->{package} );
delete( $o->{_id} );
+
+ if ( ! @cols ) {
+ #@cols = keys %$p;
+ @cols = qw( time name );
+ print $client qq||
+ , join(qq| | |, @cols)
+ , qq| | |
|
+ ;
+ }
+
# XXX sigh, dump dies if we don't do this
- my $tmp = delete( $o->{param} );
- $o->{param} = $tmp if defined $tmp;
- print $client qq||, join(qq| | |, map { $p->{$_} } keys %$p ), qq| | |, dump( $o ), qq| |
\n|;
+# delete $o->{$_} foreach ( grep { ! defined $o->{$_} } keys %$o );
+
+ print $client qq||
+ , strftime( qq|%H:%M:%S | |, localtime($p->{time}) )
+ , map { qq|$_ | | } ( $p->{name} , html::pre_dump($o) )
+ , qq| |
\n|
+ ;
+ ( $s1, $s2 ) = ( $s2, $s1 );
+ $from_t = $p->{time};
});
- print $client qq|
|;
+ print $client qq||,
+ qq|more|
+ ;
} elsif ( $path =~ m!^/client(?:/$RE{net}{IPv4}{-keep})?! ) {
my $ip = $1;
@@ -379,7 +424,9 @@
my $mac = delete $conf->{mac} || '';
my $dev = $arp->{$mac};
- next unless $dev || $param->{all};
+ my $in_dhcp_range = ip::in_dhcp_range($ip);
+
+ next unless $dev || $param->{all} || $in_dhcp_range;
my $style
= 'style="color:'
@@ -389,7 +436,7 @@
$style ||= '';
my $ip_text = qq|$ip|;
- $ip_text = qq|$ip| if ip::in_dhcp_range($ip);
+ $ip_text = qq|$ip| if $in_dhcp_range;
$dev = qq|$dev| if $dev;