Fix Device Port Status
[controller.git] / opendaylight / web / devices / src / main / java / org / opendaylight / controller / devices / web / Devices.java
index f451204d36d8941b523add7ac0e5a85ac126c698..4c31dee54225f0350bb3568ddea671ec787571fa 100644 (file)
@@ -30,6 +30,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
 import org.opendaylight.controller.forwarding.staticrouting.IForwardingStaticRouting;
 import org.opendaylight.controller.forwarding.staticrouting.StaticRouteConfig;
 import org.opendaylight.controller.sal.authorization.UserLevel;
+import org.opendaylight.controller.sal.core.Config;
 import org.opendaylight.controller.sal.core.Name;
 import org.opendaylight.controller.sal.core.Node;
 import org.opendaylight.controller.sal.core.NodeConnector;
@@ -111,23 +112,33 @@ public class Devices implements IDaylightWeb {
                     HexEncode.bytesToHexString(device.getDataLayerAddress()));
             StringBuffer sb1 = new StringBuffer();
             Set<NodeConnector> nodeConnectorSet = device.getNodeConnectors();
-            String nodeConnectorName;
-            String nodeConnectorNumberToStr;
             if (nodeConnectorSet != null && nodeConnectorSet.size() > 0) {
                 Map<Short, String> portList = new HashMap<Short, String>();
                 for (NodeConnector nodeConnector : nodeConnectorSet) {
-                    nodeConnectorNumberToStr = nodeConnector.getID().toString();
+                    String nodeConnectorNumberToStr = nodeConnector.getID().toString();
                     Name ncName = ((Name) switchManager.getNodeConnectorProp(
                             nodeConnector, Name.NamePropName));
-                    nodeConnectorName = (ncName != null) ? ncName.getValue()
+                    Config portStatus = ((Config) switchManager
+                            .getNodeConnectorProp(nodeConnector,
+                                    Config.ConfigPropName));
+                    
+                    String nodeConnectorName = (ncName != null) ? ncName.getValue()
                             : "";
+                    nodeConnectorName += " ("+nodeConnector.getID()+")";
+                    if (portStatus.getValue() == Config.ADMIN_UP) {
+                        nodeConnectorName = "<span style='color:green;'>"+nodeConnectorName+"</span>";
+                    } else if (portStatus.getValue() == Config.ADMIN_DOWN) {
+                        nodeConnectorName = "<span style='color:red;'>"+nodeConnectorName+"</span>";
+                    }
+                    
                     portList.put(Short.parseShort(nodeConnectorNumberToStr),
                             nodeConnectorName);
                 }
-                Map<Short, String> sortedPortList = new TreeMap<Short, String>(
-                        portList);
+
+                Map<Short, String> sortedPortList = new TreeMap<Short, String>(portList);
+
                 for (Entry<Short, String> e : sortedPortList.entrySet()) {
-                    sb1.append(e.getValue() + "(" + e.getKey() + ")");
+                    sb1.append(e.getValue());
                     sb1.append("<br>");
                 }
             }
@@ -142,6 +153,7 @@ public class Devices implements IDaylightWeb {
         columnNames.add("Tier");
         columnNames.add("Mac Address");
         columnNames.add("Ports");
+        columnNames.add("Port Status");
 
         result.setColumnNames(columnNames);
         return result;