ISSUE: After controller restart, proactive flows are not installed
[controller.git] / opendaylight / switchmanager / src / main / java / org / opendaylight / controller / switchmanager / internal / SwitchManagerImpl.java
index d8180040e8d8a4e975df9cd8173319676bdb11a9..c4f4b111e3fdc976e93b2b9b01f813d87b2cb09b 100755 (executable)
@@ -41,6 +41,7 @@ import org.opendaylight.controller.clustering.services.IClusterServices;
 import org.opendaylight.controller.configuration.IConfigurationContainerAware;
 import org.opendaylight.controller.sal.core.Bandwidth;
 import org.opendaylight.controller.sal.core.Config;
+import org.opendaylight.controller.sal.core.Description;
 import org.opendaylight.controller.sal.core.Name;
 import org.opendaylight.controller.sal.core.Node;
 import org.opendaylight.controller.sal.core.NodeConnector;
@@ -581,6 +582,7 @@ public class SwitchManagerImpl implements ISwitchManager,
         }
     }
 
+    @Override
     public void updateSwitchConfig(SwitchConfig cfgObject) {
         boolean modeChange = false;
 
@@ -601,8 +603,8 @@ public class SwitchManagerImpl implements ISwitchManager,
                 } else {
                     propMap = new HashMap<String, Property>();
                 }
-                Property name = new Name(cfgObject.getNodeName());
-                propMap.put(name.getName(), name);
+                Property desc = new Description(cfgObject.getNodeDescription());
+                propMap.put(desc.getName(), desc);
                 Property tier = new Tier(Integer.parseInt(cfgObject.getTier()));
                 propMap.put(tier.getName(), tier);
                 addNodeProps(node, propMap);
@@ -735,11 +737,11 @@ public class SwitchManagerImpl implements ISwitchManager,
         // copy node properties from config
         boolean proactiveForwarding = false;
         if (nodeConfigList != null) {
-            String nodeId = node.getNodeIDString();
+            String nodeId = node.toString();
             for (SwitchConfig conf : nodeConfigList.values()) {
                 if (conf.getNodeId().equals(nodeId)) {
-                    Property name = new Name(conf.getNodeName());
-                    propMap.put(name.getName(), name);
+                    Property description = new Description(conf.getNodeDescription());
+                    propMap.put(description.getName(), description);
                     Property tier = new Tier(Integer.parseInt(conf.getTier()));
                     propMap.put(tier.getName(), tier);
                     proactiveForwarding = conf.isProactive();
@@ -1034,24 +1036,6 @@ public class SwitchManagerImpl implements ISwitchManager,
         return (propMap != null) ? propMap.get(propName) : null;
     }
 
-    @Override
-    public List<Map<String, String>> getListNodeIdNameMap() {
-        List<Map<String, String>> list = new ArrayList<Map<String, String>>();
-        Set<Node> nset = this.nodeProps.keySet();
-        if (nset == null) {
-            return list;
-        }
-        for (Node node : nset) {
-            Map<String, String> map = new HashMap<String, String>(2);
-            Name nodeName = (Name) getNodeProp(node, Name.NamePropName);
-            map.put("nodeId", node.toString());
-            map.put("nodeName", ((nodeName == null) || nodeName.getValue()
-                    .equals("")) ? node.toString() : nodeName.getValue());
-            list.add(map);
-        }
-        return list;
-    }
-
     private byte[] getHardwareMAC() {
         Enumeration<NetworkInterface> nis;
         try {
@@ -1470,9 +1454,9 @@ public class SwitchManagerImpl implements ISwitchManager,
             return;
         }
         for (Node node : nodeSet) {
-            Name name = ((Name) getNodeProp(node, Name.NamePropName));
+               Description desc = ((Description) getNodeProp(node, Description.propertyName));
             Tier tier = ((Tier) getNodeProp(node, Tier.TierPropName));
-            String nodeName = (name == null) ? "" : name.getValue();
+            String nodeName = (desc == null) ? "" : desc.getValue();
             int tierNum = (tier == null) ? 0 : tier.getValue();
             ci.println(node + "            " + node.getType()
                     + "            " + nodeName + "            " + tierNum);
@@ -1762,8 +1746,8 @@ public class SwitchManagerImpl implements ISwitchManager,
                }
                
                try {
-                       if (propName.equalsIgnoreCase(Name.NamePropName)) {
-                               return new Name(propValue);
+                       if (propName.equalsIgnoreCase(Description.propertyName)) {
+                               return new Description(propValue);
                        } else if (propName.equalsIgnoreCase(Tier.TierPropName)) {
                                int tier = Integer.parseInt(propValue);
                                return new Tier(tier);
@@ -1779,4 +1763,21 @@ public class SwitchManagerImpl implements ISwitchManager,
 
                return null;
     }
+       
+       @Override
+       public String getNodeDescription(Node node) {
+       // Check first if user configured a name
+        SwitchConfig config = getSwitchConfig(node.getNodeIDString());
+        if (config != null) {
+               String configuredDesc = config.getNodeDescription();
+               if (configuredDesc != null && !configuredDesc.isEmpty()) {
+                       return configuredDesc;
+               }
+        }
+        
+        // No name configured by user, get the node advertised name
+        Description desc = (Description) getNodeProp(node, Description.propertyName);
+        return (desc == null /*|| desc.getValue().equalsIgnoreCase("none")*/) ?        
+                                       "" : desc.getValue();
+    }
 }