Fix for bridge other config in mdsal. 51/19551/2
authorSharad Mishra <sharad.d.mishra@intel.com>
Mon, 4 May 2015 09:47:46 +0000 (02:47 -0700)
committerSharad Mishra <sharad.d.mishra@intel.com>
Mon, 4 May 2015 16:45:39 +0000 (09:45 -0700)
bridge other config are not showing up in operational or ovsdb.

Change-Id: Id1fd2f4f57fdd3aef1a25bf08229df26f6d3c76d
Signed-off-by: Sharad Mishra <sharad.d.mishra@intel.com>
southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/BridgeUpdateCommand.java

index bfc4143af946543bc62501d039bd667331053fee..4625aec4c984e6405055f1dcde57a99ec7e09122 100644 (file)
@@ -10,6 +10,7 @@ package org.opendaylight.ovsdb.southbound.ovsdb.transact;
 import static org.opendaylight.ovsdb.lib.operations.Operations.op;
 
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
 
@@ -27,12 +28,14 @@ import org.opendaylight.ovsdb.southbound.SouthboundMapper;
 import org.opendaylight.ovsdb.southbound.SouthboundUtil;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeInternal;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbBridgeAugmentation;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.bridge.attributes.BridgeOtherConfigs;
 import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Optional;
+import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Sets;
 
 public class BridgeUpdateCommand extends AbstractTransactCommand {
@@ -70,6 +73,7 @@ public class BridgeUpdateCommand extends AbstractTransactCommand {
         setFailMode(bridge, ovsdbManagedNode);
         setDataPathType(bridge, ovsdbManagedNode);
         setOpenDaylightIidExternalId(bridge, iid);
+        setOpenDaylightOtherConfig(bridge, ovsdbManagedNode);
         if (!operationalBridgeOptional.isPresent()) {
             setName(bridge, ovsdbManagedNode,operationalBridgeOptional);
             setPort(transaction, bridge, ovsdbManagedNode);
@@ -116,6 +120,23 @@ public class BridgeUpdateCommand extends AbstractTransactCommand {
 
 
 
+    private void setOpenDaylightOtherConfig(Bridge bridge, OvsdbBridgeAugmentation ovsdbManagedNode) {
+        List<BridgeOtherConfigs> bridgeOtherConfig = ovsdbManagedNode.getBridgeOtherConfigs();
+        if (bridgeOtherConfig != null) {
+            HashMap<String, String> otherConfigMap = new HashMap<String, String>();
+            for (BridgeOtherConfigs otherConf : bridgeOtherConfig) {
+                otherConfigMap.put(otherConf.getBridgeOtherConfigKey(), otherConf.getBridgeOtherConfigValue());
+            }
+            try {
+                bridge.setOtherConfig(ImmutableMap.copyOf(otherConfigMap));
+            } catch (NullPointerException e) {
+                LOG.warn("Incomplete bridge other config");
+            }
+        }
+    }
+
+
+
     private void setPort(TransactionBuilder transaction, Bridge bridge,
             OvsdbBridgeAugmentation ovsdbManagedNode) {