import java.util.ArrayList;
import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import org.opendaylight.controller.sal.authorization.Privilege;
import org.opendaylight.controller.sal.authorization.UserLevel;
import org.opendaylight.controller.sal.core.Config;
+import org.opendaylight.controller.sal.core.Description;
+import org.opendaylight.controller.sal.core.ForwardingMode;
import org.opendaylight.controller.sal.core.Name;
import org.opendaylight.controller.sal.core.Node;
import org.opendaylight.controller.sal.core.NodeConnector;
+import org.opendaylight.controller.sal.core.Property;
import org.opendaylight.controller.sal.core.State;
import org.opendaylight.controller.sal.core.Tier;
import org.opendaylight.controller.sal.utils.GlobalConstants;
String userName = request.getUserPrincipal().getName();
Privilege privilege = DaylightWebUtil.getContainerPrivilege(userName, containerName, this);
- ISwitchManager switchManager = (ISwitchManager) ServiceHelper
- .getInstance(ISwitchManager.class, containerName, this);
+ ISwitchManager switchManager = (ISwitchManager) ServiceHelper.getInstance(ISwitchManager.class, containerName,
+ this);
List<Map<String, String>> nodeData = new ArrayList<Map<String, String>>();
if (switchManager != null && privilege != Privilege.NONE) {
for (Switch device : switchManager.getNetworkDevices()) {
HashMap<String, String> nodeDatum = new HashMap<String, String>();
Node node = device.getNode();
- Tier tier = (Tier) switchManager.getNodeProp(node,
- Tier.TierPropName);
-
+ Tier tier = (Tier) switchManager.getNodeProp(node, Tier.TierPropName);
nodeDatum.put("containerName", containerName);
- nodeDatum.put("nodeName",
- switchManager.getNodeDescription(node));
+ Description description = (Description) switchManager.getNodeProp(node, Description.propertyName);
+ String desc = (description == null) ? "" : description.getValue();
+ nodeDatum.put("nodeName", desc);
nodeDatum.put("nodeId", node.toString());
- int tierNumber = (tier == null) ? TierHelper.unknownTierNumber
- : tier.getValue();
- nodeDatum.put("tierName", TierHelper.getTierName(tierNumber)
- + " (Tier-" + tierNumber + ")");
+ int tierNumber = (tier == null) ? TierHelper.unknownTierNumber : tier.getValue();
+ nodeDatum.put("tierName", TierHelper.getTierName(tierNumber) + " (Tier-" + tierNumber + ")");
nodeDatum.put("tier", tierNumber + "");
- SwitchConfig sc = switchManager.getSwitchConfig(device
- .getNode().toString());
- String modeStr = (sc != null) ? sc.getMode() : "0";
+ String modeStr = "0";
+ ForwardingMode mode = null;
+ if (!containerName.equals(GlobalConstants.DEFAULT.toString())) {
+ ISwitchManager switchManagerDefault = (ISwitchManager) ServiceHelper.getInstance(
+ ISwitchManager.class, GlobalConstants.DEFAULT.toString(), this);
+ mode = (ForwardingMode) switchManagerDefault.getNodeProp(node, ForwardingMode.name);
+ } else {
+ mode = (ForwardingMode) switchManager.getNodeProp(node, ForwardingMode.name);
+ }
+ if (mode != null) {
+ modeStr = String.valueOf(mode.getValue());
+ }
nodeDatum.put("mode", modeStr);
nodeDatum.put("json", gson.toJson(nodeDatum));
- nodeDatum.put("mac", HexEncode.bytesToHexString(device
- .getDataLayerAddress()));
+ nodeDatum.put("mac", HexEncode.bytesToHexString(device.getDataLayerAddress()));
StringBuffer sb1 = new StringBuffer();
- Set<NodeConnector> nodeConnectorSet = device
- .getNodeConnectors();
+ Set<NodeConnector> nodeConnectorSet = device.getNodeConnectors();
if (nodeConnectorSet != null && nodeConnectorSet.size() > 0) {
Map<Short, String> portList = new HashMap<Short, String>();
List<String> intfList = new ArrayList<String>();
for (NodeConnector nodeConnector : nodeConnectorSet) {
- String nodeConnectorNumberToStr = nodeConnector.getID()
- .toString();
- Name ncName = ((Name) switchManager
- .getNodeConnectorProp(nodeConnector,
- Name.NamePropName));
+ 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() : "";
nodeConnectorName += " (" + nodeConnector.getID() + ")";
try {
ISwitchManager switchManager = (ISwitchManager) ServiceHelper
.getInstance(ISwitchManager.class, containerName, this);
- SwitchConfig cfg = new SwitchConfig(nodeId, nodeName, tier,
- operationMode);
- switchManager.updateSwitchConfig(cfg);
- resultBean.setStatus(true);
- resultBean.setMessage("Updated node information successfully");
+ Map<String, Property> nodeProperties = new HashMap<String, Property>();
+ Property desc = new Description(nodeName);
+ nodeProperties.put(desc.getName(), desc);
+ Property nodeTier = new Tier(Integer.parseInt(tier));
+ nodeProperties.put(nodeTier.getName(), nodeTier);
+ if (containerName.equals(GlobalConstants.DEFAULT.toString())) {
+ Property mode = new ForwardingMode(Integer.parseInt(operationMode));
+ nodeProperties.put(mode.getName(), mode);
+ }
+ SwitchConfig cfg = new SwitchConfig(nodeId, nodeProperties);
+ Status result = switchManager.updateNodeConfig(cfg);
+ if (!result.isSuccess()) {
+ resultBean.setStatus(false);
+ resultBean.setMessage(result.getDescription());
+ } else {
+ resultBean.setStatus(true);
+ resultBean.setMessage("Updated node information successfully");
+ DaylightWebUtil.auditlog("Node", userName, "updated", nodeId + " to "+ nodeName, containerName);
+ }
} catch (Exception e) {
resultBean.setStatus(false);
resultBean.setMessage("Error updating node information. "
if (addStaticRouteResult.isSuccess()) {
result.setStatus(true);
result.setMessage("Static Route saved successfully");
+ DaylightWebUtil.auditlog("Static Route", userName, "added", routeName, containerName);
} else {
result.setStatus(false);
result.setMessage(addStaticRouteResult.getDescription());
resultBean.setMessage(result.getDescription());
break;
}
+ DaylightWebUtil.auditlog("Static Route", userName, "removed", route, containerName);
}
} catch (Exception e) {
resultBean.setStatus(false);
Map<String, String> subnet = new HashMap<String, String>();
subnet.put("name", conf.getName());
subnet.put("subnet", conf.getSubnet());
- subnet.put("json", gson.toJson(conf));
+ List<SubnetGatewayPortBean> portsList = new ArrayList<SubnetGatewayPortBean>();
+ Iterator<NodeConnector> itor = conf.getSubnetNodeConnectors().iterator();
+ while(itor.hasNext()) {
+ SubnetGatewayPortBean bean = new SubnetGatewayPortBean();
+ NodeConnector nodeConnector = itor.next();
+ String nodeName = getNodeDesc(nodeConnector.getNode().toString(), containerName);
+ Name ncName = ((Name) switchManager.getNodeConnectorProp(nodeConnector, Name.NamePropName));
+ String nodeConnectorName = (ncName != null) ? ncName.getValue() : "";
+ nodeConnectorName += " (" + nodeConnector.getID() + ")";
+ bean.setNodeName(nodeName);
+ bean.setNodePortName(nodeConnectorName);
+ bean.setNodeId(nodeConnector.getNode().toString());
+ bean.setNodePortId(nodeConnector.getID().toString());
+ portsList.add(bean);
+ }
+ subnet.put("nodePorts", gson.toJson(portsList));
subnets.add(subnet);
}
}
ISwitchManager switchManager = (ISwitchManager) ServiceHelper
.getInstance(ISwitchManager.class, containerName, this);
SubnetConfig cfgObject = new SubnetConfig(gatewayName,
- gatewayIPAddress, new ArrayList<String>());
+ gatewayIPAddress, new HashSet<String>());
Status result = switchManager.addSubnet(cfgObject);
if (result.isSuccess()) {
resultBean.setStatus(true);
resultBean.setMessage("Added gateway address successfully");
+ DaylightWebUtil.auditlog("Subnet Gateway", userName, "added", gatewayName, containerName);
} else {
resultBean.setStatus(false);
resultBean.setMessage(result.getDescription());
resultBean.setMessage(result.getDescription());
break;
}
+ DaylightWebUtil.auditlog("Subnet Gateway", userName, "removed", subnet, containerName);
}
} catch (Exception e) {
resultBean.setStatus(false);
resultBean.setStatus(true);
resultBean
.setMessage("Added ports to subnet gateway address successfully");
+ DaylightWebUtil.auditlog("Ports to Subnet Gateway", userName, "added",nodeId+"/"+ ports, containerName);
} else {
resultBean.setStatus(false);
resultBean.setMessage(result.getDescription());
resultBean.setStatus(true);
resultBean
.setMessage("Deleted port from subnet gateway address successfully");
+ DaylightWebUtil.auditlog("Ports from Subnet Gateway", userName, "removed", nodePort, containerName);
} else {
resultBean.setStatus(false);
resultBean.setMessage(result.getDescription());
@RequestMapping(value = "/nodeports")
@ResponseBody
- public Map<String, Object> getNodePorts(HttpServletRequest request,
+ public List<NodeJsonBean> getNodePorts(HttpServletRequest request,
@RequestParam(required = false) String container) {
String containerName = (container == null) ? GlobalConstants.DEFAULT
.toString() : container;
return null;
}
-
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;
+ List<NodeJsonBean> nodeJsonBeans = new ArrayList<NodeJsonBean>();
for (Switch node : switchManager.getNetworkDevices()) {
- port = new HashMap<Short, String>(); // new port
+ NodeJsonBean nodeJsonBean = new NodeJsonBean();
+ List<String> port = new ArrayList<String>();
Set<NodeConnector> nodeConnectorSet = node.getNodeConnectors();
if (nodeConnectorSet != null) {
String nodeConnectorName = ((Name) switchManager
.getNodeConnectorProp(nodeConnector,
Name.NamePropName)).getValue();
- port.put((Short) nodeConnector.getID(), nodeConnectorName
+ port.add(nodeConnectorName
+ "(" + nodeConnector.getID() + ")");
}
}
-
- nodes.put(node.getNode().toString(), port);
+ nodeJsonBean.setNodeId(node.getNode().toString());
+ nodeJsonBean.setNodeName(getNodeDesc(node.getNode().toString(), containerName));
+ nodeJsonBean.setNodePorts(port);
+ nodeJsonBeans.add(nodeJsonBean);
}
- return nodes;
+ return nodeJsonBeans;
}
@RequestMapping(value = "/spanPorts/add", method = RequestMethod.GET)
if (result.isSuccess()) {
resultBean.setStatus(true);
resultBean.setMessage("SPAN Port added successfully");
+ DaylightWebUtil.auditlog("SPAN Port", userName, "added", cfgObject.getNodeId(), containerName);
} else {
resultBean.setStatus(false);
resultBean.setMessage(result.getDescription());
resultBean.setMessage(result.getDescription());
break;
}
+ DaylightWebUtil.auditlog("SPAN Port", userName, "removed", cfgObject.getNodeId(), containerName);
}
}
} catch (Exception e) {
.getInstance(ISwitchManager.class, containerName, this);
String description = "";
if (switchManager != null) {
- description = switchManager.getNodeDescription(Node
- .fromString(nodeId));
+ Description desc = (Description) switchManager.getNodeProp(Node.fromString(nodeId), Description.propertyName);
+ if(desc != null) {
+ description = desc.getValue();
+ }
}
return (description.isEmpty() || description.equalsIgnoreCase("none")) ? nodeId
: description;