Revert "Checkstyle enforcer"
[controller.git] / opendaylight / web / troubleshoot / src / main / java / org / opendaylight / controller / troubleshoot / web / Troubleshoot.java
index c2d96148793efe68a4b2b3a5c3131786668cc4df..f145c568b58b18bf62efdda84eadbadefb5934b7 100644 (file)
@@ -16,6 +16,8 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Set;
 
+import javax.servlet.http.HttpServletRequest;
+
 import org.opendaylight.controller.sal.action.Action;
 import org.opendaylight.controller.sal.action.Output;
 import org.opendaylight.controller.sal.action.SetVlanId;
@@ -32,10 +34,12 @@ import org.opendaylight.controller.sal.utils.EtherTypes;
 import org.opendaylight.controller.sal.utils.GlobalConstants;
 import org.opendaylight.controller.sal.utils.HexEncode;
 import org.opendaylight.controller.sal.utils.IPProtocols;
+import org.opendaylight.controller.sal.utils.NetUtils;
 import org.opendaylight.controller.sal.utils.ServiceHelper;
 import org.opendaylight.controller.statisticsmanager.IStatisticsManager;
 import org.opendaylight.controller.switchmanager.ISwitchManager;
-import org.opendaylight.controller.web.IOneWeb;
+import org.opendaylight.controller.web.DaylightWebUtil;
+import org.opendaylight.controller.web.IDaylightWeb;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
@@ -44,15 +48,14 @@ import org.springframework.web.bind.annotation.ResponseBody;
 
 @Controller
 @RequestMapping("/")
