Bug 4128 - Addition of chain in neutron mapping OS environment causes tunnel NPE 66/26666/2
authorKeith Burns (alagalah) <alagalah@gmail.com>
Tue, 18 Aug 2015 14:47:12 +0000 (07:47 -0700)
committerKeith Burns <alagalah@gmail.com>
Tue, 8 Sep 2015 22:02:25 +0000 (22:02 +0000)
Change-Id: I3587c717e0c8ea23f72bceb93a7424ce9e93554f
Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>
neutron-ovsdb/src/main/java/org/opendaylight/groupbasedpolicy/neutron/ovsdb/util/InventoryHelper.java
renderers/ofoverlay/src/main/java/org/opendaylight/groupbasedpolicy/renderer/ofoverlay/flow/DestinationMapper.java

index 3762b9af929f7505124a606a58edee383592ddd1..11c4889d88332bd6957b6d3da30cfc09932da323 100755 (executable)
@@ -270,7 +270,7 @@ public class InventoryHelper {
             ofOverlayNodeConfigBuilder.setTunnel(new ArrayList<Tunnel>(existingTunnels));
         }
         OfOverlayNodeConfig newConfig = ofOverlayNodeConfigBuilder.build();
-        if (addTunnelsOfOverlayConfig(newConfig.getTunnel(), new NodeId(nodeIdString), dataBroker)) {
+        if (addOfOverlayConfig(newConfig, new NodeId(nodeIdString), dataBroker)) {
             LOG.trace("updateOfOverlayConfig - Added Tunnel: {} to Node: {} at NodeConnector: {}",tunnelBuilder.build(), nodeIdString, nodeConnectorIdString);
             return;
         } else {
@@ -316,6 +316,17 @@ public class InventoryHelper {
         }
     }
 
+    private static boolean addOfOverlayConfig(OfOverlayNodeConfig newConfig, NodeId nodeId, DataBroker dataBroker) {
+        ReadWriteTransaction wTx = dataBroker.newReadWriteTransaction();
+        InstanceIdentifier<OfOverlayNodeConfig> ofOverlayNodeIid = InstanceIdentifier.builder(Nodes.class)
+            .child(Node.class, new NodeKey(nodeId))
+            .augmentation(OfOverlayNodeConfig.class)
+            .build();
+        wTx.put(LogicalDatastoreType.CONFIGURATION, ofOverlayNodeIid, newConfig, true);
+        LOG.trace("Adding tunnel: {} to node {}", newConfig, nodeId.getValue());
+        return submitToDs(wTx);
+    }
+
     private static boolean addTunnelsOfOverlayConfig(List<Tunnel> tunnels, NodeId nodeId, DataBroker dataBroker) {
         ReadWriteTransaction wTx = dataBroker.newReadWriteTransaction();
         for (Tunnel tunnel : tunnels) {
index 5b63354f090fcd85f9d8371c1a02ae637a70a315..cb78725e3fb9004aca09da3efb63d1c08e1d26f5 100755 (executable)
@@ -234,7 +234,6 @@ public class DestinationMapper extends FlowTable {
                 }
             }
         }
-
     }
 
     // set up next-hop destinations for all the endpoints in the endpoint