From 54ee85113a041d7abd16b10c65d70078a1e76bff Mon Sep 17 00:00:00 2001 From: Terry Wilson Date: Fri, 20 Sep 2019 13:22:35 -0500 Subject: [PATCH] Handle the ovs/ovn split This is the bare minimum to run against ovs/ovn master after the split. It should be updated to handle running against system- installed OVN. Change-Id: I264200ae016e3928fb4aff3bdcc7c1a94f91cae4 --- ovsdbapp/tests/functional/base.py | 1 + ovsdbapp/venv.py | 11 +++++++---- tools/setup-ovs.sh | 6 ++++++ tox.ini | 1 + 4 files changed, 15 insertions(+), 4 deletions(-) diff --git a/ovsdbapp/tests/functional/base.py b/ovsdbapp/tests/functional/base.py index 1fe54c59..c02ef9e5 100644 --- a/ovsdbapp/tests/functional/base.py +++ b/ovsdbapp/tests/functional/base.py @@ -24,6 +24,7 @@ class FunctionalTestCase(base.TestCase): _connections = None ovsvenv = venv.OvsOvnVenvFixture(tempfile.mkdtemp(), ovsdir=os.getenv('OVS_SRCDIR'), + ovndir=os.getenv('OVN_SRCDIR'), remove=not bool(os.getenv('KEEP_VENV'))) atexit.register(ovsvenv.cleanUp) ovsvenv.setUp() diff --git a/ovsdbapp/venv.py b/ovsdbapp/venv.py index c59a67a3..c40d79b5 100644 --- a/ovsdbapp/venv.py +++ b/ovsdbapp/venv.py @@ -129,26 +129,29 @@ class OvsVenvFixture(fixtures.Fixture): class OvsOvnVenvFixture(OvsVenvFixture): - PATH_VAR_TEMPLATE = OvsVenvFixture.PATH_VAR_TEMPLATE + ( - ":{0}/ovn/controller:{0}/ovn/northd:{0}/ovn/utilities") def __init__(self, *args, **kwargs): self.add_chassis = kwargs.pop('add_chassis', False) + self.ovndir = kwargs.pop('ovndir') + self.PATH_VAR_TEMPLATE += ( + ":{0}/controller:{0}/northd:{0}/utilities".format( + self.ovndir)) super(OvsOvnVenvFixture, self).__init__(*args, **kwargs) + self.env.update({'OVN_RUNDIR': self.venv}) @property def ovnsb_schema(self): path = os.path.join(self.ovsdir, 'ovn', 'ovn-sb.ovsschema') if os.path.isfile(path): return path - return os.path.join(self.ovsdir, 'ovn-sb.ovsschema') + return os.path.join(self.ovndir, 'ovn-sb.ovsschema') @property def ovnnb_schema(self): path = os.path.join(self.ovsdir, 'ovn', 'ovn-nb.ovsschema') if os.path.isfile(path): return path - return os.path.join(self.ovsdir, 'ovn-nb.ovsschema') + return os.path.join(self.ovndir, 'ovn-nb.ovsschema') @property def ovnnb_connection(self): diff --git a/tools/setup-ovs.sh b/tools/setup-ovs.sh index cfd3e53a..f6cfeea0 100755 --- a/tools/setup-ovs.sh +++ b/tools/setup-ovs.sh @@ -9,3 +9,9 @@ if [ "$OVS_SRCDIR" -a ! -d "$OVS_SRCDIR" ]; then git clone git://github.com/openvswitch/ovs.git $OVS_SRCDIR (cd $OVS_SRCDIR && ./boot.sh && PYTHON=/usr/bin/python ./configure && make -j$(($(nproc) + 1))) fi +if [ "$OVN_SRCDIR" -a ! -d "$OVN_SRCDIR" ]; then + echo "Building OVN in $OVN_SRCDIR" + mkdir -p $OVN_SRCDIR + git clone git://github.com/ovn-org/ovn.git $OVN_SRCDIR + (cd $OVN_SRCDIR && ./boot.sh && PYTHON=/usr/bin/python ./configure --with-ovs-source=$OVS_SRCDIR && make -j$(($(nproc) + 1))) +fi diff --git a/tox.ini b/tox.ini index bd94bda5..a6b82687 100644 --- a/tox.ini +++ b/tox.ini @@ -46,6 +46,7 @@ commands = oslo_debug_helper {posargs} setenv = {[testenv]setenv} OS_TEST_PATH=./ovsdbapp/tests/functional OVS_SRCDIR={envdir}/src/ovs + OVN_SRCDIR={envdir}/src/ovn passenv = KEEP_VENV commands = {toxinidir}/tools/setup-ovs.sh