Fixes for HwvtepSouthboundIT to run 35/42335/1
authorSam Hague <shague@redhat.com>
Fri, 22 Jul 2016 19:28:49 +0000 (15:28 -0400)
committerSam Hague <shague@redhat.com>
Fri, 22 Jul 2016 19:28:49 +0000 (15:28 -0400)
Change-Id: I12adb6221e18fd5d80c9b053c4f03b7d1d79b730
Signed-off-by: Sam Hague <shague@redhat.com>
hwvtepsouthbound/hwvtepsouthbound-it/pom.xml
hwvtepsouthbound/hwvtepsouthbound-it/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/it/HwvtepSouthboundIT.java

index d914033b4251998d03aa875fefaa2d40c3c59d8e..b18031b2d540dae2c09244075a15f24baa211844 100644 (file)
@@ -148,7 +148,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
         <artifactId>maven-failsafe-plugin</artifactId>
         <configuration>
           <excludes>
-            <exclude>**/HwvtepSouthboundIT.java</exclude>
+            <!--<exclude>**/HwvtepSouthboundIT.java</exclude>-->
           </excludes>
         </configuration>
       </plugin>
index 11d8d9f7b2662f5b39d4933ec34b39f2d6d15537..dfc4451f6d12efbe7d315441ad38a9f632759799 100644 (file)
@@ -7,6 +7,7 @@
  */
 package org.opendaylight.ovsdb.hwvtepsouthbound.it;
 
+import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 import static org.ops4j.pax.exam.CoreOptions.composite;
 import static org.ops4j.pax.exam.CoreOptions.maven;
@@ -58,6 +59,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.physical._switch.attributes.Tunnels;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TopologyId;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyKey;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
@@ -70,6 +72,7 @@ import org.ops4j.pax.exam.karaf.options.LogLevelOption.LogLevel;
 import org.ops4j.pax.exam.options.MavenUrlReference;
 import org.ops4j.pax.exam.spi.reactors.ExamReactorStrategy;
 import org.ops4j.pax.exam.spi.reactors.PerClass;
+import org.ops4j.pax.exam.util.Filter;
 import org.osgi.framework.BundleContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -104,7 +107,8 @@ public class HwvtepSouthboundIT extends AbstractMdsalTestBase {
     private static int portNumber;
     private static String connectionType;
     private static Node hwvtepNode;
-
+    @Inject @Filter(timeout=60000)
+    private static DataBroker dataBroker = null;
     @Inject
     private BundleContext bundleContext;
 
@@ -181,13 +185,13 @@ public class HwvtepSouthboundIT extends AbstractMdsalTestBase {
     }
 
     @Override
-    public String getModuleName() {
-        return "hwvtepsouthbound";
-    }
-
-    @Override
-    public String getInstanceName() {
-        return "hwvtepsouthbound-default";
+    public String getKarafDistro() {
+        return maven()
+                .groupId("org.opendaylight.ovsdb")
+                .artifactId("hwvtepsouthbound-karaf")
+                .versionAsInProject()
+                .type("zip")
+                .getURL();
     }
 
     @Override
@@ -205,6 +209,12 @@ public class HwvtepSouthboundIT extends AbstractMdsalTestBase {
         return "odl-ovsdb-hwvtepsouthbound-test";
     }
 
+    protected String usage() {
+        return "Integration Test needs a valid connection configuration as follows :\n"
+                + "active connection : mvn -Dovsdbserver.ipaddress=x.x.x.x -Dovsdbserver.port=yyyy verify\n"
+                + "passive connection : mvn -Dovsdbserver.connection=passive verify\n";
+    }
+
     @Override
     public Option getLoggingOption() {
         Option option = editConfigurationFilePut(ORG_OPS4J_PAX_LOGGING_CFG,
@@ -214,22 +224,6 @@ public class HwvtepSouthboundIT extends AbstractMdsalTestBase {
         return option;
     }
 
-    @Override
-    public String getKarafDistro() {
-        return maven()
-                .groupId("org.opendaylight.ovsdb")
-                .artifactId("hwvtepsouthbound-karaf")
-                .versionAsInProject()
-                .type("zip")
-                .getURL();
-    }
-
-    protected String usage() {
-        return "Integration Test needs a valid connection configuration as follows :\n"
-                + "active connection : mvn -Dovsdbserver.ipaddress=x.x.x.x -Dovsdbserver.port=yyyy verify\n"
-                + "passive connection : mvn -Dovsdbserver.connection=passive verify\n";
-    }
-
     private Option[] getPropertiesOptions() {
         Properties props = new Properties(System.getProperties());
         String addressStr = props.getProperty(SERVER_IPADDRESS, DEFAULT_SERVER_IPADDRESS);
@@ -260,10 +254,6 @@ public class HwvtepSouthboundIT extends AbstractMdsalTestBase {
             LOG.warn("Failed to setup test", e);
             fail("Failed to setup test: " + e);
         }
-        //dataBroker = getSession().getSALService(DataBroker.class);
-        Thread.sleep(3000);
-        DataBroker dataBroker = HwvtepSouthboundProvider.getDb();
-        Assert.assertNotNull("db should not be null", dataBroker);
 
         addressStr = bundleContext.getProperty(SERVER_IPADDRESS);
         String portStr = bundleContext.getProperty(SERVER_PORT);
@@ -284,6 +274,7 @@ public class HwvtepSouthboundIT extends AbstractMdsalTestBase {
         }
 
         mdsalUtils = new MdsalUtils(dataBroker);
+        assertTrue("Did not find " + HwvtepSouthboundConstants.HWVTEP_TOPOLOGY_ID.getValue(), getHwvtepTopology());
         final ConnectionInfo connectionInfo = getConnectionInfo(addressStr, portNumber);
         final InstanceIdentifier<Node> iid = HwvtepSouthboundUtils.createInstanceIdentifier(connectionInfo);
         final DataTreeIdentifier<Node> treeId =
@@ -314,6 +305,31 @@ public class HwvtepSouthboundIT extends AbstractMdsalTestBase {
         setup = true;
     }
 
+    private Boolean getHwvtepTopology() {
+        LOG.info("getHwvtepTopology: looking for {}...", HwvtepSouthboundConstants.HWVTEP_TOPOLOGY_ID.getValue());
+        Boolean found = false;
+        final TopologyId topologyId = HwvtepSouthboundConstants.HWVTEP_TOPOLOGY_ID;
+        InstanceIdentifier<Topology> path =
+                InstanceIdentifier.create(NetworkTopology.class).child(Topology.class, new TopologyKey(topologyId));
+        for (int i = 0; i < 60; i++) {
+            Topology topology = mdsalUtils.read(LogicalDatastoreType.OPERATIONAL, path);
+            if (topology != null) {
+                LOG.info("getHwvtepTopology: found {}...", HwvtepSouthboundConstants.HWVTEP_TOPOLOGY_ID.getValue());
+                found = true;
+                break;
+            } else {
+                LOG.info("getHwvtepTopology: still looking ({})...", i);
+                try {
+                    Thread.sleep(1000);
+                } catch (InterruptedException e) {
+                    LOG.warn("Interrupted while waiting for {}",
+                            HwvtepSouthboundConstants.HWVTEP_TOPOLOGY_ID.getValue(), e);
+                }
+            }
+        }
+        return found;
+    }
+
     private Node connectHwvtepNode(ConnectionInfo connectionInfo) throws InterruptedException {
         final InstanceIdentifier<Node> iid = HwvtepSouthboundUtils.createInstanceIdentifier(connectionInfo);
         Assert.assertTrue(mdsalUtils.put(LogicalDatastoreType.CONFIGURATION,