X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fweb%2Fdevices%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fdevices%2Fweb%2FDevices.java;h=6987ea9827547783e10da1f2af4ca4d0d1f8b5ea;hb=223620094a190aa5f747078d7d84d05a064e4eb9;hp=4e08f99bfd411aab360999092045cfa48da0c663;hpb=1415e57c132459f962afcc976da3b72c28a5702b;p=controller.git diff --git a/opendaylight/web/devices/src/main/java/org/opendaylight/controller/devices/web/Devices.java b/opendaylight/web/devices/src/main/java/org/opendaylight/controller/devices/web/Devices.java index 4e08f99bfd..6987ea9827 100644 --- a/opendaylight/web/devices/src/main/java/org/opendaylight/controller/devices/web/Devices.java +++ b/opendaylight/web/devices/src/main/java/org/opendaylight/controller/devices/web/Devices.java @@ -8,6 +8,7 @@ package org.opendaylight.controller.devices.web; +import java.lang.reflect.Type; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; @@ -54,6 +55,7 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; @Controller @RequestMapping("/") @@ -89,11 +91,9 @@ public class Devices implements IDaylightWeb { @RequestMapping(value = "/nodesLearnt", method = RequestMethod.GET) @ResponseBody - public DevicesJsonBean getNodesLearnt(HttpServletRequest request, - @RequestParam(required = false) String container) { + public DevicesJsonBean getNodesLearnt(HttpServletRequest request, @RequestParam(required = false) String container) { Gson gson = new Gson(); - String containerName = (container == null) ? GlobalConstants.DEFAULT - .toString() : container; + String containerName = (container == null) ? GlobalConstants.DEFAULT.toString() : container; // Derive the privilege this user has on the current container String userName = request.getUserPrincipal().getName(); @@ -130,7 +130,7 @@ public class Devices implements IDaylightWeb { nodeDatum.put("mode", modeStr); nodeDatum.put("json", gson.toJson(nodeDatum)); - nodeDatum.put("mac", HexEncode.bytesToHexString(device.getDataLayerAddress())); + nodeDatum.put("mac", HexEncode.bytesToHexStringFormat(device.getDataLayerAddress())); StringBuffer sb1 = new StringBuffer(); Set nodeConnectorSet = device.getNodeConnectors(); if (nodeConnectorSet != null && nodeConnectorSet.size() > 0) { @@ -139,44 +139,35 @@ public class Devices implements IDaylightWeb { 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() : ""; + 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 = "" - + nodeConnectorName + ""; + nodeConnectorName = "" + nodeConnectorName + ""; } else if (portState.getValue() == State.EDGE_DOWN) { - nodeConnectorName = "" - + nodeConnectorName + ""; + nodeConnectorName = "" + nodeConnectorName + ""; } } else if (portStatus.getValue() == Config.ADMIN_DOWN) { - nodeConnectorName = "" - + nodeConnectorName + ""; + nodeConnectorName = "" + nodeConnectorName + ""; } } Class idClass = nodeConnector.getID().getClass(); if (idClass.equals(Short.class)) { - portList.put( - Short.parseShort(nodeConnectorNumberToStr), - nodeConnectorName); + portList.put(Short.parseShort(nodeConnectorNumberToStr), nodeConnectorName); } else { intfList.add(nodeConnectorName); } } if (portList.size() > 0) { - Map sortedPortList = new TreeMap( - portList); + Map sortedPortList = new TreeMap(portList); for (Entry e : sortedPortList.entrySet()) { sb1.append(e.getValue()); @@ -217,27 +208,22 @@ public class Devices implements IDaylightWeb { @RequestMapping(value = "/nodesLearnt/update", method = RequestMethod.GET) @ResponseBody - public StatusJsonBean updateLearntNode( - @RequestParam("nodeName") String nodeName, - @RequestParam("nodeId") String nodeId, - @RequestParam("tier") String tier, - @RequestParam("operationMode") String operationMode, - HttpServletRequest request, + public StatusJsonBean updateLearntNode(@RequestParam("nodeName") String nodeName, + @RequestParam("nodeId") String nodeId, @RequestParam("tier") String tier, + @RequestParam("operationMode") String operationMode, HttpServletRequest request, @RequestParam(required = false) String container) { - String containerName = (container == null) ? GlobalConstants.DEFAULT - .toString() : container; + String containerName = (container == null) ? GlobalConstants.DEFAULT.toString() : container; // Authorization check String userName = request.getUserPrincipal().getName(); - if (DaylightWebUtil - .getContainerPrivilege(userName, containerName, this) != Privilege.WRITE) { + if (DaylightWebUtil.getContainerPrivilege(userName, containerName, this) != Privilege.WRITE) { return unauthorizedMessage(); } StatusJsonBean resultBean = new StatusJsonBean(); try { - ISwitchManager switchManager = (ISwitchManager) ServiceHelper - .getInstance(ISwitchManager.class, containerName, this); + ISwitchManager switchManager = (ISwitchManager) ServiceHelper.getInstance(ISwitchManager.class, + containerName, this); Map nodeProperties = new HashMap(); Property desc = new Description(nodeName); nodeProperties.put(desc.getName(), desc); @@ -255,37 +241,33 @@ public class Devices implements IDaylightWeb { } else { resultBean.setStatus(true); resultBean.setMessage("Updated node information successfully"); - DaylightWebUtil.auditlog("Node", userName, "updated", nodeId + " to "+ nodeName, containerName); + DaylightWebUtil.auditlog("Property", userName, "updated", + "of Node " + DaylightWebUtil.getNodeDesc(Node.fromString(nodeId), switchManager)); } } catch (Exception e) { resultBean.setStatus(false); - resultBean.setMessage("Error updating node information. " - + e.getMessage()); + resultBean.setMessage("Error updating node information. " + e.getMessage()); } return resultBean; } @RequestMapping(value = "/staticRoutes", method = RequestMethod.GET) @ResponseBody - public DevicesJsonBean getStaticRoutes(HttpServletRequest request, - @RequestParam(required = false) String container) { + public DevicesJsonBean getStaticRoutes(HttpServletRequest request, @RequestParam(required = false) String container) { Gson gson = new Gson(); - String containerName = (container == null) ? GlobalConstants.DEFAULT - .toString() : container; + String containerName = (container == null) ? GlobalConstants.DEFAULT.toString() : container; // Derive the privilege this user has on the current container String userName = request.getUserPrincipal().getName(); Privilege privilege = DaylightWebUtil.getContainerPrivilege(userName, containerName, this); - IForwardingStaticRouting staticRouting = (IForwardingStaticRouting) ServiceHelper - .getInstance(IForwardingStaticRouting.class, containerName, - this); + IForwardingStaticRouting staticRouting = (IForwardingStaticRouting) ServiceHelper.getInstance( + IForwardingStaticRouting.class, containerName, this); if (staticRouting == null) { return null; } List> staticRoutes = new ArrayList>(); - ConcurrentMap routeConfigs = staticRouting - .getStaticRouteConfigs(); + ConcurrentMap routeConfigs = staticRouting.getStaticRouteConfigs(); if (routeConfigs == null) { return null; } @@ -309,27 +291,21 @@ public class Devices implements IDaylightWeb { @RequestMapping(value = "/staticRoute/add", method = RequestMethod.GET) @ResponseBody - public StatusJsonBean addStaticRoute( - @RequestParam("routeName") String routeName, - @RequestParam("staticRoute") String staticRoute, - @RequestParam("nextHop") String nextHop, - HttpServletRequest request, - @RequestParam(required = false) String container) { - String containerName = (container == null) ? GlobalConstants.DEFAULT - .toString() : container; + public StatusJsonBean addStaticRoute(@RequestParam("routeName") String routeName, + @RequestParam("staticRoute") String staticRoute, @RequestParam("nextHop") String nextHop, + HttpServletRequest request, @RequestParam(required = false) String container) { + String containerName = (container == null) ? GlobalConstants.DEFAULT.toString() : container; // Authorization check String userName = request.getUserPrincipal().getName(); - if (DaylightWebUtil - .getContainerPrivilege(userName, containerName, this) != Privilege.WRITE) { + if (DaylightWebUtil.getContainerPrivilege(userName, containerName, this) != Privilege.WRITE) { return unauthorizedMessage(); } StatusJsonBean result = new StatusJsonBean(); try { - IForwardingStaticRouting staticRouting = (IForwardingStaticRouting) ServiceHelper - .getInstance(IForwardingStaticRouting.class, containerName, - this); + IForwardingStaticRouting staticRouting = (IForwardingStaticRouting) ServiceHelper.getInstance( + IForwardingStaticRouting.class, containerName, this); StaticRouteConfig config = new StaticRouteConfig(); config.setName(routeName); config.setStaticRoute(staticRoute); @@ -352,12 +328,9 @@ public class Devices implements IDaylightWeb { @RequestMapping(value = "/staticRoute/delete", method = RequestMethod.GET) @ResponseBody - public StatusJsonBean deleteStaticRoute( - @RequestParam("routesToDelete") String routesToDelete, - HttpServletRequest request, - @RequestParam(required = false) String container) { - String containerName = (container == null) ? GlobalConstants.DEFAULT - .toString() : container; + public StatusJsonBean deleteStaticRoute(@RequestParam("routesToDelete") String routesToDelete, + HttpServletRequest request, @RequestParam(required = false) String container) { + String containerName = (container == null) ? GlobalConstants.DEFAULT.toString() : container; // Authorization check String userName = request.getUserPrincipal().getName(); @@ -367,14 +340,12 @@ public class Devices implements IDaylightWeb { StatusJsonBean resultBean = new StatusJsonBean(); try { - IForwardingStaticRouting staticRouting = (IForwardingStaticRouting) ServiceHelper - .getInstance(IForwardingStaticRouting.class, containerName, - this); + IForwardingStaticRouting staticRouting = (IForwardingStaticRouting) ServiceHelper.getInstance( + IForwardingStaticRouting.class, containerName, this); String[] routes = routesToDelete.split(","); Status result; resultBean.setStatus(true); - resultBean - .setMessage("Successfully deleted selected static routes"); + resultBean.setMessage("Successfully deleted selected static routes"); for (String route : routes) { result = staticRouting.removeStaticRoute(route); if (!result.isSuccess()) { @@ -386,9 +357,7 @@ public class Devices implements IDaylightWeb { } } catch (Exception e) { resultBean.setStatus(false); - resultBean - .setMessage("Error occurred while deleting static routes. " - + e.getMessage()); + resultBean.setMessage("Error occurred while deleting static routes. " + e.getMessage()); } return resultBean; } @@ -415,7 +384,7 @@ public class Devices implements IDaylightWeb { subnet.put("subnet", conf.getSubnet()); List portsList = new ArrayList(); Iterator itor = conf.getNodeConnectors().iterator(); - while(itor.hasNext()) { + while (itor.hasNext()) { SubnetGatewayPortBean bean = new SubnetGatewayPortBean(); NodeConnector nodeConnector = itor.next(); String nodeName = getNodeDesc(nodeConnector.getNode().toString(), containerName); @@ -441,13 +410,10 @@ public class Devices implements IDaylightWeb { @RequestMapping(value = "/subnetGateway/add", method = RequestMethod.GET) @ResponseBody - public StatusJsonBean addSubnetGateways( - @RequestParam("gatewayName") String gatewayName, - @RequestParam("gatewayIPAddress") String gatewayIPAddress, - HttpServletRequest request, + public StatusJsonBean addSubnetGateways(@RequestParam("gatewayName") String gatewayName, + @RequestParam("gatewayIPAddress") String gatewayIPAddress, HttpServletRequest request, @RequestParam(required = false) String container) { - String containerName = (container == null) ? GlobalConstants.DEFAULT - .toString() : container; + String containerName = (container == null) ? GlobalConstants.DEFAULT.toString() : container; // Authorization check String userName = request.getUserPrincipal().getName(); @@ -457,10 +423,9 @@ public class Devices implements IDaylightWeb { StatusJsonBean resultBean = new StatusJsonBean(); try { - ISwitchManager switchManager = (ISwitchManager) ServiceHelper - .getInstance(ISwitchManager.class, containerName, this); - SubnetConfig cfgObject = new SubnetConfig(gatewayName, - gatewayIPAddress, new ArrayList()); + ISwitchManager switchManager = (ISwitchManager) ServiceHelper.getInstance(ISwitchManager.class, + containerName, this); + SubnetConfig cfgObject = new SubnetConfig(gatewayName, gatewayIPAddress, new ArrayList()); Status result = switchManager.addSubnet(cfgObject); if (result.isSuccess()) { resultBean.setStatus(true); @@ -479,12 +444,9 @@ public class Devices implements IDaylightWeb { @RequestMapping(value = "/subnetGateway/delete", method = RequestMethod.GET) @ResponseBody - public StatusJsonBean deleteSubnetGateways( - @RequestParam("gatewaysToDelete") String gatewaysToDelete, - HttpServletRequest request, - @RequestParam(required = false) String container) { - String containerName = (container == null) ? GlobalConstants.DEFAULT - .toString() : container; + public StatusJsonBean deleteSubnetGateways(@RequestParam("gatewaysToDelete") String gatewaysToDelete, + HttpServletRequest request, @RequestParam(required = false) String container) { + String containerName = (container == null) ? GlobalConstants.DEFAULT.toString() : container; // Authorization check String userName = request.getUserPrincipal().getName(); @@ -494,8 +456,8 @@ public class Devices implements IDaylightWeb { StatusJsonBean resultBean = new StatusJsonBean(); try { - ISwitchManager switchManager = (ISwitchManager) ServiceHelper - .getInstance(ISwitchManager.class, containerName, this); + ISwitchManager switchManager = (ISwitchManager) ServiceHelper.getInstance(ISwitchManager.class, + containerName, this); String[] subnets = gatewaysToDelete.split(","); resultBean.setStatus(true); resultBean.setMessage("Added gateway address successfully"); @@ -517,13 +479,10 @@ public class Devices implements IDaylightWeb { @RequestMapping(value = "/subnetGateway/ports/add", method = RequestMethod.GET) @ResponseBody - public StatusJsonBean addSubnetGatewayPort( - @RequestParam("portsName") String portsName, - @RequestParam("ports") String ports, - @RequestParam("nodeId") String nodeId, HttpServletRequest request, + public StatusJsonBean addSubnetGatewayPort(@RequestParam("portsName") String portsName, + @RequestParam("ports") String ports, @RequestParam("nodeId") String nodeId, HttpServletRequest request, @RequestParam(required = false) String container) { - String containerName = (container == null) ? GlobalConstants.DEFAULT - .toString() : container; + String containerName = (container == null) ? GlobalConstants.DEFAULT.toString() : container; // Authorization check String userName = request.getUserPrincipal().getName(); @@ -533,8 +492,8 @@ public class Devices implements IDaylightWeb { StatusJsonBean resultBean = new StatusJsonBean(); try { - ISwitchManager switchManager = (ISwitchManager) ServiceHelper - .getInstance(ISwitchManager.class, containerName, this); + ISwitchManager switchManager = (ISwitchManager) ServiceHelper.getInstance(ISwitchManager.class, + containerName, this); List toAdd = new ArrayList(); for (String port : ports.split(",")) { toAdd.add(port); @@ -543,9 +502,12 @@ public class Devices implements IDaylightWeb { if (result.isSuccess()) { resultBean.setStatus(true); - resultBean - .setMessage("Added ports to subnet gateway address successfully"); - DaylightWebUtil.auditlog("Ports to Subnet Gateway", userName, "added", ports, containerName); + resultBean.setMessage("Added ports to subnet gateway address successfully"); + for (String port : toAdd) { + DaylightWebUtil.auditlog("Port", userName, "added", + DaylightWebUtil.getPortName(NodeConnector.fromString(port), switchManager) + + " to Subnet Gateway " + portsName, containerName); + } } else { resultBean.setStatus(false); resultBean.setMessage(result.getDescription()); @@ -559,13 +521,10 @@ public class Devices implements IDaylightWeb { @RequestMapping(value = "/subnetGateway/ports/delete", method = RequestMethod.GET) @ResponseBody - public StatusJsonBean deleteSubnetGatewayPort( - @RequestParam("gatewayName") String gatewayName, - @RequestParam("nodePort") String nodePort, - HttpServletRequest request, + public StatusJsonBean deleteSubnetGatewayPort(@RequestParam("gatewayName") String gatewayName, + @RequestParam("nodePort") String nodePort, HttpServletRequest request, @RequestParam(required = false) String container) { - String containerName = (container == null) ? GlobalConstants.DEFAULT - .toString() : container; + String containerName = (container == null) ? GlobalConstants.DEFAULT.toString() : container; // Authorization check String userName = request.getUserPrincipal().getName(); @@ -575,8 +534,8 @@ public class Devices implements IDaylightWeb { StatusJsonBean resultBean = new StatusJsonBean(); try { - ISwitchManager switchManager = (ISwitchManager) ServiceHelper - .getInstance(ISwitchManager.class, containerName, this); + ISwitchManager switchManager = (ISwitchManager) ServiceHelper.getInstance(ISwitchManager.class, + containerName, this); List toRemove = new ArrayList(); for (String port : nodePort.split(",")) { toRemove.add(port); @@ -586,7 +545,11 @@ public class Devices implements IDaylightWeb { if (result.isSuccess()) { resultBean.setStatus(true); resultBean.setMessage("Deleted port from subnet gateway address successfully"); - DaylightWebUtil.auditlog("Ports from Subnet Gateway", userName, "removed", nodePort, containerName); + for (String port : toRemove) { + DaylightWebUtil.auditlog("Port", userName, "removed", + DaylightWebUtil.getPortName(NodeConnector.fromString(port), switchManager) + + " from Subnet Gateway " + gatewayName, containerName); + } } else { resultBean.setStatus(false); resultBean.setMessage(result.getDescription()); @@ -600,22 +563,19 @@ public class Devices implements IDaylightWeb { @RequestMapping(value = "/spanPorts", method = RequestMethod.GET) @ResponseBody - public DevicesJsonBean getSpanPorts(HttpServletRequest request, - @RequestParam(required = false) String container) { + public DevicesJsonBean getSpanPorts(HttpServletRequest request, @RequestParam(required = false) String container) { Gson gson = new Gson(); List> spanConfigs = new ArrayList>(); - String containerName = (container == null) ? GlobalConstants.DEFAULT - .toString() : container; + String containerName = (container == null) ? GlobalConstants.DEFAULT.toString() : container; // Derive the privilege this user has on the current container String userName = request.getUserPrincipal().getName(); - Privilege privilege = DaylightWebUtil.getContainerPrivilege( - userName, containerName, this); + Privilege privilege = DaylightWebUtil.getContainerPrivilege(userName, containerName, this); if (privilege != Privilege.NONE) { List spanConfigs_json = new ArrayList(); - ISwitchManager switchManager = (ISwitchManager) ServiceHelper - .getInstance(ISwitchManager.class, containerName, this); + ISwitchManager switchManager = (ISwitchManager) ServiceHelper.getInstance(ISwitchManager.class, + containerName, this); if (switchManager != null) { for (SpanConfig conf : switchManager.getSpanConfigList()) { spanConfigs_json.add(gson.toJson(conf)); @@ -626,14 +586,17 @@ public class Devices implements IDaylightWeb { for (String config_json : spanConfigs_json) { try { @SuppressWarnings("unchecked") - Map config_data = mapper.readValue(config_json, - HashMap.class); + Map config_data = mapper.readValue(config_json, HashMap.class); Map config = new HashMap(); for (String name : config_data.keySet()) { config.put(name, config_data.get(name)); // Add switch portName value (non-configuration field) - config.put("nodeName", - getNodeDesc(config_data.get("nodeId"), containerName)); + config.put("nodeName", getNodeDesc(config_data.get("nodeId"), containerName)); + NodeConnector spanPortNodeConnector = NodeConnector.fromString(config_data.get("spanPort")); + Name ncName = ((Name) switchManager.getNodeConnectorProp(spanPortNodeConnector, + Name.NamePropName)); + String spanPortName = (ncName != null) ? ncName.getValue() : ""; + config.put("spanPortName", spanPortName); } config.put("json", config_json); spanConfigs.add(config); @@ -661,8 +624,8 @@ public class Devices implements IDaylightWeb { return null; } - ISwitchManager switchManager = (ISwitchManager) ServiceHelper - .getInstance(ISwitchManager.class, containerName, this); + ISwitchManager switchManager = (ISwitchManager) ServiceHelper.getInstance(ISwitchManager.class, containerName, + this); if (switchManager == null) { return null; } @@ -674,9 +637,10 @@ public class Devices implements IDaylightWeb { Set nodeConnectorSet = node.getNodeConnectors(); if (nodeConnectorSet != null) { for (NodeConnector nodeConnector : nodeConnectorSet) { - String nodeConnectorName = ((Name) switchManager - .getNodeConnectorProp(nodeConnector, Name.NamePropName)).getValue(); - port.add(new PortJsonBean(nodeConnector.getID().toString(), nodeConnectorName, nodeConnector.toString())); + String nodeConnectorName = ((Name) switchManager.getNodeConnectorProp(nodeConnector, + Name.NamePropName)).getValue(); + port.add(new PortJsonBean(nodeConnector.getID().toString(), nodeConnectorName, nodeConnector + .toString())); } } nodeJsonBean.setNodeId(node.getNode().toString()); @@ -690,12 +654,9 @@ public class Devices implements IDaylightWeb { @RequestMapping(value = "/spanPorts/add", method = RequestMethod.GET) @ResponseBody - public StatusJsonBean addSpanPort( - @RequestParam("jsonData") String jsonData, - HttpServletRequest request, + public StatusJsonBean addSpanPort(@RequestParam("jsonData") String jsonData, HttpServletRequest request, @RequestParam(required = false) String container) { - String containerName = (container == null) ? GlobalConstants.DEFAULT - .toString() : container; + String containerName = (container == null) ? GlobalConstants.DEFAULT.toString() : container; // Authorization check String userName = request.getUserPrincipal().getName(); @@ -706,34 +667,32 @@ public class Devices implements IDaylightWeb { StatusJsonBean resultBean = new StatusJsonBean(); try { Gson gson = new Gson(); - ISwitchManager switchManager = (ISwitchManager) ServiceHelper - .getInstance(ISwitchManager.class, containerName, this); + ISwitchManager switchManager = (ISwitchManager) ServiceHelper.getInstance(ISwitchManager.class, + containerName, this); SpanConfig cfgObject = gson.fromJson(jsonData, SpanConfig.class); Status result = switchManager.addSpanConfig(cfgObject); if (result.isSuccess()) { resultBean.setStatus(true); resultBean.setMessage("SPAN Port added successfully"); - DaylightWebUtil.auditlog("SPAN Port", userName, "added", cfgObject.getNodeId(), containerName); + DaylightWebUtil.auditlog("SPAN Port", userName, "added", + DaylightWebUtil.getPortName(NodeConnector.fromString(cfgObject.getSpanPort()), switchManager), + containerName); } else { resultBean.setStatus(false); resultBean.setMessage(result.getDescription()); } } catch (Exception e) { resultBean.setStatus(false); - resultBean.setMessage("Error occurred while adding span port. " - + e.getMessage()); + resultBean.setMessage("Error occurred while adding span port. " + e.getMessage()); } return resultBean; } @RequestMapping(value = "/spanPorts/delete", method = RequestMethod.GET) @ResponseBody - public StatusJsonBean deleteSpanPorts( - @RequestParam("spanPortsToDelete") String spanPortsToDelete, - HttpServletRequest request, - @RequestParam(required = false) String container) { - String containerName = (container == null) ? GlobalConstants.DEFAULT - .toString() : container; + public StatusJsonBean deleteSpanPorts(@RequestParam("spanPortsToDelete") String spanPortsToDelete, + HttpServletRequest request, @RequestParam(required = false) String container) { + String containerName = (container == null) ? GlobalConstants.DEFAULT.toString() : container; // Authorization check String userName = request.getUserPrincipal().getName(); @@ -744,44 +703,44 @@ public class Devices implements IDaylightWeb { StatusJsonBean resultBean = new StatusJsonBean(); try { Gson gson = new Gson(); - ISwitchManager switchManager = (ISwitchManager) ServiceHelper - .getInstance(ISwitchManager.class, containerName, this); - String[] spans = spanPortsToDelete.split("###"); - resultBean.setStatus(true); - resultBean.setMessage("SPAN Port(s) deleted successfully"); - for (String span : spans) { - if (!span.isEmpty()) { - SpanConfig cfgObject = gson - .fromJson(span, SpanConfig.class); - Status result = switchManager.removeSpanConfig(cfgObject); - if (!result.isSuccess()) { - resultBean.setStatus(false); - resultBean.setMessage(result.getDescription()); - break; - } - DaylightWebUtil.auditlog("SPAN Port", userName, "removed", cfgObject.getNodeId(), containerName); + ISwitchManager switchManager = (ISwitchManager) ServiceHelper.getInstance(ISwitchManager.class, + containerName, this); + Type collectionType = new TypeToken>() { + }.getType(); + List jsonBeanList = gson.fromJson(spanPortsToDelete, collectionType); + for (SpanPortJsonBean jsonBean : jsonBeanList) { + SpanConfig cfgObject = gson.fromJson(gson.toJson(jsonBean), SpanConfig.class); + Status result = switchManager.removeSpanConfig(cfgObject); + if (!result.isSuccess()) { + resultBean.setStatus(false); + resultBean.setMessage(result.getDescription()); + break; } + DaylightWebUtil.auditlog("SPAN Port", userName, "removed", + DaylightWebUtil.getPortName(NodeConnector.fromString(cfgObject.getSpanPort()), switchManager), + containerName); } + resultBean.setStatus(true); + resultBean.setMessage("SPAN Port(s) deleted successfully"); } catch (Exception e) { resultBean.setStatus(false); - resultBean.setMessage("Error occurred while deleting span port. " - + e.getMessage()); + resultBean.setMessage("Error occurred while deleting span port. " + e.getMessage()); } return resultBean; } private String getNodeDesc(String nodeId, String containerName) { - ISwitchManager switchManager = (ISwitchManager) ServiceHelper - .getInstance(ISwitchManager.class, containerName, this); + ISwitchManager switchManager = (ISwitchManager) ServiceHelper.getInstance(ISwitchManager.class, containerName, + this); String description = ""; if (switchManager != null) { - Description desc = (Description) switchManager.getNodeProp(Node.fromString(nodeId), Description.propertyName); - if(desc != null) { + Description desc = (Description) switchManager.getNodeProp(Node.fromString(nodeId), + Description.propertyName); + if (desc != null) { description = desc.getValue(); } } - return (description.isEmpty() || description.equalsIgnoreCase("none")) ? nodeId - : description; + return (description.isEmpty() || description.equalsIgnoreCase("none")) ? nodeId : description; } private StatusJsonBean unauthorizedMessage() { @@ -792,8 +751,7 @@ public class Devices implements IDaylightWeb { } @RequestMapping(value = "login") - public String login(final HttpServletRequest request, - final HttpServletResponse response) { + public String login(final HttpServletRequest request, final HttpServletResponse response) { // response.setHeader("X-Page-Location", "/login"); /* * IUserManager userManager = (IUserManager) ServiceHelper @@ -809,4 +767,4 @@ public class Devices implements IDaylightWeb { return "forward:" + "/"; } -} +} \ No newline at end of file