Made TransactionUtils easier to use 79/15679/1
authorEd Warnicke <eaw@cisco.com>
Tue, 24 Feb 2015 18:37:41 +0000 (11:37 -0700)
committerEd Warnicke <eaw@cisco.com>
Tue, 24 Feb 2015 18:37:41 +0000 (11:37 -0700)
Change-Id: I74da5442f81f40312a62f161a74f303559f16a52
Signed-off-by: Ed Warnicke <eaw@cisco.com>
southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbBridgeRemovedCommand.java
southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbBridgeUpdateCommand.java
southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbPortTransactionCommand.java [new file with mode: 0644]
southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/TransactionUtils.java

index ebedd32bc0b72f24e1bd9b3237cd59a9cc889fbd..fe2574aba66e808ecff27b7b1830498cecf273ab 100644 (file)
@@ -6,7 +6,6 @@ import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.ovsdb.lib.message.TableUpdates;
 import org.opendaylight.ovsdb.lib.schema.DatabaseSchema;
-import org.opendaylight.ovsdb.lib.schema.typed.TypedBaseTable;
 import org.opendaylight.ovsdb.schema.openvswitch.Bridge;
 import org.opendaylight.ovsdb.southbound.OvsdbClientKey;
 import org.opendaylight.ovsdb.southbound.SouthboundMapper;
