From e7022dcbe2863f0e682f1200de9ed81ef00e2103 Mon Sep 17 00:00:00 2001 From: Kristian Lyngstol Date: Sun, 22 May 2016 22:42:14 +0200 Subject: front: Live search and tweaked mgmt info Fixes #2 Also, since I didn't bother splitting the commits, this tweaks the information provided from the snmp handler and management handler. Notably treating IPv4 and IPv6 management addresses as equals. --- web/js/nms-map-handlers.js | 45 ++++++++++++++++++++++++++++++++++----------- web/js/nms-search.js | 16 ++++++++++++++++ 2 files changed, 50 insertions(+), 11 deletions(-) (limited to 'web/js') diff --git a/web/js/nms-map-handlers.js b/web/js/nms-map-handlers.js index 439459f..09d2525 100644 --- a/web/js/nms-map-handlers.js +++ b/web/js/nms-map-handlers.js @@ -447,6 +447,21 @@ function snmpUpdater() { } } } + +function secondsToTime(input) { + var h, m, s; + h = Math.floor(input / 60 / 60); + m = Math.floor((input%3600)/60); + s = Math.floor(input%60); + var string = ""; + if (h > 0) + string = h + " hours "; + if (h > 0 || m > 0) + string += m + " minutes "; + if (string == "") + string += s + " seconds"; + return string; +} function snmpInfo(sw) { var ret = new handlerInfo("snmp","SNMP data"); ret.why = "No data"; @@ -455,7 +470,7 @@ function snmpInfo(sw) { ret.why = "No data"; ret.data[0].value = "No data"; } else if (nmsData.snmp.snmp[sw].misc.sysName[0] != sw) { - ret.score = 300; + ret.score = 200; ret.why = "SNMP sysName doesn't match Gondul sysname"; ret.data[0].value = ret.why; } else { @@ -464,10 +479,18 @@ function snmpInfo(sw) { ret.why = "SNMP all good"; } try { - var uptime = nmsData.snmp.snmp[this.sw]["misc"]["sysUpTimeInstance"][""] / 60 / 60 / 100; - uptime = Math.floor(uptime) + " t"; - ret.data.push({value: uptime, description: "System uptime"}); - } catch(e){} + var uptime = parseInt(nmsData.snmp.snmp[sw]["misc"]["sysUpTimeInstance"][""]) / 100; + var upstring = secondsToTime(uptime); + ret.data.push({value: upstring, description: "System uptime"}); + if (uptime < 60*5 && ret.score < 500) { + ret.score = 500; + ret.why = "System rebooted last 5 minutes"; + } + if (uptime < 60*15 && ret.score < 250) { + ret.score = 250; + ret.why = "System rebooted last 15 minutes"; + } + } catch(e){ } return ret; } @@ -505,20 +528,20 @@ function mgmtInfo(sw) { var mg = nmsData.smanagement.switches[sw]; ret.data = [{ - value: mg.mgmt_v4_addr || "N/A", + value: mg.mgmt_v4_addr || "", description: "Management IP (v4)" }, { - value: mg.mgmt_v6_addr || "N/A", + value: mg.mgmt_v6_addr || "", description: "Management IP (v6)" }, { - value: mg.subnet4 || "N/A", + value: mg.subnet4 || "", description: "Subnet (v4)" }, { - value: mg.subnet6 || "N/A", + value: mg.subnet6 || "", description: "Subnet (v6)" }]; - if (mg.mgmt_v4_addr == undefined || mg.mgmt_v4_addr == "") { - ret.why = "No IPv4 mamagement IP"; + if ((mg.mgmt_v4_addr == undefined || mg.mgmt_v4_addr == "") && (mg.mgmt_v6_addr == undefined || mg.mgmt_v6_addr == "")) { + ret.why = "No IPv4 or IPv6 mamagement IP"; ret.score = 1000; } } catch(e) { diff --git a/web/js/nms-search.js b/web/js/nms-search.js index 7d4c9a6..748c8c2 100644 --- a/web/js/nms-search.js +++ b/web/js/nms-search.js @@ -1,6 +1,8 @@ "use strict"; var nmsSearch = nmsSearch || { + _handler: false, + _lastId: false }; nmsSearch.helpText = [ @@ -91,6 +93,18 @@ nmsSearch.reset = function() { nmsSearch.search(); } +nmsSearch._enableTimer = function() { + if (nmsSearch._handler == false) { + nmsSearch._handler = setInterval(nmsSearch.search,1000); + } +} + +nmsSearch._disableTimer = function() { + if (nmsSearch._handler != false) { + clearInterval(nmsSearch.search); + } +} + nmsSearch.search = function() { var el = document.getElementById("searchbox"); var id = false; @@ -108,7 +122,9 @@ nmsSearch.search = function() { nmsMap.setSwitchHighlight(sw,false); } } + nmsSearch._enableTimer(); } else { + nmsSearch._disableTimer(); nmsMap.disableHighlights(); } if(matches.length == 1) { -- cgit v1.2.3