@RequestMapping(value = "/main")
@ResponseBody
- public Map<String, Object> getFlows(HttpServletRequest request,
- @RequestParam(required = false) String container) {
- String containerName = (container == null) ? GlobalConstants.DEFAULT
- .toString() : container;
+ public Map<String, Object> getFlows(HttpServletRequest request, @RequestParam(required = false) String 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) {
return null;
}
// fetch frm
- IForwardingRulesManager frm = (IForwardingRulesManager) ServiceHelper
- .getInstance(IForwardingRulesManager.class, containerName, this);
+ IForwardingRulesManager frm = (IForwardingRulesManager) ServiceHelper.getInstance(
+ IForwardingRulesManager.class, containerName, this);
if (frm == null) {
return null;
}
// fetch sm
- ISwitchManager switchManager = (ISwitchManager) ServiceHelper
- .getInstance(ISwitchManager.class, containerName, this);
+ ISwitchManager switchManager = (ISwitchManager) ServiceHelper.getInstance(ISwitchManager.class, containerName,
+ this);
if (switchManager == null) {
return null;
}
@RequestMapping(value = "/node-ports")
@ResponseBody
- public Map<String, Object> getNodePorts(HttpServletRequest request,
- @RequestParam(required = false) String container) {
- String containerName = (container == null) ? GlobalConstants.DEFAULT
- .toString() : container;
+ public Map<String, Object> getNodePorts(HttpServletRequest request, @RequestParam(required = false) String container) {
+ String containerName = (container == null) ? GlobalConstants.DEFAULT.toString() : container;
// Derive the privilege this user has on the current container
String userName = request.getUserPrincipal().getName();
- if (DaylightWebUtil
- .getContainerPrivilege(userName, containerName, this) == Privilege.NONE) {
+ if (DaylightWebUtil.getContainerPrivilege(userName, containerName, this) == Privilege.NONE) {
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;
}
Map<String, Object> nodes = new HashMap<String, Object>();
- Map<Short, String> port;
+ Map<String, String> port;
for (Switch node : switchManager.getNetworkDevices()) {
- port = new HashMap<Short, String>(); // new port
+ port = new HashMap<String, String>(); // new port
Set<NodeConnector> nodeConnectorSet = node.getNodeConnectors();
if (nodeConnectorSet != null) {
for (NodeConnector nodeConnector : nodeConnectorSet) {
- String nodeConnectorName = ((Name) switchManager
- .getNodeConnectorProp(nodeConnector,
- Name.NamePropName)).getValue();
- port.put((Short) nodeConnector.getID(), nodeConnectorName
- + "(" + nodeConnector.getNodeConnectorIDString()
- + ")");
+ String nodeConnectorName = ((Name) switchManager.getNodeConnectorProp(nodeConnector,
+ Name.NamePropName)).getValue();
+ port.put( nodeConnector.getID().toString(),
+ nodeConnectorName + "(" + nodeConnector.getNodeConnectorIDString() + ")");
}
}
@RequestMapping(value = "/node-flows")
@ResponseBody
- public Map<String, Object> getNodeFlows(HttpServletRequest request,
- @RequestParam(required = false) String container) {
- String containerName = (container == null) ? GlobalConstants.DEFAULT
- .toString() : container;
+ public Map<String, Object> getNodeFlows(HttpServletRequest request, @RequestParam(required = false) String container) {
+ String containerName = (container == null) ? GlobalConstants.DEFAULT.toString() : container;
// Derive the privilege this user has on the current container
String userName = request.getUserPrincipal().getName();
- if (DaylightWebUtil
- .getContainerPrivilege(userName, containerName, this) == Privilege.NONE) {
+ if (DaylightWebUtil.getContainerPrivilege(userName, containerName, this) == Privilege.NONE) {
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;
}
- IForwardingRulesManager frm = (IForwardingRulesManager) ServiceHelper
- .getInstance(IForwardingRulesManager.class, containerName, this);
+ IForwardingRulesManager frm = (IForwardingRulesManager) ServiceHelper.getInstance(
+ IForwardingRulesManager.class, containerName, this);
if (frm == null) {
return null;
}
List<FlowConfig> flows = frm.getStaticFlows(node);
String nodeDesc = node.toString();
- SwitchConfig config = switchManager
- .getSwitchConfig(node.toString());
- if ((config != null)
- && (config.getProperty(Description.propertyName) != null)) {
- nodeDesc = ((Description) config
- .getProperty(Description.propertyName)).getValue();
+ SwitchConfig config = switchManager.getSwitchConfig(node.toString());
+ if ((config != null) && (config.getProperty(Description.propertyName) != null)) {
+ nodeDesc = ((Description) config.getProperty(Description.propertyName)).getValue();
}
nodes.put(nodeDesc, flows.size());
return nodes;
}
+
@RequestMapping(value = "/flow", method = RequestMethod.POST)
@ResponseBody
- public String actionFlow(@RequestParam(required = true) String action,
- @RequestParam(required = false) String body,
- @RequestParam(required = true) String nodeId,
- HttpServletRequest request,
+ public String actionFlow(@RequestParam(required = true) String action, @RequestParam(required = false) String body,
+ @RequestParam(required = true) 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();
- if (DaylightWebUtil
- .getContainerPrivilege(userName, containerName, this) != Privilege.WRITE) {
+ if (DaylightWebUtil.getContainerPrivilege(userName, containerName, this) != Privilege.WRITE) {
return "Operation not authorized";
}
- IForwardingRulesManager frm = (IForwardingRulesManager) ServiceHelper
- .getInstance(IForwardingRulesManager.class, containerName, this);
+ IForwardingRulesManager frm = (IForwardingRulesManager) ServiceHelper.getInstance(
+ IForwardingRulesManager.class, containerName, this);
if (frm == null) {
return null;
}
Node node = Node.fromString(nodeId);
flow.setNode(node);
+
Status result = new Status(StatusCode.BADREQUEST, "Invalid request");
if (action.equals("add")) {
result = frm.addStaticFlow(flow);
- DaylightWebUtil.auditlog("Flow", userName, "added", flow.getName(),
- containerName);
+ if (result.isSuccess()) {
+ DaylightWebUtil.auditlog("Flow Entry", userName, "added", flow.getName() + " on Node "
+ + DaylightWebUtil.getNodeDesc(node, containerName, this), containerName);
+ }
+ } else if (action.equals("edit")){
+ result = frm.modifyStaticFlow(flow);
+ if (result.isSuccess()) {
+ DaylightWebUtil.auditlog("Flow Entry", userName, "updated", flow.getName() + " on Node "
+ + DaylightWebUtil.getNodeDesc(node, containerName, this), containerName);
+ }
}
- return (result.isSuccess()) ? StatusCode.SUCCESS.toString() : result
- .getDescription();
+ return (result.isSuccess()) ? StatusCode.SUCCESS.toString() : result.getDescription();
}
@RequestMapping(value = "/flow/{nodeId}/{name:.*}", method = RequestMethod.POST)
@ResponseBody
- public String removeFlow(@PathVariable("nodeId") String nodeId,
- @PathVariable("name") String name,
- @RequestParam(required = true) String action,
- HttpServletRequest request,
+ public String removeFlow(@PathVariable("nodeId") String nodeId, @PathVariable("name") String name,
+ @RequestParam(required = true) String action, 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 "Operation not authorized";
}
- IForwardingRulesManager frm = (IForwardingRulesManager) ServiceHelper
- .getInstance(IForwardingRulesManager.class, containerName, this);
+ IForwardingRulesManager frm = (IForwardingRulesManager) ServiceHelper.getInstance(
+ IForwardingRulesManager.class, containerName, this);
if (frm == null) {
return null;
}
if (action.equals("remove")) {
result = frm.removeStaticFlow(name, node);
if (result.isSuccess()) {
- DaylightWebUtil.auditlog("Flow", userName, "removed", name,
- containerName);
+ DaylightWebUtil.auditlog("Flow Entry", userName, "removed",
+ name + " on Node " + DaylightWebUtil.getNodeDesc(node, containerName, this), containerName);
}
} else if (action.equals("toggle")) {
result = frm.toggleStaticFlowStatus(name, node);
if (result.isSuccess()) {
- DaylightWebUtil.auditlog("Flow", userName, "toggled", name,
- containerName);
+ DaylightWebUtil.auditlog("Flow Entry", userName, "toggled",
+ name + " on Node " + DaylightWebUtil.getNodeDesc(node, containerName, this), containerName);
}
} else {
result = new Status(StatusCode.BADREQUEST, "Unknown action");
}
- return (result.isSuccess()) ? StatusCode.SUCCESS.toString() : result
- .getDescription();
+ return (result.isSuccess()) ? StatusCode.SUCCESS.toString() : result.getDescription();
}
@SuppressWarnings("unchecked")
@RequestMapping(value = "/flow/deleteFlows", method = RequestMethod.POST)
@ResponseBody
- public String removeSelectedFlows(
- @RequestParam(required = false) String body,
- HttpServletRequest request,
+ public String removeSelectedFlows(@RequestParam(required = false) String body, 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 "Operation not authorized";
}
-
- IForwardingRulesManager frm = (IForwardingRulesManager) ServiceHelper
- .getInstance(IForwardingRulesManager.class, containerName, this);
+ IForwardingRulesManager frm = (IForwardingRulesManager) ServiceHelper.getInstance(
+ IForwardingRulesManager.class, containerName, this);
if (frm == null) {
return "Forwarding Rules Manager is not available";
}
Node node = Node.fromString(flowEntry.get("node"));
result = frm.removeStaticFlow(flowEntry.get("name"), node);
if (result.isSuccess()) {
- DaylightWebUtil.auditlog("Flow", userName, "removed",
- flowEntry.get("name"), containerName);
+ DaylightWebUtil.auditlog("Flow Entry", userName, "removed", flowEntry.get("name") + " on Node "
+ + DaylightWebUtil.getNodeDesc(node, containerName, this), containerName);
} else {
status = flowEntry.get("name") + ", " + status;
}
}
if (!status.equals("")) {
- return "Could not remove "
- + status.substring(0, status.length() - 2) + " Flow(s)";
+ return "Could not remove " + status.substring(0, status.length() - 2) + " Flow(s)";
} else {
return "Success";
}
}
private String getNodeDesc(Node node, ISwitchManager switchManager) {
- Description desc = (Description) switchManager.getNodeProp(node,
- Description.propertyName);
+ Description desc = (Description) switchManager.getNodeProp(node, Description.propertyName);
String description = (desc == null) ? "" : desc.getValue();
- return (description.isEmpty() || description.equalsIgnoreCase("none")) ? node
- .toString() : description;
+ return (description.isEmpty() || description.equalsIgnoreCase("none")) ? node.toString() : description;
}
}