diff options
| author | Kristian Lyngstol <kly@kly.no> | 2016-07-01 16:38:36 +0200 | 
|---|---|---|
| committer | Kristian Lyngstol <kly@kly.no> | 2016-07-01 16:38:36 +0200 | 
| commit | 18be7f053b6a7a8cd19a7340466b68f579eb33cd (patch) | |
| tree | 5b340a37751ea9c9da799ba124cd0a9a4f4e8344 /web/js | |
| parent | f3e530f42e350f17f42cf3f8f0f310f433effef9 (diff) | |
Implement tags and various other minor tweaks
Diffstat (limited to 'web/js')
| -rw-r--r-- | web/js/nms-info-box.js | 12 | ||||
| -rw-r--r-- | web/js/nms-map-handlers.js | 68 | ||||
| -rw-r--r-- | web/js/nms-search.js | 2 | 
3 files changed, 62 insertions, 20 deletions
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;  				}  			}  | 
