Merge "Fixed run.sh to autodetect JAVA_HOME on Mac OS X"
[controller.git] / opendaylight / web / troubleshoot / src / main / java / org / opendaylight / controller / troubleshoot / web / Troubleshoot.java
index f5fda3d1bc8fe245323d3cb8666a185e9753472a..71ba687f2d4b16e22c43de7586f6d75c7119b7ac 100644 (file)
@@ -24,6 +24,7 @@ import org.opendaylight.controller.sal.action.Output;
 import org.opendaylight.controller.sal.action.SetVlanId;
 import org.opendaylight.controller.sal.authorization.Privilege;
 import org.opendaylight.controller.sal.authorization.UserLevel;
+import org.opendaylight.controller.sal.core.Description;
 import org.opendaylight.controller.sal.core.Node;
 import org.opendaylight.controller.sal.core.NodeConnector;
 import org.opendaylight.controller.sal.core.TimeStamp;
@@ -109,7 +110,7 @@ public class Troubleshoot implements IDaylightWeb {
             if (nodeSet != null) {
                 for (Node node : nodeSet) {
                     Map<String, String> device = new HashMap<String, String>();
-                    device.put("nodeName", switchManager.getNodeDescription(node));
+                    device.put("nodeName", getNodeDesc(node, switchManager));
                     device.put("nodeId", node.toString());
                     lines.add(device);
                 }
@@ -139,7 +140,7 @@ public class Troubleshoot implements IDaylightWeb {
             if (nodeSet != null) {
                 for (Node node : nodeSet) {
                     Map<String, String> device = new HashMap<String, String>();
-                    device.put("nodeName", switchManager.getNodeDescription(node));
+                    device.put("nodeName", getNodeDesc(node, switchManager));
                     device.put("nodeId", node.toString());
                     TimeStamp timeStamp = (TimeStamp) switchManager.getNodeProp(
                             node, TimeStamp.TimeStampPropName);
@@ -207,7 +208,7 @@ public class Troubleshoot implements IDaylightWeb {
                 List<NodeConnectorStatistics> statistics = statisticsManager
                         .getNodeConnectorStatistics(node);
                 for (NodeConnectorStatistics stats : statistics) {
-                    cells.add(this.convertPortsStatistics(stats));
+                    cells.add(this.convertPortsStatistics(stats, containerName));
                 }
             }
         }
@@ -219,11 +220,19 @@ public class Troubleshoot implements IDaylightWeb {
     }
 
     private Map<String, String> convertPortsStatistics(
-            NodeConnectorStatistics ncStats) {
+            NodeConnectorStatistics ncStats, String containerName) {
         Map<String, String> row = new HashMap<String, String>();
 
+        ISwitchManager switchManager = (ISwitchManager) ServiceHelper
+                .getInstance(ISwitchManager.class, containerName, this);
+        NodeConnector nodeConnector = ncStats.getNodeConnector();
+        Description description = (Description) switchManager.getNodeProp(nodeConnector.getNode(), Description.propertyName);
+        String desc = (description == null) ? "" : description.getValue();
+        String nodeName = desc.equalsIgnoreCase("none") ? nodeConnector.getNode().getNodeIDString() : desc;
+        String nodeConnectorDisplayName = nodeConnector.getType() + "|" + nodeConnector.getID() + "@" + nodeName;
         row.put("nodeConnector",
-                String.valueOf(ncStats.getNodeConnector().toString()));
+                String.valueOf(nodeConnectorDisplayName));
+
         row.put("rxPkts", String.valueOf(ncStats.getReceivePacketCount()));
         row.put("txPkts", String.valueOf(ncStats.getTransmitPacketCount()));
         row.put("rxBytes", String.valueOf(ncStats.getReceiveByteCount()));
@@ -251,10 +260,9 @@ public class Troubleshoot implements IDaylightWeb {
         Match match = flow.getMatch();
         ISwitchManager switchManager = (ISwitchManager) ServiceHelper
                 .getInstance(ISwitchManager.class, containerName, this);
-        String desc = (switchManager == null)?
-                        "" : switchManager.getNodeDescription(node);
-        desc = (desc.isEmpty() || desc.equalsIgnoreCase("none"))?
-                        node.toString(): desc;
+        String desc = getNodeDesc(node, switchManager);
+        desc = (desc == null || desc.isEmpty() || desc.equalsIgnoreCase("none"))?
+                        node.toString() : desc;
         row.put("nodeName", desc);
         if (match.isPresent(MatchType.IN_PORT)) {
             row.put(MatchType.IN_PORT.id(), ((NodeConnector) flow.getMatch()
@@ -368,4 +376,11 @@ public class Troubleshoot implements IDaylightWeb {
         return row;
     }
 
+    private String getNodeDesc(Node node, ISwitchManager switchManager) {
+        if (switchManager == null) {
+            return null;
+        }
+        Description desc = (Description) switchManager.getNodeProp(node, Description.propertyName);
+        return (desc == null) ? "" : desc.getValue();
+    }
 }