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=15ad9e9887d8eb2aba1250bc278a48f7441db00a;hb=0d8516471e3ee70a8bc9f02d046c5c0a20db01b1;hp=04f9863312891978502efedb34410a334da02fd1;hpb=b9a5497edea08e3b91846d9a371d7e9aeddf5055;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 04f9863312..15ad9e9887 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 @@ -10,6 +10,7 @@ package org.opendaylight.controller.devices.web; import java.util.ArrayList; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Map.Entry; @@ -26,9 +27,13 @@ import org.opendaylight.controller.forwarding.staticrouting.StaticRouteConfig; 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; import org.opendaylight.controller.sal.utils.HexEncode; @@ -94,48 +99,52 @@ public class Devices implements IDaylightWeb { 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> nodeData = new ArrayList>(); if (switchManager != null && privilege != Privilege.NONE) { for (Switch device : switchManager.getNetworkDevices()) { HashMap nodeDatum = new HashMap(); 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 nodeConnectorSet = device - .getNodeConnectors(); + Set nodeConnectorSet = device.getNodeConnectors(); if (nodeConnectorSet != null && nodeConnectorSet.size() > 0) { Map portList = new HashMap(); List intfList = new ArrayList(); 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() : ""; @@ -143,10 +152,15 @@ public class Devices implements IDaylightWeb { if (portStatus != null) { if (portStatus.getValue() == Config.ADMIN_UP) { - nodeConnectorName = "" - + nodeConnectorName + ""; + if (portState.getValue() == State.EDGE_UP) { + nodeConnectorName = "" + + nodeConnectorName + ""; + } else if (portState.getValue() == State.EDGE_DOWN) { + nodeConnectorName = "" + + nodeConnectorName + ""; + } } else if (portStatus.getValue() == Config.ADMIN_DOWN) { - nodeConnectorName = "" + nodeConnectorName = "" + nodeConnectorName + ""; } } @@ -225,11 +239,25 @@ public class Devices implements IDaylightWeb { 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 nodeProperties = new HashMap(); + 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. " @@ -311,6 +339,7 @@ public class Devices implements IDaylightWeb { 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()); @@ -354,6 +383,7 @@ public class Devices implements IDaylightWeb { resultBean.setMessage(result.getDescription()); break; } + DaylightWebUtil.auditlog("Static Route", userName, "removed", route, containerName); } } catch (Exception e) { resultBean.setStatus(false); @@ -419,11 +449,12 @@ public class Devices implements IDaylightWeb { ISwitchManager switchManager = (ISwitchManager) ServiceHelper .getInstance(ISwitchManager.class, containerName, this); SubnetConfig cfgObject = new SubnetConfig(gatewayName, - gatewayIPAddress, new ArrayList()); + gatewayIPAddress, new HashSet()); 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()); @@ -464,6 +495,7 @@ public class Devices implements IDaylightWeb { resultBean.setMessage(result.getDescription()); break; } + DaylightWebUtil.auditlog("Subnet Gateway", userName, "removed", subnet, containerName); } } catch (Exception e) { resultBean.setStatus(false); @@ -499,6 +531,7 @@ public class Devices implements IDaylightWeb { 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()); @@ -537,6 +570,7 @@ public class Devices implements IDaylightWeb { 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()); @@ -668,6 +702,7 @@ public class Devices implements IDaylightWeb { 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()); @@ -713,6 +748,7 @@ public class Devices implements IDaylightWeb { resultBean.setMessage(result.getDescription()); break; } + DaylightWebUtil.auditlog("SPAN Port", userName, "removed", cfgObject.getNodeId(), containerName); } } } catch (Exception e) { @@ -728,8 +764,10 @@ public class Devices implements IDaylightWeb { .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;