X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fswitchmanager%2Fimplementation%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fswitchmanager%2Finternal%2FSwitchManagerImpl.java;h=c24c93c65ddaa738136c065713461fe62e659b4c;hb=refs%2Fchanges%2F14%2F614%2F1;hp=8c95c46d72abd8e09e068da837288a4d31ad00bd;hpb=e830ca8fc7550bddb87dc3d1141a53e9b20c53f7;p=controller.git diff --git a/opendaylight/switchmanager/implementation/src/main/java/org/opendaylight/controller/switchmanager/internal/SwitchManagerImpl.java b/opendaylight/switchmanager/implementation/src/main/java/org/opendaylight/controller/switchmanager/internal/SwitchManagerImpl.java index 8c95c46d72..c24c93c65d 100644 --- a/opendaylight/switchmanager/implementation/src/main/java/org/opendaylight/controller/switchmanager/internal/SwitchManagerImpl.java +++ b/opendaylight/switchmanager/implementation/src/main/java/org/opendaylight/controller/switchmanager/internal/SwitchManagerImpl.java @@ -58,7 +58,6 @@ import org.opendaylight.controller.sal.utils.HexEncode; import org.opendaylight.controller.sal.utils.IObjectReader; import org.opendaylight.controller.sal.utils.ObjectReader; import org.opendaylight.controller.sal.utils.ObjectWriter; -import org.opendaylight.controller.sal.utils.ServiceHelper; import org.opendaylight.controller.sal.utils.Status; import org.opendaylight.controller.sal.utils.StatusCode; import org.opendaylight.controller.switchmanager.IInventoryListener; @@ -94,13 +93,15 @@ CommandProvider { private String subnetFileName = null, spanFileName = null, switchConfigFileName = null; private final List spanNodeConnectors = new CopyOnWriteArrayList(); - private ConcurrentMap subnets; // set of Subnets keyed by the InetAddress + // set of Subnets keyed by the InetAddress + private ConcurrentMap subnets; private ConcurrentMap subnetsConfigList; private ConcurrentMap spanConfigList; - private ConcurrentMap nodeConfigList; // manually configured parameters for the node like name and tier + // manually configured parameters for the node such as name, tier, mode + private ConcurrentMap nodeConfigList; private ConcurrentMap configSaveEvent; - private ConcurrentMap> nodeProps; // properties are maintained in global container only - private ConcurrentMap> nodeConnectorProps; // properties are maintained in global container only + private ConcurrentMap> nodeProps; + private ConcurrentMap> nodeConnectorProps; private ConcurrentMap> nodeConnectorNames; private IInventoryService inventoryService; private final Set switchManagerAware = Collections @@ -663,40 +664,30 @@ CommandProvider { modeChange = true; } - try { - String nodeId = cfgObject.getNodeId(); - Node node = Node.fromString(nodeId); - Map propMapCurr = nodeProps.get(node); - Map propMap = new HashMap(); - if (propMapCurr != null) { - for (String s : propMapCurr.keySet()) { - propMap.put(s, propMapCurr.get(s).clone()); - } - } - Property desc = new Description(cfgObject.getNodeDescription()); - propMap.put(desc.getName(), desc); - Property tier = new Tier(Integer.parseInt(cfgObject.getTier())); - propMap.put(tier.getName(), tier); + String nodeId = cfgObject.getNodeId(); + Node node = Node.fromString(nodeId); + Map propMapCurr = nodeProps.get(node); + if (propMapCurr == null) { + return; + } + Map propMap = new HashMap(); + for (String s : propMapCurr.keySet()) { + propMap.put(s, propMapCurr.get(s).clone()); + } + Property desc = new Description(cfgObject.getNodeDescription()); + propMap.put(desc.getName(), desc); + Property tier = new Tier(Integer.parseInt(cfgObject.getTier())); + propMap.put(tier.getName(), tier); - if (propMapCurr == null) { - if (nodeProps.putIfAbsent(node, propMap) != null) { - // TODO rollback using Transactionality - return; - } - } else { - if (!nodeProps.replace(node, propMapCurr, propMap)) { - // TODO rollback using Transactionality - return; - } - } + if (!nodeProps.replace(node, propMapCurr, propMap)) { + // TODO rollback using Transactionality + return; + } - log.info("Set Node {}'s Mode to {}", nodeId, cfgObject.getMode()); + log.info("Set Node {}'s Mode to {}", nodeId, cfgObject.getMode()); - if (modeChange) { - notifyModeChange(node, cfgObject.isProactive()); - } - } catch (Exception e) { - log.debug("updateSwitchConfig: {}", e.getMessage()); + if (modeChange) { + notifyModeChange(node, cfgObject.isProactive()); } } @@ -888,10 +879,8 @@ CommandProvider { } // copy node properties from plugin - if (props != null) { - for (Property prop : props) { - propMap.put(prop.getName(), prop); - } + for (Property prop : props) { + propMap.put(prop.getName(), prop); } if (propMapCurr == null) { @@ -934,7 +923,6 @@ CommandProvider { @Override public void updateNodeConnector(NodeConnector nodeConnector, UpdateType type, Set props) { - Node node = nodeConnector.getNode(); Map propMap = new HashMap(); log.debug("updateNodeConnector: {} type {} props {} for container {}", @@ -954,14 +942,12 @@ CommandProvider { } } else { addNodeConnectorProp(nodeConnector, null); - addNodeProps(node, null); } addSpanPort(nodeConnector); break; case REMOVED: removeNodeConnectorAllProps(nodeConnector); - removeNodeProps(node); // clean up span config removeSpanPort(nodeConnector); @@ -990,23 +976,15 @@ CommandProvider { */ @Override public Map getNodeProps(Node node) { - if (isDefaultContainer) { - Map rv = null; - if (this.nodeProps != null) { - rv = this.nodeProps.get(node); - if (rv != null) { - /* make a copy of it */ - rv = new HashMap(rv); - } + Map rv = new HashMap(); + if (this.nodeProps != null) { + rv = this.nodeProps.get(node); + if (rv != null) { + /* make a copy of it */ + rv = new HashMap(rv); } - return rv; - } else { - // get it from default container - ISwitchManager defaultSwitchManager = (ISwitchManager) ServiceHelper - .getInstance(ISwitchManager.class, - GlobalConstants.DEFAULT.toString(), this); - return defaultSwitchManager.getNodeProps(node); } + return rv; } @Override @@ -1036,7 +1014,7 @@ CommandProvider { return; } if (!propMapCurr.get(prop.getName()).equals(nodeProps.get(node).get(prop.getName()))) { - log.warn("Cluster conflict: Unable to add property {} to node {}.", prop.getName(), node.getID()); + log.debug("Cluster conflict: Unable to add property {} to node {}.", prop.getName(), node.getID()); return; } } @@ -1135,24 +1113,15 @@ CommandProvider { } @Override - public Map getNodeConnectorProps( - NodeConnector nodeConnector) { - if (isDefaultContainer) { - Map rv = null; - if (this.nodeConnectorProps != null) { - rv = this.nodeConnectorProps.get(nodeConnector); - if (rv != null) { - rv = new HashMap(rv); - } + public Map getNodeConnectorProps(NodeConnector nodeConnector) { + Map rv = new HashMap(); + if (this.nodeConnectorProps != null) { + rv = this.nodeConnectorProps.get(nodeConnector); + if (rv != null) { + rv = new HashMap(rv); } - return rv; - } else { - // get it from default container - ISwitchManager defaultSwitchManager = (ISwitchManager) ServiceHelper - .getInstance(ISwitchManager.class, - GlobalConstants.DEFAULT.toString(), this); - return defaultSwitchManager.getNodeConnectorProps(nodeConnector); } + return rv; } @Override @@ -1662,7 +1631,13 @@ CommandProvider { if (nodeSet == null) { return; } + List nodeArray = new ArrayList(); for (Node node : nodeSet) { + nodeArray.add(node.toString()); + } + Collections.sort(nodeArray); + for (String str: nodeArray) { + Node node = Node.fromString(str); Description desc = ((Description) getNodeProp(node, Description.propertyName)); Tier tier = ((Tier) getNodeProp(node, Tier.TierPropName));