diff options
Diffstat (limited to 'web/js/nms-map-handlers.js')
-rw-r--r-- | web/js/nms-map-handlers.js | 99 |
1 files changed, 64 insertions, 35 deletions
diff --git a/web/js/nms-map-handlers.js b/web/js/nms-map-handlers.js index 03ee2ea..275e5e2 100644 --- a/web/js/nms-map-handlers.js +++ b/web/js/nms-map-handlers.js @@ -200,7 +200,7 @@ function uplinkInfo(sw) var tu = parseInt(nmsData.switchstate.switches[sw].clients.live); var tt = parseInt(nmsData.switchstate.switches[sw].clients.total); ret.data[1] = {}; - ret.data[1].value = (tu && tt) ? (tu) + " / " + (tt) : "None configured"; + ret.data[1].value = tt ? (tu) + " / " + (tt) : "None configured"; ret.data[1].description = "Client ports (live/total)"; } if (testTree(nmsData,['switchstate','switches',sw,'totals','live'])) { @@ -432,6 +432,36 @@ function pingUpdater() } } } +function printDiff(t) +{ + var str = ""; + if (t.d > 1) + str = t.d + " days"; + else if (t.d == 1) + str = t.d + " day"; + + if (t.h > 1) + str += " " + t.h + " hours"; + else if (t.h == 1) + str += " " + t.h + " hour"; + else if (t.d > 0) + str += " 0 hours"; + + if (t.m > 1) + str += " " + t.m + " minutes"; + else if (t.m == 1) + str += " " + t.m + " minute"; + else if (t.d > 0 || t.h > 0) + str += " 0 minutes"; + + if (t.s > 1) + str += " " + t.s + " seconds"; + else if (t.s == 1) + str += " " + t.s + " second"; + else if (t.d > 0 || t.h > 0 || t.m > 0) + str += " 0 seconds"; + return str; +} function pingInfo(sw) { @@ -445,11 +475,8 @@ function pingInfo(sw) v4 = undefined; if (v6 == undefined || v6 == null || isNaN(v6)) v6 = undefined; - ret.data[0].value = v4; - ret.data[0].description = "IPv4 latency(ms)"; - ret.data[1] = {}; - ret.data[1].value = v6; - ret.data[1].description = "IPv6 latency(ms)"; + ret.data[0].value = v6 + " (v4: " + v4 + " )"; + ret.data[0].description = "Latency(ms)"; if (v4 == undefined && v6 == undefined) { ret.score = 1000; ret.why = "No IPv4 or IPv6 ping reply"; @@ -485,6 +512,9 @@ function pingInfo(sw) var distro = nmsData['smanagement']['switches'][sw]['distro_name']; var phy = nmsData['smanagement']['switches'][sw]['distro_phy_port']; if (!(distro == "" || phy == "" || distro == undefined || phy == undefined)) { + ret.data[3] = {}; + ret.data[3].description = "Distro-port"; + ret.data[3].value = distro + " " + phy; if (testTree(nmsData,['snmp','snmp',distro, 'ports',phy,'ifOperStatus'])) { var x = nmsData['snmp']['snmp'][distro]['ports'][phy]['ifOperStatus']; var ping = "no"; @@ -494,13 +524,30 @@ function pingInfo(sw) ping6 = parseFloat(nmsData["ping"]["switches"][sw]["latency6"]); } catch(e) {} if (x == "up") { - ret.data[3] = {}; - ret.data[3].description = "Distro-port"; - ret.data[3].value = "Distro port is live"; + ret.data[3].value += " (😇 up!)"; if (isNaN(ping) && isNaN(ping6)) { ret.score = 700; - ret.why = "Distro port is alive, but no IPv4/IPv6 ping. ROLLBACK!"; + ret.why = "Distro port is alive, but no IPv4/IPv6 ping."; + if (testTree(nmsData,['snmp','snmp',distro, 'ports',phy,'ifLastChange'])) { + if (testTree(nmsData,['snmp','snmp',distro, 'misc','sysUpTimeInstance'])) { + ret.data[4] = {}; + ret.data[4].description = 'Distro port changed'; + diff = (parseInt(nmsData['snmp']['snmp'][distro]['misc']['sysUpTimeInstance']['']) - parseInt(nmsData['snmp']['snmp'][distro]['ports'][phy]['ifLastChange'])) / 100; + var diff2 = { + d:parseInt((diff/60/60/24)), + h:parseInt((diff/60/60)%24), + m:parseInt((diff/60)%60), + s:parseInt(diff%60) + } + + + + ret.data[4].value = printDiff(diff2); + } + } } + } else { + ret.data[3].value += " (👺down)"; } } } @@ -545,7 +592,7 @@ function dhcpUpdater() var c = nmsColor.blue; var sv4 = nmsData.dhcp.dhcp4[nmsData.smanagement.switches[sw].traffic_vlan]; var sv6 = nmsData.dhcp.dhcp6[nmsData.smanagement.switches[sw].traffic_vlan]; - if (sv4 == undefined || sv6 == undefined) { + if (sv4 == undefined && sv6 == undefined) { nmsMap.setSwitchColor(sw,c); continue; } @@ -580,7 +627,7 @@ function dhcpInfo(sw) { var now = nmsData.dhcp.time; var then = nmsData.dhcp.dhcp4[nmsData.smanagement.switches[sw].traffic_vlan]; var diff = now - then; - var divider = 6; + var divider = 10; if (dhcpClients < 10) { divider = 12; } @@ -616,7 +663,7 @@ function dhcpInfo(sw) { var now = nmsData.dhcp.time; var then = nmsData.dhcp.dhcp6[nmsData.smanagement.switches[sw].traffic_vlan]; var diff = now - then; - var divider = 6; + var divider = 10; if (dhcpClients < 10) { divider = 12; } @@ -958,30 +1005,18 @@ function networkInfo(sw) { } ret.data[i++] = { - value: a.v.name || "Not set", + value: (a.v.name || "Not set") + " " + "vlan: " + (a.v.vlan || "Not set"), description: a.d + " network" } - ret.data[i++] = { - value: a.v.vlan || "Not set", - description: a.d + " vlan" - } ret.data[i++] = { value: a.v.subnet4 || "Not set", description: a.d + " subnet IPv4" } ret.data[i++] = { - value: a.v.gw4 || "Not set", - description: a.d + " gw IPv4" - } - ret.data[i++] = { value: a.v.subnet6 || "Not set", description: a.d + " subnet IPv6" } ret.data[i++] = { - value: a.v.gw6 || "Not set", - description: a.d + " gw IPv6" - } - ret.data[i++] = { value: a.v.router || "Not set", description: a.d + " net router" } @@ -997,14 +1032,8 @@ function mgmtInfo(sw) { var mg = nmsData.smanagement.switches[sw]; ret.data = [{ - value: mg.mgmt_v4_addr || "N/A", - description: "Management IP (v4)" - }, { - value: mg.mgmt_v6_addr || "N/A", - description: "Management IP (v6)" - }, { - value: mg.distro_name || "N/A", - description: "Distro" + value: (mg.mgmt_v4_addr || "N/A") + " / " + (mg.mgmt_v6_addr || "N/A"), + description: "Management IP" } ]; if ((mg.mgmt_v4_addr == undefined || mg.mgmt_v4_addr == "") && (mg.mgmt_v6_addr == undefined || mg.mgmt_v6_addr == "")) { @@ -1015,7 +1044,7 @@ function mgmtInfo(sw) { ret.score = 550; } else if (mg.mgmt_v6_addr == undefined || mg.mgmt_v6_addr == "") { ret.why = "No IPv6 management IP"; - ret.score = 550; + ret.score = 560; if (tagged(sw,'ignorev6')) { ret.score = 0; } |