Hello community, here is the log from the commit of package python-ovsdbapp for openSUSE:Factory checked in at 2019-03-07 10:49:45 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-ovsdbapp (Old) and /work/SRC/openSUSE:Factory/.python-ovsdbapp.new.28833 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-ovsdbapp" Thu Mar 7 10:49:45 2019 rev:2 rq:682023 version:0.12.3 Changes: -------- --- /work/SRC/openSUSE:Factory/python-ovsdbapp/python-ovsdbapp.changes 2018-12-08 11:21:58.590747174 +0100 +++ /work/SRC/openSUSE:Factory/.python-ovsdbapp.new.28833/python-ovsdbapp.changes 2019-03-07 10:50:35.897850980 +0100 @@ -1,0 +2,8 @@ +Wed Mar 6 07:38:17 UTC 2019 - cloud-de...@suse.de + +- update to version 0.12.3 + - Allow read-only Commands to bypass txns in execute() + - Convert base commands to ReadOnlyCommand + - Move ovsdbapp jobs to its tree + +------------------------------------------------------------------- Old: ---- ovsdbapp-0.12.2.tar.gz New: ---- ovsdbapp-0.12.3.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-ovsdbapp.spec ++++++ --- /var/tmp/diff_new_pack.9nhWk1/_old 2019-03-07 10:50:37.205850631 +0100 +++ /var/tmp/diff_new_pack.9nhWk1/_new 2019-03-07 10:50:37.209850631 +0100 @@ -1,7 +1,7 @@ # # spec file for package python-ovsdbapp # -# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,7 +18,7 @@ %define with_tests 0 Name: python-ovsdbapp -Version: 0.12.2 +Version: 0.12.3 Release: 0 Summary: A library for creating OVSDB applications License: Apache-2.0 ++++++ ovsdbapp-0.12.2.tar.gz -> ovsdbapp-0.12.3.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.2/.zuul.yaml new/ovsdbapp-0.12.3/.zuul.yaml --- old/ovsdbapp-0.12.2/.zuul.yaml 2018-09-27 17:46:49.000000000 +0200 +++ new/ovsdbapp-0.12.3/.zuul.yaml 1970-01-01 01:00:00.000000000 +0100 @@ -1,18 +0,0 @@ -- project: - templates: - - openstack-python-jobs - - openstack-python35-jobs - - check-requirements - check: - jobs: - - openstack-tox-lower-constraints - - openstack-tox-functional - - legacy-tempest-dsvm-networking-ovn-ovs-release-ovsdbapp-src: - voting: false - irrelevant-files: - - ^(test-|)requirements.txt$ - - ^setup.cfg$ - gate: - jobs: - - openstack-tox-lower-constraints - - openstack-tox-functional diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.2/AUTHORS new/ovsdbapp-0.12.3/AUTHORS --- old/ovsdbapp-0.12.2/AUTHORS 2018-09-27 17:48:20.000000000 +0200 +++ new/ovsdbapp-0.12.3/AUTHORS 2019-02-06 23:10:52.000000000 +0100 @@ -45,7 +45,6 @@ YAMAMOTO Takashi <yamam...@midokura.com> Yalei Wang <yalei.w...@intel.com> Yi Zhao <zha...@cmss.chinamobile.com> -Zuul <z...@review.openstack.org> chenxing <chen.x...@99cloud.net> gengchc2 <geng.changc...@zte.com.cn> hgangwx <hgan...@cn.ibm.com> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.2/ChangeLog new/ovsdbapp-0.12.3/ChangeLog --- old/ovsdbapp-0.12.2/ChangeLog 2018-09-27 17:48:20.000000000 +0200 +++ new/ovsdbapp-0.12.3/ChangeLog 2019-02-06 23:10:52.000000000 +0100 @@ -1,6 +1,13 @@ CHANGES ======= +0.12.3 +------ + +* Convert base commands to ReadOnlyCommand +* Allow read-only Commands to bypass txns in execute() +* Move ovsdbapp jobs to its tree + 0.12.2 ------ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.2/PKG-INFO new/ovsdbapp-0.12.3/PKG-INFO --- old/ovsdbapp-0.12.2/PKG-INFO 2018-09-27 17:48:22.000000000 +0200 +++ new/ovsdbapp-0.12.3/PKG-INFO 2019-02-06 23:10:53.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: ovsdbapp -Version: 0.12.2 +Version: 0.12.3 Summary: A library for creating OVSDB applications Home-page: http://www.openstack.org/ Author: OpenStack diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.2/RELEASENOTES.rst new/ovsdbapp-0.12.3/RELEASENOTES.rst --- old/ovsdbapp-0.12.2/RELEASENOTES.rst 2018-09-27 17:48:22.000000000 +0200 +++ new/ovsdbapp-0.12.3/RELEASENOTES.rst 1970-01-01 01:00:00.000000000 +0100 @@ -1,3 +0,0 @@ -======== -ovsdbapp -======== diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.2/ovsdbapp/backend/ovs_idl/command.py new/ovsdbapp-0.12.3/ovsdbapp/backend/ovs_idl/command.py --- old/ovsdbapp-0.12.2/ovsdbapp/backend/ovs_idl/command.py 2018-09-27 17:46:34.000000000 +0200 +++ new/ovsdbapp-0.12.3/ovsdbapp/backend/ovs_idl/command.py 2019-02-06 23:09:55.000000000 +0100 @@ -25,12 +25,17 @@ class BaseCommand(api.Command): + READ_ONLY = False + def __init__(self, api): self.api = api self.result = None def execute(self, check_error=False, log_errors=True): try: + if self.READ_ONLY: + self.run_idl(None) + return self.result with self.api.transaction(check_error, log_errors) as txn: txn.add(self) return self.result @@ -60,6 +65,10 @@ if k not in ['api', 'result'])) +class ReadOnlyCommand(BaseCommand): + READ_ONLY = True + + class AddCommand(BaseCommand): table_name = [] # unhashable, won't be looked up @@ -171,7 +180,7 @@ setattr(record, self.column, value) -class DbGetCommand(BaseCommand): +class DbGetCommand(ReadOnlyCommand): def __init__(self, api, table, record, column): super(DbGetCommand, self).__init__(api) self.table = table @@ -191,7 +200,7 @@ self.result = result -class DbListCommand(BaseCommand): +class DbListCommand(ReadOnlyCommand): def __init__(self, api, table, records, columns, if_exists, row=False): super(DbListCommand, self).__init__(api) self.table = table @@ -254,7 +263,7 @@ match=records_found[0]) -class DbFindCommand(BaseCommand): +class DbFindCommand(ReadOnlyCommand): def __init__(self, api, table, *conditions, **kwargs): super(DbFindCommand, self).__init__(api) self.table = self.api._tables[table] @@ -274,7 +283,7 @@ ] -class BaseGetRowCommand(BaseCommand): +class BaseGetRowCommand(ReadOnlyCommand): def __init__(self, api, record): super(BaseGetRowCommand, self).__init__(api) self.record = record diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.2/ovsdbapp/schema/open_vswitch/commands.py new/ovsdbapp-0.12.3/ovsdbapp/schema/open_vswitch/commands.py --- old/ovsdbapp-0.12.2/ovsdbapp/schema/open_vswitch/commands.py 2018-09-27 17:46:34.000000000 +0200 +++ new/ovsdbapp-0.12.3/ovsdbapp/schema/open_vswitch/commands.py 2019-02-06 23:09:55.000000000 +0100 @@ -41,7 +41,7 @@ self.result = row.uuid -class GetManagerCommand(BaseCommand): +class GetManagerCommand(command.ReadOnlyCommand): def __init__(self, api): super(GetManagerCommand, self).__init__(api) @@ -143,7 +143,7 @@ br.delete() -class BridgeExistsCommand(BaseCommand): +class BridgeExistsCommand(command.ReadOnlyCommand): def __init__(self, api, name): super(BridgeExistsCommand, self).__init__(api) self.name = name @@ -153,7 +153,7 @@ 'name', self.name, None)) -class ListBridgesCommand(BaseCommand): +class ListBridgesCommand(command.ReadOnlyCommand): def __init__(self, api): super(ListBridgesCommand, self).__init__(api) @@ -190,7 +190,7 @@ br.controller = [] -class GetControllerCommand(BaseCommand): +class GetControllerCommand(command.ReadOnlyCommand): def __init__(self, api, bridge): super(GetControllerCommand, self).__init__(api) self.bridge = bridge @@ -291,7 +291,7 @@ port.delete() -class ListPortsCommand(BaseCommand): +class ListPortsCommand(command.ReadOnlyCommand): def __init__(self, api, bridge): super(ListPortsCommand, self).__init__(api) self.bridge = bridge @@ -301,7 +301,7 @@ self.result = [p.name for p in br.ports if p.name != self.bridge] -class ListIfacesCommand(BaseCommand): +class ListIfacesCommand(command.ReadOnlyCommand): def __init__(self, api, bridge): super(ListIfacesCommand, self).__init__(api) self.bridge = bridge @@ -312,7 +312,7 @@ for i in p.interfaces] -class PortToBridgeCommand(BaseCommand): +class PortToBridgeCommand(command.ReadOnlyCommand): def __init__(self, api, name): super(PortToBridgeCommand, self).__init__(api) self.name = name @@ -328,7 +328,7 @@ self.result = next(br.name for br in bridges if port in br.ports) -class InterfaceToBridgeCommand(BaseCommand): +class InterfaceToBridgeCommand(command.ReadOnlyCommand): def __init__(self, api, name): super(InterfaceToBridgeCommand, self).__init__(api) self.name = name @@ -344,7 +344,7 @@ self.result = next(br.name for br in bridges if pname in br.ports) -class GetExternalIdCommand(BaseCommand): +class GetExternalIdCommand(command.ReadOnlyCommand): def __init__(self, api, table, name, field): super(GetExternalIdCommand, self).__init__(api) self.table = table diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.2/ovsdbapp/schema/ovn_northbound/commands.py new/ovsdbapp-0.12.3/ovsdbapp/schema/ovn_northbound/commands.py --- old/ovsdbapp-0.12.2/ovsdbapp/schema/ovn_northbound/commands.py 2018-09-27 17:46:34.000000000 +0200 +++ new/ovsdbapp-0.12.3/ovsdbapp/schema/ovn_northbound/commands.py 2019-02-06 23:10:01.000000000 +0100 @@ -487,7 +487,7 @@ self.result = lsp.port_security -class LspGetUpCommand(cmd.BaseCommand): +class LspGetUpCommand(cmd.ReadOnlyCommand): def __init__(self, api, port): super(LspGetUpCommand, self).__init__(api) self.port = port @@ -509,7 +509,7 @@ lsp.enabled = self.is_enabled -class LspGetEnabledCommand(cmd.BaseCommand): +class LspGetEnabledCommand(cmd.ReadOnlyCommand): def __init__(self, api, port): super(LspGetEnabledCommand, self).__init__(api) self.port = port @@ -531,7 +531,7 @@ lsp.type = self.port_type -class LspGetTypeCommand(cmd.BaseCommand): +class LspGetTypeCommand(cmd.ReadOnlyCommand): def __init__(self, api, port): super(LspGetTypeCommand, self).__init__(api) self.port = port @@ -552,7 +552,7 @@ lsp.options = self.options -class LspGetOptionsCommand(cmd.BaseCommand): +class LspGetOptionsCommand(cmd.ReadOnlyCommand): def __init__(self, api, port): super(LspGetOptionsCommand, self).__init__(api) self.port = port @@ -573,7 +573,7 @@ lsp.dhcpv4_options = self.dhcpopt_uuid -class LspGetDhcpV4OptionsCommand(cmd.BaseCommand): +class LspGetDhcpV4OptionsCommand(cmd.ReadOnlyCommand): def __init__(self, api, port): super(LspGetDhcpV4OptionsCommand, self).__init__(api) self.port = port @@ -610,7 +610,7 @@ dhcpopt.delete() -class DhcpOptionsListCommand(cmd.BaseCommand): +class DhcpOptionsListCommand(cmd.ReadOnlyCommand): def run_idl(self, txn): self.result = [rowview.RowView(r) for r in self.api.tables['DHCP_Options'].rows.values()] @@ -631,7 +631,7 @@ dhcpopt.options = self.options -class DhcpOptionsGetOptionsCommand(cmd.BaseCommand): +class DhcpOptionsGetOptionsCommand(cmd.ReadOnlyCommand): def __init__(self, api, dhcpopt_uuid): super(DhcpOptionsGetOptionsCommand, self).__init__(api) self.dhcpopt_uuid = dhcpopt_uuid @@ -686,7 +686,7 @@ raise RuntimeError(msg) -class LrListCommand(cmd.BaseCommand): +class LrListCommand(cmd.ReadOnlyCommand): def run_idl(self, txn): self.result = [rowview.RowView(r) for r in self.api.tables['Logical_Router'].rows.values()] @@ -756,7 +756,7 @@ if_exists) -class LrpListCommand(cmd.BaseCommand): +class LrpListCommand(cmd.ReadOnlyCommand): def __init__(self, api, router): super(LrpListCommand, self).__init__(api) self.router = router @@ -777,7 +777,7 @@ lrp.enabled = self.is_enabled -class LrpGetEnabledCommand(cmd.BaseCommand): +class LrpGetEnabledCommand(cmd.ReadOnlyCommand): def __init__(self, api, port): super(LrpGetEnabledCommand, self).__init__(api) self.port = port @@ -858,7 +858,7 @@ raise RuntimeError(msg) -class LrRouteListCommand(cmd.BaseCommand): +class LrRouteListCommand(cmd.ReadOnlyCommand): def __init__(self, api, router): super(LrRouteListCommand, self).__init__(api) self.router = router @@ -967,7 +967,7 @@ match=self.match_ip) -class LrNatListCommand(cmd.BaseCommand): +class LrNatListCommand(cmd.ReadOnlyCommand): def __init__(self, api, router): super(LrNatListCommand, self).__init__(api) self.router = router @@ -1034,7 +1034,7 @@ raise -class LbListCommand(cmd.BaseCommand): +class LbListCommand(cmd.ReadOnlyCommand): def run_idl(self, txn): self.result = [rowview.RowView(r) for r in self.api.tables['Load_Balancer'].rows.values()] @@ -1079,7 +1079,7 @@ raise -class LrLbListCommand(cmd.BaseCommand): +class LrLbListCommand(cmd.ReadOnlyCommand): def __init__(self, api, router): super(LrLbListCommand, self).__init__(api) self.router = router @@ -1128,7 +1128,7 @@ raise -class LsLbListCommand(cmd.BaseCommand): +class LsLbListCommand(cmd.ReadOnlyCommand): def __init__(self, api, switch): super(LsLbListCommand, self).__init__(api) self.switch = switch @@ -1163,7 +1163,7 @@ table = 'DNS' -class DnsListCommand(cmd.BaseCommand): +class DnsListCommand(cmd.ReadOnlyCommand): def run_idl(self, txn): table = self.api.tables['DNS'] self.result = [rowview.RowView(r) for r in table.rows.values()] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.2/ovsdbapp/schema/ovn_southbound/commands.py new/ovsdbapp-0.12.3/ovsdbapp/schema/ovn_southbound/commands.py --- old/ovsdbapp-0.12.2/ovsdbapp/schema/ovn_southbound/commands.py 2018-09-27 17:46:34.000000000 +0200 +++ new/ovsdbapp-0.12.3/ovsdbapp/schema/ovn_southbound/commands.py 2019-02-06 23:09:55.000000000 +0100 @@ -75,7 +75,7 @@ chassis.delete() -class ChassisListCommand(cmd.BaseCommand): +class ChassisListCommand(cmd.ReadOnlyCommand): def run_idl(self, txn): self.result = [rowview.RowView(r) for r in self.api.tables['Chassis'].rows.values()] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.2/ovsdbapp/tests/functional/schema/open_vswitch/test_common_db.py new/ovsdbapp-0.12.3/ovsdbapp/tests/functional/schema/open_vswitch/test_common_db.py --- old/ovsdbapp-0.12.2/ovsdbapp/tests/functional/schema/open_vswitch/test_common_db.py 2018-09-27 17:46:34.000000000 +0200 +++ new/ovsdbapp-0.12.3/ovsdbapp/tests/functional/schema/open_vswitch/test_common_db.py 2019-02-06 23:09:55.000000000 +0100 @@ -69,6 +69,10 @@ columns=('name', 'datapath_type')).execute(check_error=True) self.assertTrue(all(b in res for b in self.bridges)) + def test_db_list_nested(self): + with self.api.transaction(check_error=True): + self.test_db_list() + def test_db_list_record(self): res = self.api.db_list( 'Bridge', [self.bridges[0]['name']], diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.2/ovsdbapp.egg-info/PKG-INFO new/ovsdbapp-0.12.3/ovsdbapp.egg-info/PKG-INFO --- old/ovsdbapp-0.12.2/ovsdbapp.egg-info/PKG-INFO 2018-09-27 17:48:20.000000000 +0200 +++ new/ovsdbapp-0.12.3/ovsdbapp.egg-info/PKG-INFO 2019-02-06 23:10:52.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: ovsdbapp -Version: 0.12.2 +Version: 0.12.3 Summary: A library for creating OVSDB applications Home-page: http://www.openstack.org/ Author: OpenStack diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.2/ovsdbapp.egg-info/SOURCES.txt new/ovsdbapp-0.12.3/ovsdbapp.egg-info/SOURCES.txt --- old/ovsdbapp-0.12.2/ovsdbapp.egg-info/SOURCES.txt 2018-09-27 17:48:22.000000000 +0200 +++ new/ovsdbapp-0.12.3/ovsdbapp.egg-info/SOURCES.txt 2019-02-06 23:10:53.000000000 +0100 @@ -1,6 +1,5 @@ .pylintrc .stestr.conf -.zuul.yaml AUTHORS CONTRIBUTING.rst ChangeLog @@ -98,6 +97,9 @@ ovsdbapp/tests/unit/schema/__init__.py ovsdbapp/tests/unit/schema/open_vswitch/__init__.py ovsdbapp/tests/unit/schema/open_vswitch/test_impl_idl.py +playbooks/legacy/tempest-post-common.yml +playbooks/legacy/tempest-dsvm-networking-ovn-ovs-release-ovsdbapp-src/post.yaml +playbooks/legacy/tempest-dsvm-networking-ovn-ovs-release-ovsdbapp-src/run.yaml releasenotes/notes/.placeholder releasenotes/notes/configure-ovsdb-manager-a29a148b241a125e.yaml releasenotes/source/conf.py @@ -111,4 +113,6 @@ tools/debug_venv tools/debug_venv.py tools/setup-ovs.sh -tools/test-setup.sh \ No newline at end of file +tools/test-setup.sh +zuul.d/legacy-ovsdbapp-jobs.yaml +zuul.d/project.yaml \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.2/ovsdbapp.egg-info/pbr.json new/ovsdbapp-0.12.3/ovsdbapp.egg-info/pbr.json --- old/ovsdbapp-0.12.2/ovsdbapp.egg-info/pbr.json 2018-09-27 17:48:21.000000000 +0200 +++ new/ovsdbapp-0.12.3/ovsdbapp.egg-info/pbr.json 2019-02-06 23:10:52.000000000 +0100 @@ -1 +1 @@ -{"git_version": "057eeb3", "is_release": true} \ No newline at end of file +{"git_version": "547777a", "is_release": true} \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.2/playbooks/legacy/tempest-dsvm-networking-ovn-ovs-release-ovsdbapp-src/post.yaml new/ovsdbapp-0.12.3/playbooks/legacy/tempest-dsvm-networking-ovn-ovs-release-ovsdbapp-src/post.yaml --- old/ovsdbapp-0.12.2/playbooks/legacy/tempest-dsvm-networking-ovn-ovs-release-ovsdbapp-src/post.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/ovsdbapp-0.12.3/playbooks/legacy/tempest-dsvm-networking-ovn-ovs-release-ovsdbapp-src/post.yaml 2019-02-06 23:10:01.000000000 +0100 @@ -0,0 +1,4 @@ +- hosts: primary + tasks: + + - include: ../tempest-post-common.yml diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.2/playbooks/legacy/tempest-dsvm-networking-ovn-ovs-release-ovsdbapp-src/run.yaml new/ovsdbapp-0.12.3/playbooks/legacy/tempest-dsvm-networking-ovn-ovs-release-ovsdbapp-src/run.yaml --- old/ovsdbapp-0.12.2/playbooks/legacy/tempest-dsvm-networking-ovn-ovs-release-ovsdbapp-src/run.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/ovsdbapp-0.12.3/playbooks/legacy/tempest-dsvm-networking-ovn-ovs-release-ovsdbapp-src/run.yaml 2019-02-06 23:10:01.000000000 +0100 @@ -0,0 +1,88 @@ +- hosts: all + name: Autoconverted job legacy-tempest-dsvm-networking-ovn-ovs-release-ovsdbapp-src + from old job gate-tempest-dsvm-networking-ovn-ovs-release-ovsdbapp-src-nv + tasks: + + - name: Ensure legacy workspace directory + file: + path: '{{ ansible_user_dir }}/workspace' + state: directory + + - shell: + cmd: | + set -e + set -x + cat > clonemap.yaml << EOF + clonemap: + - name: openstack-infra/devstack-gate + dest: devstack-gate + EOF + /usr/zuul-env/bin/zuul-cloner -m clonemap.yaml --cache-dir /opt/git \ + git://git.openstack.org \ + openstack-infra/devstack-gate + executable: /bin/bash + chdir: '{{ ansible_user_dir }}/workspace' + environment: '{{ zuul | zuul_legacy_vars }}' + + - shell: + cmd: | + set -e + set -x + cat << 'EOF' >>"/tmp/dg-local.conf" + [[local|localrc]] + enable_plugin networking-ovn git://git.openstack.org/openstack/networking-ovn + enable_plugin neutron-tempest-plugin git://git.openstack.org/openstack/neutron-tempest-plugin + enable_plugin octavia git://git.openstack.org/openstack/octavia + enable_service ovn-octavia + enable_service o-api + enable_service o-hk + LIBS_FROM_GIT="ovsdbapp" + OVN_DBS_LOG_LEVEL="dbg" + + EOF + executable: /bin/bash + chdir: '{{ ansible_user_dir }}/workspace' + environment: '{{ zuul | zuul_legacy_vars }}' + + - shell: + cmd: | + set -e + set -x + export PYTHONUNBUFFERED=true + export DEVSTACK_GATE_NEUTRON=1 + export DEVSTACK_GATE_TEMPEST=1 + export DEVSTACK_GATE_TEMPEST_ALL_PLUGINS=1 + export BRANCH_OVERRIDE=default + if [ "$BRANCH_OVERRIDE" != "default" ] ; then + export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE + fi + # Because we are testing a non standard project, add + # our project repository. This makes zuul do the right + # reference magic for testing changes. + export PROJECTS="openstack/networking-ovn openstack/neutron-tempest-plugin openstack/octavia $PROJECTS" + export PROJECTS="openstack/ovsdbapp $PROJECTS" + + # Keep localrc to be able to set some vars in pre_test_hook + export KEEP_LOCALRC=1 + + function pre_test_hook { + if [ -f $BASE/new/networking-ovn/devstack/pre_test_hook.sh ] ; then + . $BASE/new/networking-ovn/devstack/pre_test_hook.sh + fi + } + export -f pre_test_hook + + function post_test_hook { + if [ -f $BASE/new/networking-ovn/devstack/post_test_hook.sh ] ; then + . $BASE/new/networking-ovn/devstack/post_test_hook.sh + fi + } + export -f post_test_hook + + export DEVSTACK_GATE_SETTINGS="/opt/stack/new/networking-ovn/devstack/devstackgaterc latest-release" + + cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh + ./safe-devstack-vm-gate-wrap.sh + executable: /bin/bash + chdir: '{{ ansible_user_dir }}/workspace' + environment: '{{ zuul | zuul_legacy_vars }}' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.2/playbooks/legacy/tempest-post-common.yml new/ovsdbapp-0.12.3/playbooks/legacy/tempest-post-common.yml --- old/ovsdbapp-0.12.2/playbooks/legacy/tempest-post-common.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/ovsdbapp-0.12.3/playbooks/legacy/tempest-post-common.yml 2019-02-06 23:10:01.000000000 +0100 @@ -0,0 +1,56 @@ +# +# Copy OVN SB & NB database files: those files can be handy for debugging issues as the +# ovsdb files are stored as logs. +# + +- name: Check whether OVNSB DB was created + stat: + path: /opt/stack/data/ovs/ovnsb_db.db + register: ovnsb_file + +- name: Create destination directory to collect OVN database logs + file: path={{ ansible_user_dir }}/workspace/logs/ovs_dbs state=directory + when: ovnsb_file.stat.exists + +- name: Collect OVN databases + copy: + remote_src: true + src: '/opt/stack/data/ovs/{{ item }}.db' + dest: '{{ ansible_user_dir }}/workspace/logs/ovs_dbs/{{ item }}.txt' + with_items: + - conf + - ovnnb_db + - ovnsb_db + when: ovnsb_file.stat.exists + +- name: Copy OVN database logs + copy: + remote_src: true + src: '/opt/stack/new/{{ item }}.log' + dest: '{{ ansible_user_dir }}/workspace/logs/ovs_dbs/{{ item }}.log.txt' + with_items: + - ovsdb-server-nb + - ovsdb-server-sb + when: ovnsb_file.stat.exists + become: true + +- name: Compress OVN databases in individual files + shell: gzip -9 {{ ansible_user_dir }}/workspace/logs/ovs_dbs/* + when: ovnsb_file.stat.exists + +# +# Synchronize files from workspace in node to the zuul log_root which will be stored +# + +- name: Copy files from {{ ansible_user_dir }}/workspace/ on node + synchronize: + src: '{{ ansible_user_dir }}/workspace/' + dest: '{{ zuul.executor.log_root }}' + mode: pull + copy_links: true + verify_host: true + rsync_opts: + - --include=/logs/** + - --include=*/ + - --exclude=* + - --prune-empty-dirs diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.2/releasenotes/notes/reno.cache new/ovsdbapp-0.12.3/releasenotes/notes/reno.cache --- old/ovsdbapp-0.12.2/releasenotes/notes/reno.cache 2018-09-27 17:48:22.000000000 +0200 +++ new/ovsdbapp-0.12.3/releasenotes/notes/reno.cache 1970-01-01 01:00:00.000000000 +0100 @@ -1,3 +0,0 @@ ---- -file-contents: {} -notes: [] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.2/zuul.d/legacy-ovsdbapp-jobs.yaml new/ovsdbapp-0.12.3/zuul.d/legacy-ovsdbapp-jobs.yaml --- old/ovsdbapp-0.12.2/zuul.d/legacy-ovsdbapp-jobs.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/ovsdbapp-0.12.3/zuul.d/legacy-ovsdbapp-jobs.yaml 2019-02-06 23:10:01.000000000 +0100 @@ -0,0 +1,13 @@ +- job: + name: ovsdbapp-tempest-dsvm-networking-ovn-ovs-release + parent: legacy-networking-ovn-dsvm-base + run: playbooks/legacy/tempest-dsvm-networking-ovn-ovs-release-ovsdbapp-src/run.yaml + post-run: playbooks/legacy/tempest-dsvm-networking-ovn-ovs-release-ovsdbapp-src/post.yaml + timeout: 7800 + required-projects: + - openstack-infra/devstack-gate + - openstack/networking-ovn + - openstack/neutron-tempest-plugin + - openstack/ovsdbapp + - openstack/octavia + - openstack/tempest diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.2/zuul.d/project.yaml new/ovsdbapp-0.12.3/zuul.d/project.yaml --- old/ovsdbapp-0.12.2/zuul.d/project.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/ovsdbapp-0.12.3/zuul.d/project.yaml 2019-02-06 23:10:01.000000000 +0100 @@ -0,0 +1,15 @@ +- project: + templates: + - openstack-python-jobs + - openstack-python35-jobs + - check-requirements + check: + jobs: + - openstack-tox-lower-constraints + - openstack-tox-functional + - ovsdbapp-tempest-dsvm-networking-ovn-ovs-release + gate: + jobs: + - openstack-tox-lower-constraints + - openstack-tox-functional + - ovsdbapp-tempest-dsvm-networking-ovn-ovs-release