X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fweb%2Fflows%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fflows%2Fweb%2FFlows.java;h=9444360eecb7d7ae4a6e084a4fde8512c7b5ed71;hp=c4341347d088c95944987f1470da8633adece44a;hb=65c9b2ea72201b67ece5d6e5e210857d69df743c;hpb=2a321e997f6bb09c2bce1ea79e1524411d9495fb diff --git a/opendaylight/web/flows/src/main/java/org/opendaylight/controller/flows/web/Flows.java b/opendaylight/web/flows/src/main/java/org/opendaylight/controller/flows/web/Flows.java index c4341347d0..9444360eec 100644 --- a/opendaylight/web/flows/src/main/java/org/opendaylight/controller/flows/web/Flows.java +++ b/opendaylight/web/flows/src/main/java/org/opendaylight/controller/flows/web/Flows.java @@ -20,6 +20,7 @@ import org.opendaylight.controller.forwardingrulesmanager.FlowConfig; import org.opendaylight.controller.forwardingrulesmanager.IForwardingRulesManager; 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.Name; import org.opendaylight.controller.sal.core.Node; import org.opendaylight.controller.sal.core.NodeConnector; @@ -46,6 +47,7 @@ import com.google.gson.Gson; public class Flows implements IDaylightWeb { private static final UserLevel AUTH_LEVEL = UserLevel.CONTAINERUSER; private static final String WEB_NAME = "Flows"; + private static final String WEB_ID = "flows"; private static final short WEB_ORDER = 2; @@ -107,9 +109,7 @@ public class Flows implements IDaylightWeb { entry.put("flow", flowConfig); entry.put("name", flowConfig.getName()); Node node = flowConfig.getNode(); - String description = switchManager.getNodeDescription(node); - entry.put("node", (description.isEmpty() || description - .equalsIgnoreCase("none")) ? node.toString() : description); + entry.put("node", getNodeDesc(node, switchManager)); entry.put("nodeId", node.toString()); flowSet.add(entry); } @@ -160,11 +160,7 @@ public class Flows implements IDaylightWeb { entry.put("ports", port); // add name - String description = switchManager.getNodeDescription(node - .getNode()); - entry.put("name", (description.isEmpty() || description - .equalsIgnoreCase("none")) ? node.getNode().toString() - : description); + entry.put("name", getNodeDesc(node.getNode(), switchManager)); // add to the node nodes.put(node.getNode().toString(), entry); @@ -205,8 +201,8 @@ public class Flows implements IDaylightWeb { String nodeDesc = node.toString(); SwitchConfig config = switchManager.getSwitchConfig(node .toString()); - if (config != null) { - nodeDesc = config.getNodeDescription(); + if ((config != null) && (config.getProperty(Description.propertyName) != null)) { + nodeDesc = ((Description) config.getProperty(Description.propertyName)).getValue(); } nodes.put(nodeDesc, flows.size()); @@ -241,14 +237,15 @@ public class Flows implements IDaylightWeb { flow.setNode(node); Status result = new Status(StatusCode.BADREQUEST, "Invalid request"); if (action.equals("add")) { - result = frm.addStaticFlow(flow, false); + result = frm.addStaticFlow(flow); + DaylightWebUtil.auditlog("Flow", userName, "added", flow.getName(), containerName); } return (result.isSuccess()) ? StatusCode.SUCCESS.toString() : result .getDescription(); } - @RequestMapping(value = "/flow/{nodeId}/{name}", method = RequestMethod.POST) + @RequestMapping(value = "/flow/{nodeId}/{name:.*}", method = RequestMethod.POST) @ResponseBody public String removeFlow(@PathVariable("nodeId") String nodeId, @PathVariable("name") String name, @@ -275,8 +272,14 @@ public class Flows implements IDaylightWeb { } if (action.equals("remove")) { result = frm.removeStaticFlow(name, node); + if(result.isSuccess()) { + DaylightWebUtil.auditlog("Flow", userName, "removed", name, containerName); + } } else if (action.equals("toggle")) { result = frm.toggleStaticFlowStatus(name, node); + if(result.isSuccess()) { + DaylightWebUtil.auditlog("Flow", userName, "toggled", name, containerName); + } } else { result = new Status(StatusCode.BADREQUEST, "Unknown action"); } @@ -284,4 +287,11 @@ public class Flows implements IDaylightWeb { return (result.isSuccess()) ? StatusCode.SUCCESS.toString() : result .getDescription(); } + + private String getNodeDesc(Node node, ISwitchManager switchManager) { + Description desc = (Description) switchManager.getNodeProp(node, Description.propertyName); + String description = (desc == null) ? "" : desc.getValue(); + return (description.isEmpty() || description.equalsIgnoreCase("none")) ? node.toString() : description; + } + }