From a9ac02df6a886ba5721e9e5932a0ab9a73029e2f Mon Sep 17 00:00:00 2001 From: Pramila Singh Date: Thu, 16 May 2013 11:02:23 -0700 Subject: [PATCH] Fix for exception seen on selecting device tab, after stopping switchmgr bundle. Signed-off-by: Pramila Singh --- .../controller/devices/web/Devices.java | 140 ++++++++++-------- 1 file changed, 78 insertions(+), 62 deletions(-) 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 ec59ab740b..bec194bf1c 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 @@ -89,66 +89,77 @@ public class Devices implements IDaylightWeb { ISwitchManager switchManager = (ISwitchManager) ServiceHelper .getInstance(ISwitchManager.class, containerName, this); List> nodeData = new ArrayList>(); - for (Switch device : switchManager.getNetworkDevices()) { - HashMap nodeDatum = new HashMap(); - Node node = device.getNode(); - Tier tier = (Tier) switchManager.getNodeProp(node, - Tier.TierPropName); - - nodeDatum.put("containerName", containerName); - nodeDatum.put("nodeName", switchManager.getNodeDescription(node)); - nodeDatum.put("nodeId", node.toString()); - 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"; - nodeDatum.put("mode", modeStr); - - nodeDatum.put("json", gson.toJson(nodeDatum)); - nodeDatum.put("mac", - HexEncode.bytesToHexString(device.getDataLayerAddress())); - StringBuffer sb1 = new StringBuffer(); - Set nodeConnectorSet = device.getNodeConnectors(); - if (nodeConnectorSet != null && nodeConnectorSet.size() > 0) { - Map portList = new HashMap(); - 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)); - - String nodeConnectorName = (ncName != null) ? ncName.getValue() - : ""; - nodeConnectorName += " ("+nodeConnector.getID()+")"; - - if (portStatus != null) { - if (portStatus.getValue() == Config.ADMIN_UP) { - nodeConnectorName = ""+nodeConnectorName+""; - } else if (portStatus.getValue() == Config.ADMIN_DOWN) { - nodeConnectorName = ""+nodeConnectorName+""; + if (switchManager != null) { + for (Switch device : switchManager.getNetworkDevices()) { + HashMap nodeDatum = new HashMap(); + Node node = device.getNode(); + Tier tier = (Tier) switchManager.getNodeProp(node, + Tier.TierPropName); + + nodeDatum.put("containerName", containerName); + nodeDatum.put("nodeName", + switchManager.getNodeDescription(node)); + nodeDatum.put("nodeId", node.toString()); + 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"; + nodeDatum.put("mode", modeStr); + + nodeDatum.put("json", gson.toJson(nodeDatum)); + nodeDatum.put("mac", HexEncode.bytesToHexString(device + .getDataLayerAddress())); + StringBuffer sb1 = new StringBuffer(); + Set nodeConnectorSet = device + .getNodeConnectors(); + if (nodeConnectorSet != null && nodeConnectorSet.size() > 0) { + Map portList = new HashMap(); + 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)); + + String nodeConnectorName = (ncName != null) ? ncName + .getValue() : ""; + nodeConnectorName += " (" + nodeConnector.getID() + ")"; + + if (portStatus != null) { + if (portStatus.getValue() == Config.ADMIN_UP) { + nodeConnectorName = "" + + nodeConnectorName + ""; + } else if (portStatus.getValue() == Config.ADMIN_DOWN) { + nodeConnectorName = "" + + nodeConnectorName + ""; + } } + + portList.put( + Short.parseShort(nodeConnectorNumberToStr), + nodeConnectorName); } - - portList.put(Short.parseShort(nodeConnectorNumberToStr), - nodeConnectorName); - } - Map sortedPortList = new TreeMap(portList); + Map sortedPortList = new TreeMap( + portList); - for (Entry e : sortedPortList.entrySet()) { - sb1.append(e.getValue()); - sb1.append("
"); + for (Entry e : sortedPortList.entrySet()) { + sb1.append(e.getValue()); + sb1.append("
"); + } } + nodeDatum.put("ports", sb1.toString()); + nodeData.add(nodeDatum); } - nodeDatum.put("ports", sb1.toString()); - nodeData.add(nodeDatum); } + DevicesJsonBean result = new DevicesJsonBean(); result.setNodeData(nodeData); List columnNames = new ArrayList(); @@ -312,12 +323,14 @@ public class Devices implements IDaylightWeb { String containerName = DaylightWebUtil.getAuthorizedContainer(request, container, this); ISwitchManager switchManager = (ISwitchManager) ServiceHelper .getInstance(ISwitchManager.class, containerName, this); - for (SubnetConfig conf : switchManager.getSubnetsConfigList()) { - Map subnet = new HashMap(); - subnet.put("name", conf.getName()); - subnet.put("subnet", conf.getSubnet()); - subnet.put("json", gson.toJson(conf)); - subnets.add(subnet); + if (switchManager != null) { + for (SubnetConfig conf : switchManager.getSubnetsConfigList()) { + Map subnet = new HashMap(); + subnet.put("name", conf.getName()); + subnet.put("subnet", conf.getSubnet()); + subnet.put("json", gson.toJson(conf)); + subnets.add(subnet); + } } DevicesJsonBean result = new DevicesJsonBean(); result.setColumnNames(SubnetConfig.getGuiFieldsNames()); @@ -464,8 +477,10 @@ public class Devices implements IDaylightWeb { String containerName = DaylightWebUtil.getAuthorizedContainer(request, container, this); ISwitchManager switchManager = (ISwitchManager) ServiceHelper .getInstance(ISwitchManager.class, containerName, this); - for (SpanConfig conf : switchManager.getSpanConfigList()) { - spanConfigs_json.add(gson.toJson(conf)); + if (switchManager != null) { + for (SpanConfig conf : switchManager.getSpanConfigList()) { + spanConfigs_json.add(gson.toJson(conf)); + } } ObjectMapper mapper = new ObjectMapper(); List> spanConfigs = new ArrayList>(); @@ -499,8 +514,9 @@ public class Devices implements IDaylightWeb { String containerName = DaylightWebUtil.getAuthorizedContainer(request, container, this); ISwitchManager switchManager = (ISwitchManager) ServiceHelper .getInstance(ISwitchManager.class, containerName, this); - if (switchManager == null) + if (switchManager == null) { return null; + } Map nodes = new HashMap(); Map port; -- 2.36.6