From 18be7f053b6a7a8cd19a7340466b68f579eb33cd Mon Sep 17 00:00:00 2001 From: Kristian Lyngstol Date: Fri, 1 Jul 2016 16:38:36 +0200 Subject: Implement tags and various other minor tweaks --- web/js/nms-info-box.js | 12 ++++++++ web/js/nms-map-handlers.js | 68 +++++++++++++++++++++++++++++++++------------- web/js/nms-search.js | 2 +- 3 files changed, 62 insertions(+), 20 deletions(-) (limited to 'web/js') diff --git a/web/js/nms-info-box.js b/web/js/nms-info-box.js index ca5b6c7..535069f 100644 --- a/web/js/nms-info-box.js +++ b/web/js/nms-info-box.js @@ -833,12 +833,18 @@ var switchEditPanel = function () { nmsInfoBox._editValues = {}; var place; + var tags; for (var v in swi) { if (v == "placement") { place = JSON.stringify(swi[v]); template[v] = place; continue; } + if (v == "tags") { + tags = JSON.stringify(swi[v]); + template[v] = tags; + continue; + } template[v] = nmsInfoBox._nullBlank(swi[v]); } for (var v in swm) { @@ -895,6 +901,12 @@ var switchEditPanel = function () { pval.value = place; } } + if (tags) { + var ptags = document.getElementById("edit-" + this.sw + "-tags"); + if (ptags) { + ptags.value = tags; + } + } }; this.save = function () { diff --git a/web/js/nms-map-handlers.js b/web/js/nms-map-handlers.js index b88b858..0abad4c 100644 --- a/web/js/nms-map-handlers.js +++ b/web/js/nms-map-handlers.js @@ -135,21 +135,23 @@ function uplinkInfo(sw) ret.score =0; if (testTree(nmsData,['switchstate','switches',sw,'uplinks','live'])) { var u = parseInt(nmsData.switchstate.switches[sw].uplinks.live); + var t = parseInt(nmsData.switchstate.switches[sw].uplinks.total); ret.data[0].value = u; - ret.data[0].description = "Uplinks"; + ret.data[0].description = "Active uplinks"; + ret.data[1] = {}; + ret.data[1].value = t; + ret.data[1].description = "Configured uplinks"; if (nmsData.switches.switches[sw].subnet4 == undefined || nmsData.switches.switches[sw].subnet4 == null) { - if (u == 0) { - ret.score = 700 - ret.why = "0 uplinks with clientnet?"; + if (u == t) { + ret.score = 0 + ret.why = "All uplinks up"; } else if (u == 1) { - ret.score = 600; - ret.why = "Only 1 uplink"; - } else if (u == 2) { - ret.score = 0; + ret.score = 800; + ret.why = "Only 1 of " + t + " uplinks alive"; } else { - ret.score = 500; - ret.why = u + " uplinks"; + ret.score = 650; + ret.why = u + " of " + t + " uplinks alive"; } } } @@ -396,8 +398,8 @@ function pingInfo(sw) if (v4 == undefined && v6 == undefined) { ret.score = 1000; ret.why = "No IPv4 or IPv6 ping reply"; - } else if(v6 == undefined) { - ret.score = 250; + } else if(v6 == undefined && !tagged(sw,'ignorev6')) { + ret.score = 450; ret.why = "No IPv6 ping reply"; } else if (v4 == undefined) { ret.score = 800; @@ -406,6 +408,9 @@ function pingInfo(sw) v4 = parseFloat(v4) ; v6 = parseFloat(v6) ; + if (tagged(sw,'ignorev6')) { + v6 = 0; + } if (v4 > ret.score || v6 > ret.score) { ret.why = "Latency"; ret.score = parseInt(v4 > v6 ? v4 : v6); @@ -491,6 +496,20 @@ function dhcpInfo(sw) { ret.why = "No management data for DHCP"; } } + if (testTree(nmsData,['dhcp','switches',sw,'clients'])) { + ret.data[1] = {}; + ret.data[1].value = nmsData.dhcp.switches[sw].clients; + ret.data[1].description = "Active clients"; + ret.data[2] = {}; + ret.data[2].value = nmsData.dhcp.switches[sw].addresses; + ret.data[2].description = "Active IPs"; + } + if (testTree(nmsData,['switches','switches',sw, 'tags'])) { + if (nmsData.switches.switches[sw].tags.includes('ignoredhcp')) { + ret.score = 0; + ret.why += "(Ignored)"; + } + } return ret; } @@ -635,6 +654,15 @@ function cpuUpdater() { } } +function tagged(sw, tag) { + if (testTree(nmsData,['switches','switches',sw, 'tags'])) { + if (nmsData.switches.switches[sw].tags.includes(tag)) { + return true; + } + } + return false; +} + function mgmtInfo(sw) { var ret = new handlerInfo("mgmt","Management info"); ret.score = 0; @@ -643,16 +671,16 @@ function mgmtInfo(sw) { var mg = nmsData.smanagement.switches[sw]; ret.data = [{ - value: mg.mgmt_v4_addr || "", + value: mg.mgmt_v4_addr || "N/A", description: "Management IP (v4)" }, { - value: mg.mgmt_v6_addr || "", + value: mg.mgmt_v6_addr || "N/A", description: "Management IP (v6)" }, { - value: mg.subnet4 || "", + value: mg.subnet4 || "N/A", description: "Subnet (v4)" }, { - value: mg.subnet6 || "", + value: mg.subnet6 || "N/A", description: "Subnet (v6)" }]; if ((mg.mgmt_v4_addr == undefined || mg.mgmt_v4_addr == "") && (mg.mgmt_v6_addr == undefined || mg.mgmt_v6_addr == "")) { @@ -660,10 +688,13 @@ function mgmtInfo(sw) { ret.score = 1000; } else if (mg.mgmt_v4_addr == undefined || mg.mgmt_v4_addr == "") { ret.why = "No IPv4 management IP"; - ret.score = 140; + ret.score = 550; } else if (mg.mgmt_v6_addr == undefined || mg.mgmt_v6_addr == "") { ret.why = "No IPv6 management IP"; - ret.score = 139; + ret.score = 550; + if (tagged(sw,'ignorev6')) { + ret.score = 0; + } } } else { ret.score = 1000; @@ -673,7 +704,6 @@ function mgmtInfo(sw) { ret.data[0].description = "Management info"; }; return ret; - } function cpuInit() { diff --git a/web/js/nms-search.js b/web/js/nms-search.js index a292814..1167b51 100644 --- a/web/js/nms-search.js +++ b/web/js/nms-search.js @@ -91,7 +91,7 @@ nmsSearch.searchTest = function(id, sw) { if (nmsData.snmp.snmp[sw].misc.entPhysicalSerialNum[x] == "") { continue; } - if (re.test(nmsData.snmp.snmp[sw].misc.entPhysicalSerialNum[x])) { + if (re.test("serial:" + nmsData.snmp.snmp[sw].misc.entPhysicalSerialNum[x])) { return true; } } -- cgit v1.2.3