aboutsummaryrefslogtreecommitdiffstats
path: root/web/api/public/dhcp
blob: 88f1eb5f1ae80381e904c41a630c35a0046443bc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#! /usr/bin/perl
# vim:ts=8:sw=8

use lib '/opt/gondul/include';
use nms::web qw (%json finalize_output);
use strict;
use warnings;
use Data::Dumper;

nms::web::setwhen('60m');
my $q = $nms::web::dbh->prepare('select distinct on (sysname) extract(epoch from date_trunc(\'second\',time)) as time,sysname from dhcp join switches on dhcp.switch = switches.switch where ' . $nms::web::when . ' order by sysname,time desc;');
$q->execute();
while ( my $ref = $q->fetchrow_hashref() ) {
	my $sysname = $ref->{'sysname'};
	$json{'dhcp'}{$ref->{'sysname'}} = $ref->{'time'};
}
my $q2 = $nms::web::dbh->prepare("select sysname,count(distinct mac) as clients,count(distinct ip) as addresses,count(mac) as acks from dhcp natural join switches where $nms::web::when group by switches.sysname;");
$q2->execute();
while (my $ref = $q2->fetchrow_hashref()) {
	$nms::web::json{'switches'}{$ref->{sysname}} = $ref;
}

$nms::web::cc{'max-age'} = "10";
$nms::web::cc{'stale-while-revalidate'} = "30";
finalize_output();