<modelVersion>4.0.0</modelVersion>
<groupId>org.opendaylight.ovsdb</groupId>
- <artifactId>utils.it-utils</artifactId>
+ <artifactId>utils.ovsdb-it-utils</artifactId>
<version>1.3.0-SNAPSHOT</version>
<packaging>bundle</packaging>
<artifactId>sal-binding-api</artifactId>
</dependency>
<dependency>
- <groupId>org.opendaylight.ovsdb</groupId>
+ <groupId>${project.groupId}</groupId>
<artifactId>southbound-api</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
- <groupId>org.opendaylight.ovsdb</groupId>
+ <groupId>${project.groupId}</groupId>
<artifactId>utils.mdsal-utils</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
- <groupId>org.opendaylight.ovsdb</groupId>
+ <groupId>${project.groupId}</groupId>
<artifactId>utils.southbound-utils</artifactId>
<version>${project.version}</version>
</dependency>
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
-package org.opendaylight.ovsdb.utils.it.utils;
+package org.opendaylight.ovsdb.utils.ovsdb.it.utils;
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import java.util.List;
+
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
import org.opendaylight.ovsdb.utils.mdsal.utils.NotifyingDataChangeListener;
import org.opendaylight.ovsdb.utils.southbound.utils.SouthboundUtils;
NotifyingDataChangeListener ovsdbWaiter;
NotifyingDataChangeListener bridgeWaiter;
List<NotifyingDataChangeListener> waitList;
- ItUtils itUtils;
+ OvsdbItUtils itUtils;
/**
- * Create a new NodeInfo object
+ * Create a new NodeInfo object.
* @param connectionInfo of the OVSDB node
- * @param itUtils ItUtils instance
+ * @param itUtils OvsdbItUtils instance
* @param waitList for tracking outstanding md-sal events
*/
- NodeInfo(ConnectionInfo connectionInfo, ItUtils itUtils, List<NotifyingDataChangeListener> waitList) {
+ NodeInfo(ConnectionInfo connectionInfo, OvsdbItUtils itUtils, List<NotifyingDataChangeListener> waitList) {
this.connectionInfo = connectionInfo;
this.itUtils = itUtils;
this.waitList = waitList;
/**
* Connect to the OVSDB node, wait for the connection to be established and for the integration bridge
* to be successfully created. Contains assertions for unexpected states
- * @throws InterruptedException
+ * @throws InterruptedException if interrupted while waiting for connection
*/
public void connect() throws InterruptedException {
ovsdbWaiter = new NotifyingDataChangeListener(LogicalDatastoreType.OPERATIONAL, ovsdbIid, waitList);
/**
* Remove integration bridge and teardown connection. Contains assertions for unexpected states.
- * @throws InterruptedException
+ * @throws InterruptedException if interrupted while waiting for disconnect to complete
*/
public void disconnect() throws InterruptedException {
assertTrue(itUtils.southboundUtils.deleteBridge(connectionInfo, INTEGRATION_BRIDGE_NAME, 0));
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
-package org.opendaylight.ovsdb.utils.it.utils;
+package org.opendaylight.ovsdb.utils.ovsdb.it.utils;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import java.util.List;
+
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
import org.opendaylight.ovsdb.utils.mdsal.utils.MdsalUtils;
import org.opendaylight.ovsdb.utils.mdsal.utils.NotifyingDataChangeListener;
import org.opendaylight.ovsdb.utils.southbound.utils.SouthboundUtils;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Uri;
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.ControllerEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.ConnectionInfo;
-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.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;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* This class contains various utility methods used in OVSDB integration tests (IT).
*/
-public class ItUtils {
- private static final Logger LOG = LoggerFactory.getLogger(ItUtils.class);
+public class OvsdbItUtils {
+ private static final Logger LOG = LoggerFactory.getLogger(OvsdbItUtils.class);
MdsalUtils mdsalUtils;
SouthboundUtils southboundUtils;
DataBroker dataBroker;
/**
- * Create a new ItUtils instance
+ * Create a new OvsdbItUtils instance.
* @param dataBroker md-sal data broker
*/
- public ItUtils(DataBroker dataBroker) {
+ public OvsdbItUtils(DataBroker dataBroker) {
this.dataBroker = dataBroker;
mdsalUtils = new MdsalUtils(dataBroker);
southboundUtils = new SouthboundUtils(mdsalUtils);
}
/**
- * Get a NodeInfo instance initialized with this ItUtil's DataBroker
+ * Get a NodeInfo instance initialized with this ItUtil's DataBroker.
* @param connectionInfo ConnectionInfo for the OVSDB server
* @param waitList For tracking outstanding md-sal events notifications
- * @return
+ * @return a new NodeInfo object
*/
public NodeInfo createNodeInfo(ConnectionInfo connectionInfo, List<NotifyingDataChangeListener> waitList) {
return new NodeInfo(connectionInfo, this, waitList);
* AssertionError for any number of unexpected states.
* @param connectionInfo
* @return true if connected
- * @throws InterruptedException
+ * @throws InterruptedException if interrupted while waiting for connection to appear
*/
public boolean isControllerConnected(ConnectionInfo connectionInfo) throws InterruptedException {
LOG.info("isControllerConnected enter");
return false;
}
+ /**
+ * Get a DataBroker and assert that it is not null.
+ * @param providerContext ProviderContext from which to retrieve the DataBroker
+ * @return the Databroker
+ */
public static DataBroker getDatabroker(BindingAwareBroker.ProviderContext providerContext) {
DataBroker dataBroker = providerContext.getSALService(DataBroker.class);
assertNotNull("dataBroker should not be null", dataBroker);
return dataBroker;
}
- public Boolean getNetvirtTopology() {
- LOG.info("getNetvirtTopology: looking for {}...", ItConstants.NETVIRT_TOPOLOGY_ID);
- Boolean found = false;
- final TopologyId topologyId = new TopologyId(new Uri(ItConstants.NETVIRT_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("getNetvirtTopology: found {}...", ItConstants.NETVIRT_TOPOLOGY_ID);
- found = true;
- break;
- } else {
- LOG.info("getNetvirtTopology: still looking (try {})...", i);
- try {
- Thread.sleep(1000);
- } catch (InterruptedException e) {
- LOG.warn("Interrupted while waiting for {}", ItConstants.NETVIRT_TOPOLOGY_ID, e);
- }
- }
- }
- return found;
- }
}