diff options
Diffstat (limited to 'web/js/nms-info-box.js')
| -rw-r--r-- | web/js/nms-info-box.js | 79 | 
1 files changed, 72 insertions, 7 deletions
diff --git a/web/js/nms-info-box.js b/web/js/nms-info-box.js index 4e8b18d..a7ddfc1 100644 --- a/web/js/nms-info-box.js +++ b/web/js/nms-info-box.js @@ -50,6 +50,10 @@ var nmsInfoBox = nmsInfoBox || {  				'name': 'SNMP',  				'panels': ['switchSNMP:misc']  			}, +			'links': { +				'name': 'Links', +				'panels': ['switchLinks'] +			},  			'edit': {  				'name': 'Edit settings',  				'panels': ['switchEdit'] @@ -125,7 +129,11 @@ var nmsInfoBox = nmsInfoBox || {  			'jnxBoxSerialNo': {  				'name': 'Serial numbers',  				'panels': ['inventoryListing:jnxBoxSerialNo'] -			} +			}, +                        'transceiver': { +                                'name': 'Transceivers', +                                'panels': ['inventoryListing:transceiver'] +                        }  		}  	},  	{ @@ -657,7 +665,13 @@ var switchPortsPanel = function () {  			indicies.push(obj);  		}  		indicies.sort(function(a,b) { -			return snmpJson[a].ifIndex - snmpJson[b].ifIndex; +			var tmpx = [ snmpJson[a].ifName, snmpJson[b].ifName ]; +			tmpx.sort(); +			if (tmpx[0] == snmpJson[a].ifName) { +				return -1; +			} else { +				return 1; +			}  		});  		for(var obji in indicies) {  			var obj = indicies[obji]; @@ -686,7 +700,7 @@ var switchPortsPanel = function () {  				}  			} catch(e) {}; -			groupObj.innerHTML = '<span class="panel-heading" style="display:block;"><a class="collapse-controller" role="button" data-toggle="collapse" href="#'+cleanObj+'-group">' + snmpJson[obj].ifDescr + ' </a><small>' + snmpJson[obj].ifName + '</small><span class="pull-right">' + traffic + '<i class="btn-xs ' + button + '"><span class="glyphicon ' + glyphicon + '" title="' + title + '" aria-hidden="true"></span></i></span></span>'; +			groupObj.innerHTML = '<span class="panel-heading" style="display:block;"><a class="collapse-controller" role="button" data-toggle="collapse" href="#'+cleanObj+'-group">' + snmpJson[obj].ifName + ' </a><small>' + snmpJson[obj].ifAlias + '</small><span class="pull-right">' + traffic + '<i class="btn-xs ' + button + '"><span class="glyphicon ' + glyphicon + '" title="' + title + '" aria-hidden="true"></span></i></span></span>';  			var groupObjCollapse = document.createElement("div");  			groupObjCollapse.id = cleanObj + "-group"; @@ -885,6 +899,9 @@ var inventoryListingPanel = function() {  			case 'jnxBoxSerialNo':  				listTitle = 'Serial Numbers';  				break; +			case 'transceiver': +				listTitle = 'Transceivers'; +				break;  			default:  				listTitle = 'Distro names';  		} @@ -900,15 +917,18 @@ var inventoryListingPanel = function() {  				switch (this.mode) {  					case 'distro_name':  						value = nmsData.switches.switches[sw]["distro_name"]; +						resultArray.push([sw, value]);	  						break;  					case 'sysDescr':  						value = nmsData.snmp.snmp[sw]["misc"]["sysDescr"][0]; +						resultArray.push([sw, value]);  						break;  					case 'jnxBoxSerialNo':  						if(testTree(nmsData,["snmp","snmp",sw,"misc","entPhysicalSerialNum"])) {  							for (var x in nmsData.snmp.snmp[sw]["misc"]["entPhysicalSerialNum"]) {  								value = "misc" + x + ":" + nmsData.snmp.snmp[sw]["misc"]["entPhysicalSerialNum"][x]; -								resultArray.push([sw, value]); +								var entPhysicalDescr = nmsData.snmp.snmp[sw]["misc"]["entPhysicalDescr"][x];  +								resultArray.push([sw, entPhysicalDescr+': '+value]);  							}  						}  						if (testTree(nmsData,["snmp","snmp",sw,"misc","jnxVirtualChassisMemberSerialnumber"])) { @@ -918,11 +938,23 @@ var inventoryListingPanel = function() {  							}  						}  						value = nmsData.snmp.snmp[sw]["misc"]["jnxBoxSerialNo"][0]; +						resultArray.push([sw, value]);  						break; +					case 'transceiver': +                                                if(testTree(nmsData,["snmp","snmp",sw,"misc","entPhysicalSerialNum"])) { +                                                        for (var x in nmsData.snmp.snmp[sw]["misc"]["entPhysicalSerialNum"]) { +								var entPhysicalDescr = nmsData.snmp.snmp[sw]["misc"]["entPhysicalDescr"][x]; +								if(!entPhysicalDescr.match(/^SFP/)) { +									continue; +								} +                                                                value = entPhysicalDescr  + ": " + nmsData.snmp.snmp[sw]["misc"]["entPhysicalSerialNum"][x]; +								resultArray.push([sw, entPhysicalDescr+': '+value]); +                                                        } +                                                } +                                                break; +  				}  			} catch (e) {console.log("sw: " + sw); console.log(e);} - -			resultArray.push([sw, value]);  		}  		resultArray.sort(); @@ -1204,6 +1236,40 @@ nmsInfoBox.setLegendPick = function(tag,id) {  }  nmsInfoBox.addPanelType("switchSummary",switchSummaryPanel); +var switchLinks = function() { +	nmsInfoPanel.call(this,"switchLinks"); +	var latencyChart; +	this.init = function() { +		this.refresh(); +	}; +	this.refresh = function(reason) { +		var content = []; +		if (this.sw == false) { +			console.log("ugh, cleanup failed?"); +			return; +		} +		var sw = this.sw; +		 +		var topp = document.createElement("div") +		var urls = [ "https://gondul.tg.lol/api/templates/magic.conf/switch=" + sw, +			     "http://185.110.148.5/api/templates/magic.conf/switch=" + sw, +			     "http://gondul.tg.lol/api/templates/magic.conf/switch=" + sw ]; +		if (testTree(nmsData,['smanagement','switches',sw])) { +			var mg = nmsData["smanagement"]["switches"][sw]; +			urls.push("ssh://[" + mg.mgmt_v6_addr + "]"); +			urls.push("ssh://" + mg.mgmt_v4_addr); +		} +		for (var x in urls) { +			topp.appendChild(document.createElement("br")); +			var link = document.createElement("a"); +			link.href = urls[x]; +			link.textContent = urls[x]; +			topp.appendChild(link); +		} +		this._render(topp); +	}; +}; +nmsInfoBox.addPanelType("switchLinks",switchLinks);  /*  * Panel type: Add network  * @@ -1258,7 +1324,6 @@ var networkListPanel = function() {  		table.className = "table table-condensed";  		table.id = "searchResults-table"  		for (var net in networks) { -			console.log(networks[net]);  			var row = table.insertRow(net);  			var cell1 = row.insertCell(0);  			var cell2 = row.insertCell(1);  | 