@@ -29,18 +28,15 @@ public class OvsdbBridgeRemovedCommand extends AbstractTransactionCommand {
 
     @Override
     public void execute(ReadWriteTransaction transaction) {
-        List<TypedBaseTable<?>> removedRows = TransactionUtils.extractRowsRemoved(Bridge.class, getUpdates(), getDbSchema());
-        for(TypedBaseTable<?> removedRow : removedRows) {
-            if(removedRow instanceof Bridge) {
-                Bridge bridge = (Bridge)removedRow;
-                InstanceIdentifier<Node> bridgeIid = SouthboundMapper.createInstanceIdentifier(getKey(), bridge.getUuid());
-                InstanceIdentifier<ManagedNodeEntry> mnIid = SouthboundMapper.createInstanceIndentifier(getKey())
-                        .augmentation(OvsdbNodeAugmentation.class)
-                        .child(ManagedNodeEntry.class, new ManagedNodeEntryKey(new OvsdbBridgeRef(bridgeIid)));
-                // TODO handle removal of reference to managed node from model
-                transaction.delete(LogicalDatastoreType.OPERATIONAL, bridgeIid);
-                transaction.delete(LogicalDatastoreType.OPERATIONAL, mnIid);
-            }
+        List<Bridge> removedRows = TransactionUtils.extractRowsRemoved(Bridge.class, getUpdates(), getDbSchema());
+        for(Bridge bridge : removedRows) {
+            InstanceIdentifier<Node> bridgeIid = SouthboundMapper.createInstanceIdentifier(getKey(), bridge.getUuid());
+            InstanceIdentifier<ManagedNodeEntry> mnIid = SouthboundMapper.createInstanceIndentifier(getKey())
+                    .augmentation(OvsdbNodeAugmentation.class)
+                    .child(ManagedNodeEntry.class, new ManagedNodeEntryKey(new OvsdbBridgeRef(bridgeIid)));
+            // TODO handle removal of reference to managed node from model
+            transaction.delete(LogicalDatastoreType.OPERATIONAL, bridgeIid);
+            transaction.delete(LogicalDatastoreType.OPERATIONAL, mnIid);
         }
     }
 
index 24ac432230233070d7f164fae69c61128025abac..ff42ac641f95320ba1d455fc2b0d0a769a47c3a4 100644 (file)
@@ -8,7 +8,6 @@ import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
 import org.opendaylight.ovsdb.lib.message.TableUpdates;
 import org.opendaylight.ovsdb.lib.schema.DatabaseSchema;
-import org.opendaylight.ovsdb.lib.schema.typed.TypedBaseTable;
 import org.opendaylight.ovsdb.schema.openvswitch.Bridge;
 import org.opendaylight.ovsdb.southbound.OvsdbClientKey;
 import org.opendaylight.ovsdb.southbound.SouthboundMapper;
@@ -40,50 +39,47 @@ public class OvsdbBridgeUpdateCommand extends AbstractTransactionCommand {
 
     @Override
     public void execute(ReadWriteTransaction transaction) {
-        List<TypedBaseTable<?>> updatedRows = TransactionUtils.extractRowsUpdated(Bridge.class, getUpdates(), getDbSchema());
-        for(TypedBaseTable<?> updatedRow : updatedRows) {
-            if(updatedRow instanceof Bridge) {
-                Bridge bridge = (Bridge)updatedRow;
-                final InstanceIdentifier<Node> nodePath = getKey().toInstanceIndentifier();
-                Optional<Node> node = Optional.absent();
-                try{
-                    node = transaction.read(LogicalDatastoreType.OPERATIONAL, nodePath).checkedGet();
-                }catch (final ReadFailedException e) {
-                    LOG.debug("Read Operational/DS for Node fail! {}", nodePath, e);
-                }
-                if(node.isPresent()){
-                    LOG.info("Node {} is present",node);
-                    NodeBuilder managedNodeBuilder = new NodeBuilder();
-                    NodeId manageNodeId = SouthboundMapper.createManagedNodeId(getKey(), bridge.getUuid());
-                    managedNodeBuilder.setNodeId(manageNodeId);
+        List<Bridge> updatedRows = TransactionUtils.extractRowsUpdated(Bridge.class, getUpdates(), getDbSchema());
+        for(Bridge bridge : updatedRows) {
+            final InstanceIdentifier<Node> nodePath = getKey().toInstanceIndentifier();
+            Optional<Node> node = Optional.absent();
+            try{
+                node = transaction.read(LogicalDatastoreType.OPERATIONAL, nodePath).checkedGet();
+            }catch (final ReadFailedException e) {
+                LOG.debug("Read Operational/DS for Node fail! {}", nodePath, e);
+            }
+            if(node.isPresent()){
+                LOG.info("Node {} is present",node);
+                NodeBuilder managedNodeBuilder = new NodeBuilder();
+                NodeId manageNodeId = SouthboundMapper.createManagedNodeId(getKey(), bridge.getUuid());
+                managedNodeBuilder.setNodeId(manageNodeId);
 
-                    OvsdbManagedNodeAugmentationBuilder ovsdbManagedNodeBuilder = new OvsdbManagedNodeAugmentationBuilder();
-                    ovsdbManagedNodeBuilder.setBridgeName(bridge.getName());
-                    ovsdbManagedNodeBuilder.setBridgeUuid(new Uuid(bridge.getUuid().toString()));
-                    ovsdbManagedNodeBuilder.setManagedBy(new OvsdbNodeRef(nodePath));
-                    managedNodeBuilder.addAugmentation(OvsdbManagedNodeAugmentation.class, ovsdbManagedNodeBuilder.build());
+                OvsdbManagedNodeAugmentationBuilder ovsdbManagedNodeBuilder = new OvsdbManagedNodeAugmentationBuilder();
+                ovsdbManagedNodeBuilder.setBridgeName(bridge.getName());
+                ovsdbManagedNodeBuilder.setBridgeUuid(new Uuid(bridge.getUuid().toString()));
+                ovsdbManagedNodeBuilder.setManagedBy(new OvsdbNodeRef(nodePath));
+                managedNodeBuilder.addAugmentation(OvsdbManagedNodeAugmentation.class, ovsdbManagedNodeBuilder.build());
 
-                    InstanceIdentifier<Node> managedNodePath = SouthboundMapper.createInstanceIdentifier(manageNodeId);
+                InstanceIdentifier<Node> managedNodePath = SouthboundMapper.createInstanceIdentifier(manageNodeId);
 
-                    LOG.debug("Store managed node augmentation data {}",ovsdbManagedNodeBuilder.toString());
-                    transaction.put(LogicalDatastoreType.OPERATIONAL, managedNodePath, managedNodeBuilder.build());
+                LOG.debug("Store managed node augmentation data {}",ovsdbManagedNodeBuilder.toString());
+                transaction.put(LogicalDatastoreType.OPERATIONAL, managedNodePath, managedNodeBuilder.build());
 
-                    //Update node with managed node reference
-                    NodeBuilder nodeBuilder = new NodeBuilder();
-                    nodeBuilder.setNodeId(SouthboundMapper.createNodeId(getKey().getIp(),getKey().getPort()));
+                //Update node with managed node reference
+                NodeBuilder nodeBuilder = new NodeBuilder();
+                nodeBuilder.setNodeId(SouthboundMapper.createNodeId(getKey().getIp(),getKey().getPort()));
 
-                    OvsdbNodeAugmentationBuilder ovsdbNodeBuilder = new OvsdbNodeAugmentationBuilder();
-                    List<ManagedNodeEntry> managedNodes = new ArrayList<ManagedNodeEntry>();
-                    ManagedNodeEntry entry = new ManagedNodeEntryBuilder().setBridgeRef(new OvsdbBridgeRef(managedNodePath)).build();
-                    managedNodes.add(entry);
-                    ovsdbNodeBuilder.setManagedNodeEntry(managedNodes);
+                OvsdbNodeAugmentationBuilder ovsdbNodeBuilder = new OvsdbNodeAugmentationBuilder();
+                List<ManagedNodeEntry> managedNodes = new ArrayList<ManagedNodeEntry>();
+                ManagedNodeEntry entry = new ManagedNodeEntryBuilder().setBridgeRef(new OvsdbBridgeRef(managedNodePath)).build();
+                managedNodes.add(entry);
+                ovsdbNodeBuilder.setManagedNodeEntry(managedNodes);
 
-                    nodeBuilder.addAugmentation(OvsdbNodeAugmentation.class, ovsdbNodeBuilder.build());
+                nodeBuilder.addAugmentation(OvsdbNodeAugmentation.class, ovsdbNodeBuilder.build());
 
-                    LOG.debug("Update node with managed node ref {}",ovsdbNodeBuilder.toString());
-                    transaction.merge(LogicalDatastoreType.OPERATIONAL, nodePath, nodeBuilder.build());
+                LOG.debug("Update node with managed node ref {}",ovsdbNodeBuilder.toString());
+                transaction.merge(LogicalDatastoreType.OPERATIONAL, nodePath, nodeBuilder.build());
 
-                }
             }
         }
     }
diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbPortTransactionCommand.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbPortTransactionCommand.java
new file mode 100644 (file)
index 0000000..c71039f
--- /dev/null
@@ -0,0 +1,22 @@
+package org.opendaylight.ovsdb.southbound.transactions.md;
+
+import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
+import org.opendaylight.ovsdb.lib.message.TableUpdates;
+import org.opendaylight.ovsdb.lib.schema.DatabaseSchema;
+import org.opendaylight.ovsdb.southbound.OvsdbClientKey;
+
+public class OvsdbPortTransactionCommand extends AbstractTransactionCommand {
+
+    public OvsdbPortTransactionCommand(OvsdbClientKey key,
+            TableUpdates updates, DatabaseSchema dbSchema) {
+        super(key, updates, dbSchema);
+        // TODO Auto-generated constructor stub
+    }
+
+    @Override
+    public void execute(ReadWriteTransaction transaction) {
+        // TODO Auto-generated method stub
+
+    }
+
+}
index 36cdbf7a49043b656d16d84248bae3f284aaaf2b..17d4db6b88d4a13aa9130bbf1e8c02d034ca597f 100644 (file)
@@ -17,11 +17,11 @@ import com.google.common.base.Preconditions;
 
 public class TransactionUtils {
 
-    public static List<TypedBaseTable<?>> extractRowsUpdated(Class<? extends TypedBaseTable<?>> klazz,TableUpdates updates,DatabaseSchema dbSchema) {
+    public static <T> List<T> extractRowsUpdated(Class<T> klazz,TableUpdates updates,DatabaseSchema dbSchema) {
         Preconditions.checkNotNull(klazz);
         Preconditions.checkNotNull(updates);
         Preconditions.checkNotNull(dbSchema);
-        List<TypedBaseTable<?>> result = new ArrayList<TypedBaseTable<?>>();
+        List<T> result = new ArrayList<T>();
 
         List<TableUpdate<GenericTableSchema>.RowUpdate<GenericTableSchema>> rowUpdates = extractRowUpdates(klazz,updates,dbSchema);
         for (TableUpdate<GenericTableSchema>.RowUpdate<GenericTableSchema> rowUpdate : rowUpdates) {
@@ -35,11 +35,11 @@ public class TransactionUtils {
         return result;
     }
 
-    public static List<TypedBaseTable<?>> extractRowsRemoved(Class<? extends TypedBaseTable<?>> klazz,TableUpdates updates,DatabaseSchema dbSchema) {
+    public static <T> List<T> extractRowsRemoved(Class<T> klazz,TableUpdates updates,DatabaseSchema dbSchema) {
         Preconditions.checkNotNull(klazz);
         Preconditions.checkNotNull(updates);
         Preconditions.checkNotNull(dbSchema);
-        List<TypedBaseTable<?>> result = new ArrayList<TypedBaseTable<?>>();
+        List<T> result = new ArrayList<T>();
 
         List<TableUpdate<GenericTableSchema>.RowUpdate<GenericTableSchema>> rowUpdates = extractRowUpdates(klazz,updates,dbSchema);
         for (TableUpdate<GenericTableSchema>.RowUpdate<GenericTableSchema> rowUpdate : rowUpdates) {
@@ -53,7 +53,7 @@ public class TransactionUtils {
         return result;
     }
 
-    public static List<TableUpdate<GenericTableSchema>.RowUpdate<GenericTableSchema>> extractRowUpdates(Class<? extends TypedBaseTable<?>> klazz,TableUpdates updates,DatabaseSchema dbSchema) {
+    public static List<TableUpdate<GenericTableSchema>.RowUpdate<GenericTableSchema>> extractRowUpdates(Class<?> klazz,TableUpdates updates,DatabaseSchema dbSchema) {
         Preconditions.checkNotNull(klazz);
         Preconditions.checkNotNull(updates);
         Preconditions.checkNotNull(dbSchema);