--- lib/PXElator/httpd.pm 2010/01/23 18:31:14 482 +++ lib/PXElator/httpd.pm 2010/01/25 18:30:47 493 @@ -18,6 +18,7 @@ #use JSON; use IO::Socket::INET; use Regexp::Common qw/net/; +use POSIX qw(strftime); our $title; @@ -50,7 +51,6 @@ use log; use x11; use amt; -use boolean; use daemons; use kvm; @@ -67,8 +67,8 @@ sub menu { - my $couch_url = $url; - $couch_url =~ s{:\d+.+}{:5984/_utils/}; + my $store_url = $url; + $store_url =~ s{:\d+.+}{:28017}; qq{
home @@ -77,7 +77,8 @@ brctl ip | -couchdb +MongoDB +latest | nmap client @@ -145,6 +146,11 @@ qq|HTTP/1.1 302 Found\r\nContent-type: text/html\r\nLocation: $to\r\n\r\n| } +sub toggle { + my $v = shift; + return $v ? 0 : 1; +} + sub get_request { my ( $client, $path, $param ) = @_; @@ -241,7 +247,7 @@ eval '$server::' . $name . '= $param->{$name}'; } my @table = ( - 'debug' => qq|$debug|, + 'debug' => qq|$debug|, , 'new_clients' => qq|| ); @@ -264,6 +270,55 @@ | ; + } elsif ( $path =~ m{^/store/latest} ) { + print $client ok + , qq| + + | + , qq|| + ; + my ( $s1,$s2 ) = ( ' class=z', '' ); + my @cols; + + store::query( sub { + my $o = shift; + my $p = delete( $o->{package} ); + delete( $o->{_id} ); + + if ( ! @cols ) { + #@cols = keys %$p; + @cols = qw( time name ); + print $client qq|| + ; + } + + # XXX sigh, dump dies if we don't do this +# delete $o->{$_} foreach ( grep { ! defined $o->{$_} } keys %$o ); + + print $client qq|| + , strftime( qq||, localtime($p->{time}) ) + , map { qq|\n| + ; + ( $s1, $s2 ) = ( $s2, $s1 ); + }); + print $client qq|
| + , join(qq||, @cols) + , qq|
%H:%M:%S$_| } ( $p->{name} , html::pre_dump($o) ) + , qq|
|; + } elsif ( $path =~ m!^/client(?:/$RE{net}{IPv4}{-keep})?! ) { my $ip = $1; $title = $ip if $ip;