aboutsummaryrefslogtreecommitdiffstats
path: root/web
diff options
context:
space:
mode:
Diffstat (limited to 'web')
-rwxr-xr-xweb/api/public/switch-state18
-rwxr-xr-xweb/api/read/switches-management8
-rw-r--r--web/js/nms-map-handlers.js40
3 files changed, 49 insertions, 17 deletions
diff --git a/web/api/public/switch-state b/web/api/public/switch-state
index 919924e..528bf7d 100755
--- a/web/api/public/switch-state
+++ b/web/api/public/switch-state
@@ -7,17 +7,19 @@ use strict;
use warnings;
use Data::Dumper;
-my $target = $ENV{REQUEST_URI};
-$target =~ s/$ENV{SCRIPT_NAME}//;
-$target =~ s/^\///;
-my ($switch, $port) = split(/\//,$target,2);
+#my $target = $ENV{REQUEST_URI};
+#$target =~ s/$ENV{SCRIPT_NAME}//;
+#$target =~ s/^\///;
+#my ($switch, $port) = split(/\//,$target,2);
+my $port;
+my $switch;
my $q;
-if (!defined($switch)) {
+#if (!defined($switch)) {
$q = $nms::web::dbh->prepare('select sysname,extract(epoch from date_trunc(\'second\',time)) as time,data from snmp natural join switches where id in (select max(id) from snmp where ' . $nms::web::when . ' group by switch) and switches.deleted = \'f\' and not switches.tags \?& array[\'ignoreswitchstate\'];');
-} else {
- $q = $nms::web::dbh->prepare('select sysname,extract(epoch from date_trunc(\'second\',time)) as time,data from snmp natural join switches where id in (select max(id) from snmp where ' . $nms::web::when . 'group by switch) and sysname = ' . $nms::web::dbh->quote($switch) . ';');
-}
+#} else {
+# $q = $nms::web::dbh->prepare('select sysname,extract(epoch from date_trunc(\'second\',time)) as time,data from snmp natural join switches where id in (select max(id) from snmp where ' . $nms::web::when . 'group by switch) and sysname = ' . $nms::web::dbh->quote($switch) . ';');
+#}
$q->execute();
while ( my $ref = $q->fetchrow_hashref() ) {
diff --git a/web/api/read/switches-management b/web/api/read/switches-management
index c734eef..b42c84b 100755
--- a/web/api/read/switches-management
+++ b/web/api/read/switches-management
@@ -13,7 +13,13 @@ use Data::Dumper;
my $target = $ENV{REQUEST_URI};
$target =~ s/$ENV{SCRIPT_NAME}//;
$target =~ s/^\///;
-my ($switch, $port) = split(/\//,$target,2);
+my $switch;
+my $port;
+
+if ($target !~ m/now=/) {
+ ($switch, $port) = split(/\//,$target,2);
+}
+
my $q2;
$nms::web::cc{'max-age'} = "5";
diff --git a/web/js/nms-map-handlers.js b/web/js/nms-map-handlers.js
index 5b39fa3..ba20e03 100644
--- a/web/js/nms-map-handlers.js
+++ b/web/js/nms-map-handlers.js
@@ -146,7 +146,7 @@ var handlers = [
function uplinkInfo(sw)
{
- var ret = new handlerInfo("uplink","Uplinks");
+ var ret = new handlerInfo("snmpup","Uplinks");
ret.why = "Uplinks";
ret.score = 0;
var u = 0;
@@ -188,7 +188,7 @@ function uplinkInfo(sw)
}
}
}
- if (testTree(nmsData,['switchstate','switches',sw,'clients','live'])) {
+ if (testTree(nmsData,['switchstate','switches',sw,'clients','total'])) {
var tu = parseInt(nmsData.switchstate.switches[sw].clients.live);
var tt = parseInt(nmsData.switchstate.switches[sw].clients.total);
ret.data[1] = {};
@@ -547,11 +547,21 @@ function dhcpInfo(sw) {
if (!testTree(nmsData,['dhcp','dhcp']) || !testTree(nmsData,['switches','switches']) || !testTree(nmsData,['smanagement','switches'])) {
return ret.data[1] = {};
}
+ var dhcpClients = 0;
+ var clientPortsUp = 0;
+ var clientPortsUp = setTree(nmsData,['switchstate','switches',sw,'clients','live'],0);
+ var clientPortsTotal = setTree(nmsData,['switchstate','switches',sw,'clients','total'],0);
+ if (testTree(nmsData,['dhcp','networks',nmsData.smanagement.switches[sw].traffic_vlan,'clients'])) {
+ dhcpClients = nmsData.dhcp.networks[nmsData.smanagement.switches[sw].traffic_vlan].clients;
+ }
if (testTree(nmsData,['dhcp','dhcp',nmsData.smanagement.switches[sw].traffic_vlan])) {
var now = nmsData.dhcp.time;
var then = nmsData.dhcp.dhcp[nmsData.smanagement.switches[sw].traffic_vlan];
var diff = now - then;
var divider = 6;
+ if (dhcpClients < 10) {
+ divider = 12;
+ }
if(tagged(sw,'slowdhcp')) {
divider = 12;
}
@@ -568,8 +578,12 @@ function dhcpInfo(sw) {
ret.score = 0;
ret.why = "No network associated";
} else {
- ret.score = 350;
- ret.why = "No DHCP data";
+ if (!(clientPortsUp < 2 && clientPortsTotal > 20)) {
+ ret.score = 350;
+ ret.why = "No DHCP data";
+ } else {
+ ret.data[0].value = "No DHCP data, but too few clients anyway";
+ }
}
} else {
ret.score = 100;
@@ -577,10 +591,20 @@ function dhcpInfo(sw) {
}
}
if (testTree(nmsData,['dhcp','networks',nmsData.smanagement.switches[sw].traffic_vlan,'clients'])) {
+ var dhcpClients = nmsData.dhcp.networks[nmsData.smanagement.switches[sw].traffic_vlan].clients;
ret.data[1] = {};
ret.data[1].value = nmsData.dhcp.networks[nmsData.smanagement.switches[sw].traffic_vlan].clients;
- console.log()
ret.data[1].description = "DHCP clients";
+ if (testTree(nmsData,['switchstate','switches',sw,'clients','live'])) {
+ var tu = parseInt(nmsData.switchstate.switches[sw].clients.live);
+ var tt = parseInt(nmsData.switchstate.switches[sw].clients.total);
+ if (tu - dhcpClients > 5) {
+ if (ret.score < 450) {
+ ret.score = 450;
+ ret.why = "Far more client ports than dhcp clients";
+ }
+ }
+ }
}
if (testTree(nmsData,['switches','switches',sw, 'tags'])) {
if (tagged(sw,'ignoredhcp')) {
@@ -721,7 +745,7 @@ function snmpInit() {
}
function snmpUpInfo(sw) {
- var ret = new handlerInfo("snmpup","SNMP uplink data");
+ var ret = new handlerInfo("uplink","SNMP uplink data");
ret.why = "No SNMP data";
ret.score = 0;
@@ -820,9 +844,9 @@ function memoryInfo(sw) {
var local = nmsData.snmp.snmp[sw].misc['jnxOperatingBuffer'][u];
memory = Math.max(nmsData.snmp.snmp[sw].misc.jnxOperatingBuffer[u],memory);
}
- if (memory < 30) {
+ if (memory < 70) {
ret.score = 0;
- } else if (memory < 60) {
+ } else if (memory < 80) {
ret.score = 100;
} else if (memory < 90) {
ret.score = memory * 2;