Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-ovsdbapp for openSUSE:Factory
checked in at 2021-12-12 00:57:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-ovsdbapp (Old)
and /work/SRC/openSUSE:Factory/.python-ovsdbapp.new.2520 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-ovsdbapp"
Sun Dec 12 00:57:41 2021 rev:10 rq:939548 version:1.12.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-ovsdbapp/python-ovsdbapp.changes
2021-05-10 15:39:56.097427987 +0200
+++
/work/SRC/openSUSE:Factory/.python-ovsdbapp.new.2520/python-ovsdbapp.changes
2021-12-12 00:57:57.590598809 +0100
@@ -1,0 +2,15 @@
+Mon Dec 6 09:29:45 UTC 2021 - [email protected]
+
+- update to version 1.12.0
+ - Improve "OvsdbIdl.from_server" method
+ - Don't spam retries 100s of times a second
+ - Actually close the connection in Connection.stop()
+ - Fix docs job
+ - ovn: support allow-stateless ACL verb
+ - Make exceptions in the event logs easier to read
+ - Add Python3 xena unit tests
+ - Update master for stable/wallaby
+ - Add an active wait in the "Backend.lookup"
+ - setup.cfg: Replace dashes with underscores
+
+-------------------------------------------------------------------
Old:
----
ovsdbapp-1.9.0.tar.gz
New:
----
ovsdbapp-1.12.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-ovsdbapp.spec ++++++
--- /var/tmp/diff_new_pack.WndF5V/_old 2021-12-12 00:57:58.094599155 +0100
+++ /var/tmp/diff_new_pack.WndF5V/_new 2021-12-12 00:57:58.094599155 +0100
@@ -18,13 +18,13 @@
%define with_tests 1
Name: python-ovsdbapp
-Version: 1.9.0
+Version: 1.12.0
Release: 0
Summary: A library for creating OVSDB applications
License: Apache-2.0
Group: Development/Languages/Python
URL: https://docs.openstack.org/ovsdbapp
-Source0:
https://files.pythonhosted.org/packages/source/o/ovsdbapp/ovsdbapp-1.9.0.tar.gz
+Source0:
https://files.pythonhosted.org/packages/source/o/ovsdbapp/ovsdbapp-1.12.0.tar.gz
BuildRequires: openstack-macros
BuildRequires: python3-fixtures >= 3.0.0
BuildRequires: python3-netaddr >= 0.7.18
@@ -70,7 +70,7 @@
%{py3_build}
# generate html docs
-PBR_VERSION=1.9.0 PYTHONPATH=. \
+PBR_VERSION=1.12.0 PYTHONPATH=. \
%sphinx_build -b html doc/source doc/build/html
rm -rf doc/build/html/.{doctrees,buildinfo}
++++++ _service ++++++
--- /var/tmp/diff_new_pack.WndF5V/_old 2021-12-12 00:57:58.118599172 +0100
+++ /var/tmp/diff_new_pack.WndF5V/_new 2021-12-12 00:57:58.118599172 +0100
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param
name="input-template">https://opendev.org/openstack/rpm-packaging/raw/branch/stable/wallaby/openstack/ovsdbapp/ovsdbapp.spec.j2</param>
+ <param
name="input-template">https://opendev.org/openstack/rpm-packaging/raw/master/openstack/ovsdbapp/ovsdbapp.spec.j2</param>
<param name="output-name">python-ovsdbapp.spec</param>
- <param
name="requirements">https://opendev.org/openstack/ovsdbapp/raw/branch/stable/wallaby/requirements.txt</param>
+ <param
name="requirements">https://opendev.org/openstack/ovsdbapp/raw/master/requirements.txt</param>
<param name="changelog-email">[email protected]</param>
<param name="changelog-provider">gh,openstack,ovsdbapp</param>
</service>
++++++ ovsdbapp-1.9.0.tar.gz -> ovsdbapp-1.12.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ovsdbapp-1.9.0/AUTHORS new/ovsdbapp-1.12.0/AUTHORS
--- old/ovsdbapp-1.9.0/AUTHORS 2021-03-03 15:36:06.000000000 +0100
+++ new/ovsdbapp-1.12.0/AUTHORS 2021-08-19 09:44:42.000000000 +0200
@@ -20,6 +20,7 @@
Dong Jun <[email protected]>
Doug Hellmann <[email protected]>
Doug Wiegley <[email protected]>
+Elvira Garc??a <[email protected]>
Emma Foley <[email protected]>
Flavio Fernandes <[email protected]>
Frank Wang <[email protected]>
@@ -55,6 +56,7 @@
Terry Wilson <[email protected]>
Terry Wilson <[email protected]>
Vu Cong Tuan <[email protected]>
+XinxinShen <[email protected]>
YAMAMOTO Takashi <[email protected]>
Yalei Wang <[email protected]>
Yi Zhao <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ovsdbapp-1.9.0/ChangeLog
new/ovsdbapp-1.12.0/ChangeLog
--- old/ovsdbapp-1.9.0/ChangeLog 2021-03-03 15:36:06.000000000 +0100
+++ new/ovsdbapp-1.12.0/ChangeLog 2021-08-19 09:44:42.000000000 +0200
@@ -1,6 +1,28 @@
CHANGES
=======
+1.12.0
+------
+
+* Improve "OvsdbIdl.from\_server" method
+* Make exceptions in the event logs easier to read
+
+1.11.0
+------
+
+* ovn: support allow-stateless ACL verb
+* Actually close the connection in Connection.stop()
+* Don't spam retries 100s of times a second
+* Fix docs job
+* setup.cfg: Replace dashes with underscores
+
+1.10.0
+------
+
+* Add an active wait in the "Backend.lookup"
+* Add Python3 xena unit tests
+* Update master for stable/wallaby
+
1.9.0
-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ovsdbapp-1.9.0/PKG-INFO new/ovsdbapp-1.12.0/PKG-INFO
--- old/ovsdbapp-1.9.0/PKG-INFO 2021-03-03 15:36:06.790809000 +0100
+++ new/ovsdbapp-1.12.0/PKG-INFO 2021-08-19 09:44:42.884636600 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.2
Name: ovsdbapp
-Version: 1.9.0
+Version: 1.12.0
Summary: A library for creating OVSDB applications
Home-page: https://pypi.org/project/ovsdbapp/
Author: OpenStack
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ovsdbapp-1.9.0/ovsdbapp/backend/ovs_idl/__init__.py
new/ovsdbapp-1.12.0/ovsdbapp/backend/ovs_idl/__init__.py
--- old/ovsdbapp-1.9.0/ovsdbapp/backend/ovs_idl/__init__.py 2021-03-03
15:35:28.000000000 +0100
+++ new/ovsdbapp-1.12.0/ovsdbapp/backend/ovs_idl/__init__.py 2021-08-19
09:44:11.000000000 +0200
@@ -14,6 +14,7 @@
import uuid
from ovsdbapp.backend.ovs_idl import command as cmd
+from ovsdbapp.backend.ovs_idl import event
from ovsdbapp.backend.ovs_idl import idlutils
from ovsdbapp.backend.ovs_idl import transaction
from ovsdbapp import exceptions
@@ -22,6 +23,27 @@
_NO_DEFAULT = object()
+class LookupWaitEvent(event.WaitEvent):
+
+ def __init__(self, backend, table, record, timeout):
+ events = (self.ROW_CREATE, self.ROW_UPDATE)
+ super().__init__(events, table, None, timeout=timeout)
+ self.backend = backend
+ self.record = record
+ self.event_name = 'LookupWaitEvent_%s' % table
+ self.result = None
+
+ def match_fn(self, event, row, old):
+ try:
+ # Normally, we would use run() to do things on match, but in this
+ # case, that would mean we'd have to run lookup() again.
+ with self.backend.ovsdb_connection.lock:
+ self.result = self.backend.lookup(self.table, self.record)
+ return bool(self.result)
+ except idlutils.RowNotFound:
+ return False
+
+
class Backend(object):
lookup_table = {}
_ovsdb_connection = None
@@ -171,14 +193,36 @@
return cmd.DbRemoveCommand(self, table, record, column,
*values, **keyvalues)
- def lookup(self, table, record, default=_NO_DEFAULT):
+ def lookup(self, table, record, default=_NO_DEFAULT, timeout=None,
+ notify_handler=None):
+ """Search for a record in a table
+
+ If timeout and notify_handler of type ``row_event.RowEventHandler``
+ are passed, in case the record is not present in the selected table,
+ the method creates an event, waiting for this record (UUID), on this
+ table and events CREATE and UPDATE. The event returns with the record
+ memoized if the record was created or updated.
+ """
try:
with self.ovsdb_connection.lock:
return self._lookup(table, record)
except idlutils.RowNotFound:
if default is not _NO_DEFAULT:
return default
- raise
+ if not notify_handler:
+ notify_handler = getattr(self, 'notify_handler', None)
+ if not (timeout and notify_handler):
+ raise
+
+ wait_event = LookupWaitEvent(self, table, record, timeout)
+ notify_handler.watch_event(wait_event)
+ if not wait_event.wait():
+ LOG.info('Record %s from table %s was not registered in the '
+ 'IDL DB cache after %d seconds', record, table,
+ timeout)
+ notify_handler.unwatch_event(wait_event)
+ raise
+ return wait_event.result
def _lookup(self, table, record):
if record == "":
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/ovsdbapp-1.9.0/ovsdbapp/backend/ovs_idl/connection.py
new/ovsdbapp-1.12.0/ovsdbapp/backend/ovs_idl/connection.py
--- old/ovsdbapp-1.9.0/ovsdbapp/backend/ovs_idl/connection.py 2021-03-03
15:35:28.000000000 +0100
+++ new/ovsdbapp-1.12.0/ovsdbapp/backend/ovs_idl/connection.py 2021-08-19
09:44:11.000000000 +0200
@@ -77,7 +77,9 @@
with self.lock:
if self.thread is not None:
return False
- if not self.idl.has_ever_connected():
+ if not self.idl.has_ever_connected() or self.is_running is False:
+ if self.is_running is False: # stop() was called
+ self.idl.force_reconnect()
idlutils.wait_for_change(self.idl, self.timeout)
try:
self.idl.post_connect()
@@ -132,6 +134,7 @@
tb=traceback.format_exc())
txn.results.put(er)
self.txns.task_done()
+ self.idl.close()
def stop(self, timeout=None):
if not self.is_running:
@@ -157,11 +160,28 @@
class OvsdbIdl(idl.Idl):
@classmethod
- def from_server(cls, connection_string, schema_name):
- """Create the Idl instance by pulling the schema from OVSDB server"""
- helper = idlutils.get_schema_helper(connection_string, schema_name)
- helper.register_all()
- return cls(connection_string, helper)
+ def from_server(cls, connection_string, schema_name, *args,
+ helper=None, helper_tables=None, **kwargs):
+ """Create the Idl instance by pulling the schema from OVSDB server
+
+ :param connection_string: Connection name
+ :type connection_string: string
+ :param schema_name: Schema name
+ :type schema: string
+ :param helper: Helper instance
+ :type helper: ``idl.SchemaHelper``
+ :param helper_tables: Tables to be registered in the helper
+ :type helper_tables: Iterator of strings
+ """
+ if not helper:
+ helper = idlutils.get_schema_helper(connection_string, schema_name)
+
+ if not helper_tables:
+ helper.register_all()
+ else:
+ for table in helper_tables:
+ helper.register_table(table)
+ return cls(connection_string, helper, **kwargs)
def post_connect(self):
"""Operations to execute after the Idl has connected to the server
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/ovsdbapp-1.9.0/ovsdbapp/backend/ovs_idl/transaction.py
new/ovsdbapp-1.12.0/ovsdbapp/backend/ovs_idl/transaction.py
--- old/ovsdbapp-1.9.0/ovsdbapp/backend/ovs_idl/transaction.py 2021-03-03
15:35:28.000000000 +0100
+++ new/ovsdbapp-1.12.0/ovsdbapp/backend/ovs_idl/transaction.py 2021-08-19
09:44:11.000000000 +0200
@@ -23,6 +23,7 @@
from ovsdbapp import exceptions
LOG = logging.getLogger(__name__)
+MAX_SLEEP = 8
class Transaction(api.Transaction):
@@ -74,6 +75,7 @@
def do_commit(self):
self.start_time = time.time()
attempts = 0
+ retries = 0
if not self.commands:
LOG.debug("There are no commands to commit")
return []
@@ -103,7 +105,13 @@
# TRY_AGAIN until we time out and Connection.run() calls
# idl.run() again. So, call idl.run() here just in case.
self.api.idl.run()
+
+ # In the event that there is an issue with the txn or the db
+ # is down, don't spam new txns as fast as we can
+ time.sleep(min(2 ** retries, self.time_remaining(), MAX_SLEEP))
+ retries += 1
continue
+ retries = 0
if status in (txn.ERROR, txn.NOT_LOCKED):
msg = 'OVSDB Error: '
if status == txn.NOT_LOCKED:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ovsdbapp-1.9.0/ovsdbapp/event.py
new/ovsdbapp-1.12.0/ovsdbapp/event.py
--- old/ovsdbapp-1.9.0/ovsdbapp/event.py 2021-03-03 15:35:28.000000000
+0100
+++ new/ovsdbapp-1.12.0/ovsdbapp/event.py 2021-08-19 09:44:11.000000000
+0200
@@ -14,9 +14,7 @@
import atexit
import logging
import queue
-import sys
import threading
-import traceback
LOG = logging.getLogger(__name__)
STOP_EVENT = ("STOP", None, None, None)
@@ -111,16 +109,7 @@
try:
return candidate.matches(event, row, updates)
except Exception:
- # It seems reasonable to treat an Exception as a match failure
- # as for ROW_UPDATE events old is None and users often check
- # old.external_ids etc. to see if something has changed. We
- # definitely don't want to interupt RowEventHandler.matching_events
- # and miss checking other events due to an exception in this event.
- # To avoid spamming full Exceptions for expected behavior, just
- # log the initial location of the Exception.
- _, _, tb = sys.exc_info()
- LOG.debug("Event not matched due to exception:\n%s",
- traceback.format_tb(tb)[-1])
+ LOG.exception("Event not matched due to this exception:\n")
return False
def matching_events(self, event, row, updates):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ovsdbapp-1.9.0/ovsdbapp/schema/ovn_northbound/api.py
new/ovsdbapp-1.12.0/ovsdbapp/schema/ovn_northbound/api.py
--- old/ovsdbapp-1.9.0/ovsdbapp/schema/ovn_northbound/api.py 2021-03-03
15:35:28.000000000 +0100
+++ new/ovsdbapp-1.12.0/ovsdbapp/schema/ovn_northbound/api.py 2021-08-19
09:44:11.000000000 +0200
@@ -109,7 +109,8 @@
:param match: The match rule
:type match: string
:param action: The action to take upon match
- :type action: 'allow', 'allow-related', 'drop', or 'reject'
+ :type action: 'allow', 'allow-related', 'allow-stateless', 'drop',
+ or 'reject'
:param log: If True, enable packet logging for the ACL
:type log: boolean
:returns: :class:`Command` with RowView result
@@ -159,7 +160,8 @@
:param match: The match rule
:type match: string
:param action: The action to take upon match
- :type action: 'allow', 'allow-related', 'drop', or 'reject'
+ :type action: 'allow', 'allow-related', 'allow-stateless',
+ 'drop', or 'reject'
:param log: If True, enable packet logging for the ACL
:type log: boolean
:param may_exist: If True, don't fail if the ACL already exists
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/ovsdbapp-1.9.0/ovsdbapp/schema/ovn_northbound/commands.py
new/ovsdbapp-1.12.0/ovsdbapp/schema/ovn_northbound/commands.py
--- old/ovsdbapp-1.9.0/ovsdbapp/schema/ovn_northbound/commands.py
2021-03-03 15:35:28.000000000 +0100
+++ new/ovsdbapp-1.12.0/ovsdbapp/schema/ovn_northbound/commands.py
2021-08-19 09:44:11.000000000 +0200
@@ -91,8 +91,10 @@
if not 0 <= priority <= const.ACL_PRIORITY_MAX:
raise ValueError("priority must be between 0 and %s, inclusive" % (
const.ACL_PRIORITY_MAX))
- if action not in ('allow', 'allow-related', 'drop', 'reject'):
- raise TypeError("action must be allow/allow-related/drop/reject")
+ if action not in ('allow', 'allow-related', 'allow-stateless',
+ 'drop', 'reject'):
+ raise TypeError("action must be allow/allow-related/"
+ "allow-stateless/drop/reject")
super().__init__(api)
self.entity = entity
self.direction = direction
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/ovsdbapp-1.9.0/ovsdbapp/tests/functional/backend/ovs_idl/test_backend.py
new/ovsdbapp-1.12.0/ovsdbapp/tests/functional/backend/ovs_idl/test_backend.py
---
old/ovsdbapp-1.9.0/ovsdbapp/tests/functional/backend/ovs_idl/test_backend.py
1970-01-01 01:00:00.000000000 +0100
+++
new/ovsdbapp-1.12.0/ovsdbapp/tests/functional/backend/ovs_idl/test_backend.py
2021-08-19 09:44:11.000000000 +0200
@@ -0,0 +1,63 @@
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+import threading
+import time
+import uuid
+
+from ovsdbapp.backend.ovs_idl import event
+from ovsdbapp.backend.ovs_idl import idlutils
+from ovsdbapp.schema.ovn_northbound import impl_idl
+from ovsdbapp.tests.functional import base
+
+
+class TestOvnNbIndex(base.FunctionalTestCase):
+ schemas = ['OVN_Northbound']
+
+ def setUp(self):
+ super(TestOvnNbIndex, self).setUp()
+ self.api = impl_idl.OvnNbApiIdlImpl(self.connection)
+ self.lsp_name = str(uuid.uuid4())
+ self.a = None
+
+ def _create_ls(self):
+ time.sleep(1) # Wait a bit to allow a first unsuccessful lookup().
+ self.api.db_create('Logical_Switch', name=self.lsp_name).execute()
+
+ def test_lookup_with_timeout_and_notify_handler(self):
+ notify_handler = event.RowEventHandler()
+ self.api.idl.notify = notify_handler.notify
+ t_create = threading.Thread(target=self._create_ls, args=())
+ t_create.start()
+ ret = self.api.lookup('Logical_Switch', self.lsp_name, timeout=3,
+ notify_handler=notify_handler)
+ self.assertEqual(self.lsp_name, ret.name)
+ t_create.join()
+
+ def _test_lookup_exception(self, timeout, notify_handler):
+ if notify_handler:
+ self.api.idl.notify = notify_handler.notify
+ t_create = threading.Thread(target=self._create_ls, args=())
+ t_create.start()
+ self.assertRaises(idlutils.RowNotFound, self.api.lookup,
+ 'Logical_Switch', self.lsp_name, timeout=timeout,
+ notify_handler=notify_handler)
+ t_create.join()
+
+ def test_lookup_without_timeout(self):
+ self._test_lookup_exception(0, event.RowEventHandler())
+
+ def test_lookup_without_event_handler(self):
+ self._test_lookup_exception(3, None)
+
+ def test_lookup_without_timeout_and_event_handler(self):
+ self._test_lookup_exception(0, None)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ovsdbapp-1.9.0/ovsdbapp.egg-info/PKG-INFO
new/ovsdbapp-1.12.0/ovsdbapp.egg-info/PKG-INFO
--- old/ovsdbapp-1.9.0/ovsdbapp.egg-info/PKG-INFO 2021-03-03
15:36:06.000000000 +0100
+++ new/ovsdbapp-1.12.0/ovsdbapp.egg-info/PKG-INFO 2021-08-19
09:44:42.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.2
Name: ovsdbapp
-Version: 1.9.0
+Version: 1.12.0
Summary: A library for creating OVSDB applications
Home-page: https://pypi.org/project/ovsdbapp/
Author: OpenStack
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ovsdbapp-1.9.0/ovsdbapp.egg-info/SOURCES.txt
new/ovsdbapp-1.12.0/ovsdbapp.egg-info/SOURCES.txt
--- old/ovsdbapp-1.9.0/ovsdbapp.egg-info/SOURCES.txt 2021-03-03
15:36:06.000000000 +0100
+++ new/ovsdbapp-1.12.0/ovsdbapp.egg-info/SOURCES.txt 2021-08-19
09:44:42.000000000 +0200
@@ -73,6 +73,7 @@
ovsdbapp/tests/functional/base.py
ovsdbapp/tests/functional/backend/__init__.py
ovsdbapp/tests/functional/backend/ovs_idl/__init__.py
+ovsdbapp/tests/functional/backend/ovs_idl/test_backend.py
ovsdbapp/tests/functional/backend/ovs_idl/test_connection.py
ovsdbapp/tests/functional/backend/ovs_idl/test_indexing.py
ovsdbapp/tests/functional/schema/__init__.py
@@ -105,6 +106,7 @@
releasenotes/notes/.placeholder
releasenotes/notes/configure-ovsdb-manager-a29a148b241a125e.yaml
releasenotes/notes/drop-py27-support-c426980520444bfa.yaml
+releasenotes/notes/ovn-support-allow-stateless-01aed5acdcd1c0d1.yaml
releasenotes/source/conf.py
releasenotes/source/index.rst
releasenotes/source/pike.rst
@@ -115,6 +117,7 @@
releasenotes/source/unreleased.rst
releasenotes/source/ussuri.rst
releasenotes/source/victoria.rst
+releasenotes/source/wallaby.rst
releasenotes/source/_templates/.placeholder
tools/coding-checks.sh
tools/debug_venv
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ovsdbapp-1.9.0/ovsdbapp.egg-info/pbr.json
new/ovsdbapp-1.12.0/ovsdbapp.egg-info/pbr.json
--- old/ovsdbapp-1.9.0/ovsdbapp.egg-info/pbr.json 2021-03-03
15:36:06.000000000 +0100
+++ new/ovsdbapp-1.12.0/ovsdbapp.egg-info/pbr.json 2021-08-19
09:44:42.000000000 +0200
@@ -1 +1 @@
-{"git_version": "38a99c7", "is_release": true}
\ No newline at end of file
+{"git_version": "35c8eae", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/ovsdbapp-1.9.0/releasenotes/notes/ovn-support-allow-stateless-01aed5acdcd1c0d1.yaml
new/ovsdbapp-1.12.0/releasenotes/notes/ovn-support-allow-stateless-01aed5acdcd1c0d1.yaml
---
old/ovsdbapp-1.9.0/releasenotes/notes/ovn-support-allow-stateless-01aed5acdcd1c0d1.yaml
1970-01-01 01:00:00.000000000 +0100
+++
new/ovsdbapp-1.12.0/releasenotes/notes/ovn-support-allow-stateless-01aed5acdcd1c0d1.yaml
2021-08-19 09:44:11.000000000 +0200
@@ -0,0 +1,3 @@
+---
+features:
+ - Support the new "allow-stateless" ACL action. It was added in OVN 21.06.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ovsdbapp-1.9.0/releasenotes/source/index.rst
new/ovsdbapp-1.12.0/releasenotes/source/index.rst
--- old/ovsdbapp-1.9.0/releasenotes/source/index.rst 2021-03-03
15:35:28.000000000 +0100
+++ new/ovsdbapp-1.12.0/releasenotes/source/index.rst 2021-08-19
09:44:11.000000000 +0200
@@ -6,6 +6,7 @@
:maxdepth: 1
unreleased
+ wallaby
victoria
ussuri
train
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ovsdbapp-1.9.0/releasenotes/source/wallaby.rst
new/ovsdbapp-1.12.0/releasenotes/source/wallaby.rst
--- old/ovsdbapp-1.9.0/releasenotes/source/wallaby.rst 1970-01-01
01:00:00.000000000 +0100
+++ new/ovsdbapp-1.12.0/releasenotes/source/wallaby.rst 2021-08-19
09:44:11.000000000 +0200
@@ -0,0 +1,6 @@
+============================
+Wallaby Series Release Notes
+============================
+
+.. release-notes::
+ :branch: stable/wallaby
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ovsdbapp-1.9.0/setup.cfg
new/ovsdbapp-1.12.0/setup.cfg
--- old/ovsdbapp-1.9.0/setup.cfg 2021-03-03 15:36:06.790809000 +0100
+++ new/ovsdbapp-1.12.0/setup.cfg 2021-08-19 09:44:42.888636800 +0200
@@ -1,12 +1,12 @@
[metadata]
name = ovsdbapp
summary = A library for creating OVSDB applications
-description-file =
+description_file =
README.rst
author = OpenStack
-author-email = [email protected]
-home-page = https://pypi.org/project/ovsdbapp/
-python-requires = >=3.6
+author_email = [email protected]
+home_page = https://pypi.org/project/ovsdbapp/
+python_requires = >=3.6
classifier =
Environment :: OpenStack
Intended Audience :: Information Technology
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ovsdbapp-1.9.0/tox.ini new/ovsdbapp-1.12.0/tox.ini
--- old/ovsdbapp-1.9.0/tox.ini 2021-03-03 15:35:28.000000000 +0100
+++ new/ovsdbapp-1.12.0/tox.ini 2021-08-19 09:44:11.000000000 +0200
@@ -30,6 +30,7 @@
[testenv:docs]
deps =
+
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/xena}
-r{toxinidir}/doc/requirements.txt
commands =
sphinx-build -W -b html -d doc/build/doctrees doc/source doc/build/html
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ovsdbapp-1.9.0/zuul.d/project.yaml
new/ovsdbapp-1.12.0/zuul.d/project.yaml
--- old/ovsdbapp-1.9.0/zuul.d/project.yaml 2021-03-03 15:35:28.000000000
+0100
+++ new/ovsdbapp-1.12.0/zuul.d/project.yaml 2021-08-19 09:44:11.000000000
+0200
@@ -2,7 +2,7 @@
templates:
- check-requirements
- openstack-lower-constraints-jobs
- - openstack-python3-wallaby-jobs
+ - openstack-python3-xena-jobs
- publish-openstack-docs-pti
check:
jobs: