+ nodeDatum.put("mode", modeStr);
+
+ nodeDatum.put("json", gson.toJson(nodeDatum));
+ nodeDatum.put("mac", HexEncode.bytesToHexString(device.getDataLayerAddress()));
+ StringBuffer sb1 = new StringBuffer();
+ Set<NodeConnector> nodeConnectorSet = device.getNodeConnectors();
+ if (nodeConnectorSet != null && nodeConnectorSet.size() > 0) {
+ Map<Short, String> portList = new HashMap<Short, String>();
+ List<String> intfList = new ArrayList<String>();
+ for (NodeConnector nodeConnector : nodeConnectorSet) {
+ String nodeConnectorNumberToStr = nodeConnector.getID().toString();
+ Name ncName = ((Name) switchManager.getNodeConnectorProp(nodeConnector, Name.NamePropName));
+ Config portStatus = ((Config) switchManager
+ .getNodeConnectorProp(nodeConnector,
+ Config.ConfigPropName));
+ State portState = ((State) switchManager
+ .getNodeConnectorProp(nodeConnector,
+ State.StatePropName));
+ String nodeConnectorName = (ncName != null) ? ncName
+ .getValue() : "";
+ nodeConnectorName += " (" + nodeConnector.getID() + ")";
+
+ if (portStatus != null) {
+ if (portStatus.getValue() == Config.ADMIN_UP) {
+ if (portState.getValue() == State.EDGE_UP) {
+ nodeConnectorName = "<span class='admin-up'>"
+ + nodeConnectorName + "</span>";
+ } else if (portState.getValue() == State.EDGE_DOWN) {
+ nodeConnectorName = "<span class='edge-down'>"
+ + nodeConnectorName + "</span>";
+ }
+ } else if (portStatus.getValue() == Config.ADMIN_DOWN) {
+ nodeConnectorName = "<span class='admin-down'>"
+ + nodeConnectorName + "</span>";
+ }
+ }
+
+ Class<?> idClass = nodeConnector.getID().getClass();
+ if (idClass.equals(Short.class)) {
+ portList.put(
+ Short.parseShort(nodeConnectorNumberToStr),
+ nodeConnectorName);
+ } else {
+ intfList.add(nodeConnectorName);
+ }
+ }
+
+ if (portList.size() > 0) {
+ Map<Short, String> sortedPortList = new TreeMap<Short, String>(
+ portList);
+
+ for (Entry<Short, String> e : sortedPortList.entrySet()) {
+ sb1.append(e.getValue());
+ sb1.append("<br>");
+ }
+ } else if (intfList.size() > 0) {
+ for (String intf : intfList) {
+ sb1.append(intf);
+ sb1.append("<br>");
+ }
+ }
+ }
+ nodeDatum.put("ports", sb1.toString());
+ nodeData.add(nodeDatum);