-public class Troubleshoot implements IOneWeb {
+public class Troubleshoot implements IDaylightWeb {
     private static final UserLevel AUTH_LEVEL = UserLevel.CONTAINERUSER;
     private final String WEB_NAME = "Troubleshoot";
     private final String WEB_ID = "troubleshoot";
     private final short WEB_ORDER = 4;
-    private final String containerName = GlobalConstants.DEFAULT.toString();
 
     public Troubleshoot() {
-        ServiceHelper.registerGlobalService(IOneWeb.class, this, null);
+        ServiceHelper.registerGlobalService(IDaylightWeb.class, this, null);
     }
 
     @Override
@@ -77,7 +80,8 @@ public class Troubleshoot implements IOneWeb {
 
     @RequestMapping(value = "/existingNodes", method = RequestMethod.GET)
     @ResponseBody
-    public TroubleshootingJsonBean getExistingNodes() {
+    public TroubleshootingJsonBean getExistingNodes(HttpServletRequest request, @RequestParam(required = false) String container) {
+        String containerName = DaylightWebUtil.getAuthorizedContainer(request, container, this);
         ISwitchManager switchManager = (ISwitchManager) ServiceHelper
                 .getInstance(ISwitchManager.class, containerName, this);
         List<HashMap<String, String>> lines = new ArrayList<HashMap<String, String>>();
@@ -107,7 +111,8 @@ public class Troubleshoot implements IOneWeb {
 
     @RequestMapping(value = "/uptime", method = RequestMethod.GET)
     @ResponseBody
-    public TroubleshootingJsonBean getUptime() {
+    public TroubleshootingJsonBean getUptime(HttpServletRequest request, @RequestParam(required = false) String container) {
+        String containerName = DaylightWebUtil.getAuthorizedContainer(request, container, this);
         ISwitchManager switchManager = (ISwitchManager) ServiceHelper
                 .getInstance(ISwitchManager.class, containerName, this);
         List<HashMap<String, String>> lines = new ArrayList<HashMap<String, String>>();
@@ -143,15 +148,17 @@ public class Troubleshoot implements IOneWeb {
     @RequestMapping(value = "/flowStats", method = RequestMethod.GET)
     @ResponseBody
     public TroubleshootingJsonBean getFlowStats(
-            @RequestParam("nodeId") String nodeId) {
+            @RequestParam("nodeId") String nodeId,
+            HttpServletRequest request, @RequestParam(required = false) String container) {
         Node node = Node.fromString(nodeId);
         List<HashMap<String, String>> cells = new ArrayList<HashMap<String, String>>();
+        String containerName = DaylightWebUtil.getAuthorizedContainer(request, container, this);
         IStatisticsManager statisticsManager = (IStatisticsManager) ServiceHelper
                 .getInstance(IStatisticsManager.class, containerName, this);
 
         List<FlowOnNode> statistics = statisticsManager.getFlows(node);
         for (FlowOnNode stats : statistics) {
-            cells.add(this.convertFlowStatistics(node, stats));
+            cells.add(this.convertFlowStatistics(node, stats, containerName));
         }
         List<String> columnNames = new ArrayList<String>();
         columnNames.addAll(Arrays.asList(new String[] { "Node", "In Port",
@@ -168,9 +175,11 @@ public class Troubleshoot implements IOneWeb {
     @RequestMapping(value = "/portStats", method = RequestMethod.GET)
     @ResponseBody
     public TroubleshootingJsonBean getPortStats(
-            @RequestParam("nodeId") String nodeId) {
+            @RequestParam("nodeId") String nodeId,
+            HttpServletRequest request, @RequestParam(required = false) String container) {
         Node node = Node.fromString(nodeId);
         List<HashMap<String, String>> cells = new ArrayList<HashMap<String, String>>();
+        String containerName = DaylightWebUtil.getAuthorizedContainer(request, container, this);
         IStatisticsManager statisticsManager = (IStatisticsManager) ServiceHelper
                 .getInstance(IStatisticsManager.class, containerName, this);
         List<NodeConnectorStatistics> statistics = statisticsManager
@@ -215,7 +224,8 @@ public class Troubleshoot implements IOneWeb {
     }
 
     private HashMap<String, String> convertFlowStatistics(Node node,
-            FlowOnNode flowOnNode) {
+            FlowOnNode flowOnNode,
+            String containerName) {
         HashMap<String, String> row = new HashMap<String, String>();
         Flow flow = flowOnNode.getFlow();
         Match match = flow.getMatch();
@@ -228,7 +238,8 @@ public class Troubleshoot implements IOneWeb {
         row.put("nodeName", desc);
         if (match.isPresent(MatchType.IN_PORT)) {
             row.put(MatchType.IN_PORT.id(), ((NodeConnector) flow.getMatch()
-                    .getField(MatchType.IN_PORT).getValue()).getID().toString());
+                    .getField(MatchType.IN_PORT).getValue())
+                    .getNodeConnectorIdAsString());
         } else {
             row.put(MatchType.IN_PORT.id(), "*");
         }
@@ -288,26 +299,16 @@ public class Troubleshoot implements IOneWeb {
         if (match.isPresent(MatchType.TP_SRC)) {
             Short tpSrc = (Short) (flow.getMatch().getField(MatchType.TP_SRC)
                     .getValue());
-            if (tpSrc < 0) {
-                row.put(MatchType.TP_SRC.id(),
-                        ((Integer) (tpSrc.intValue() & 0x7FFF | 0x8000))
-                                .toString());
-            } else {
-                row.put(MatchType.TP_SRC.id(), tpSrc.toString());
-            }
+            row.put(MatchType.TP_SRC.id(),
+                       String.valueOf(NetUtils.getUnsignedShort(tpSrc)));
         } else {
             row.put(MatchType.TP_SRC.id(), "*");
         }
         if (match.isPresent(MatchType.TP_DST)) {
             Short tpDst = (Short) (flow.getMatch().getField(MatchType.TP_DST)
                     .getValue());
-            if (tpDst < 0) {
-                row.put(MatchType.TP_DST.id(),
-                        ((Integer) (tpDst.intValue() & 0x7FFF | 0x8000))
-                                .toString());
-            } else {
-                row.put(MatchType.TP_DST.id(), tpDst.toString());
-            }
+            row.put(MatchType.TP_DST.id(),
+                       String.valueOf(NetUtils.getUnsignedShort(tpDst)));
         } else {
             row.put(MatchType.TP_DST.id(), "*");
         }