Add support for bridge external-ids. 08/17808/3
authorSharad Mishra <sharad.d.mishra@intel.com>
Mon, 6 Apr 2015 08:47:35 +0000 (01:47 -0700)
committerSharad Mishra <sharad.d.mishra@intel.com>
Wed, 8 Apr 2015 06:59:54 +0000 (23:59 -0700)
updated the yang model and impl to use "bridge-external-ids".

Change-Id: I6fbf9383557ddf115408fe398a4ba2aeb7134738
Signed-off-by: Sharad Mishra <sharad.d.mishra@intel.com>
Add support for bridge external-ids

Change-Id: I850d32c55485acf566b5b419aaf22e782af37df7
Signed-off-by: Sharad Mishra <sharad.d.mishra@intel.com>
southbound/southbound-api/src/main/yang/ovsdb.yang
southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbBridgeUpdateCommand.java

index 301f7b92dc1a39deb507e8ca0af30218ecc25e4d..09468eb80eba96fd70182ebf275e085309401ac7 100755 (executable)
@@ -176,6 +176,21 @@ module ovsdb {
             description "The OVSDB which this bridge belongs to";
             type ovsdb-node-ref;
         }
+
+        list bridge-external-ids {
+            description "Bridge external id";
+            key "bridge-external-id-key";
+            leaf bridge-external-id-key {
+                description "external-id name/key";
+                type string;
+                mandatory true;
+            }
+            leaf bridge-external-id-value {
+                description "bridge-external-id value";
+                type string;
+                mandatory true;
+            }
+         }
     }
 
     grouping ovsdb-node-attributes {
index 3381fc2f40aabcff4476ef4c24b2138d45b9a259..1e51f816c2db822b975363a0c2bd71699d993eea 100644 (file)
@@ -4,6 +4,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
+import java.util.Set;
 
 import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
@@ -26,6 +27,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.re
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbNodeAugmentation;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbNodeAugmentationBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbNodeRef;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.bridge.attributes.BridgeExternalIds;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.bridge.attributes.BridgeExternalIdsBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.ManagedNodeEntry;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.ManagedNodeEntryBuilder;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
@@ -79,6 +82,24 @@ public class OvsdbBridgeUpdateCommand extends AbstractTransactionCommand {
                     ovsdbManagedNodeBuilder.setProtocolEntry(SouthboundMapper.createMdsalProtocols(bridge));
                 }
 
+                Map<String, String> externalIds = bridge.getExternalIdsColumn()
+                        .getData();
+                if (externalIds != null && !externalIds.isEmpty()) {
+                    Set<String> externalIdKeys = externalIds.keySet();
+                    List<BridgeExternalIds> externalIdsList = new ArrayList<BridgeExternalIds>();
+                    String externalIdValue;
+                    for (String externalIdKey : externalIdKeys) {
+                        externalIdValue = externalIds.get(externalIdKey);
+                        if (externalIdKey != null && externalIdValue != null) {
+                            externalIdsList.add(new BridgeExternalIdsBuilder()
+                                    .setBridgeExternalIdKey(externalIdKey)
+                                    .setBridgeExternalIdValue(externalIdValue)
+                                    .build());
+                        }
+                    }
+                    ovsdbManagedNodeBuilder.setBridgeExternalIds(externalIdsList);
+                }
+
                 if (!SouthboundMapper.createControllerEntries(bridge, updatedControllerRows).isEmpty()) {
                     ovsdbManagedNodeBuilder.setControllerEntry(
                             SouthboundMapper.createControllerEntries(bridge, updatedControllerRows));