OVSDB application library
Go to file
Terry Wilson e5ded80fe5 Ensure idl.run() called on TRY_AGAIN
If the DB connection drops after Connection.run() calls idl.run()
but before Transaction.do_commit(), then it is possible for
idl.commit() to return TRY_AGAIN due to the failure of session.send().
This prevents commit_block() from running idl.run() which would
actually trigger the DB reconnect, causing each successive call to
commit_block() to fail in the same way until we stop trying again
due to timeout and Connection.run() calls idl.run() again.

For now, we can just ensure that idl.run() is called when we get a
TRY_AGAIN. It might be worth it to refactor this a bit to not even
use commit_block().

Change-Id: I77402bde3fc4d45c770b9f48882870cfc91d719d
Closes-Bug: #1741889
(cherry picked from commit 1810faecc9)
2018-01-29 15:11:34 +00:00
doc/source Add cookiecutter output 2017-02-24 15:02:19 -05:00
ovsdbapp Ensure idl.run() called on TRY_AGAIN 2018-01-29 15:11:34 +00:00
releasenotes Fix all broken jobs 2017-03-23 08:52:07 +00:00
tools Use neutron-lib's tox_install.sh 2017-04-19 12:09:17 -05:00
.gitignore Ignore .testrepository and editor(s) files 2017-04-21 10:09:30 +01:00
.gitreview Update .gitreview for stable/pike 2017-07-28 21:06:05 +00:00
.testr.conf Fix pep8/cookiecutter test running 2017-02-24 15:32:17 -05:00
CONTRIBUTING.rst Add cookiecutter output 2017-02-24 15:02:19 -05:00
HACKING.rst Add cookiecutter output 2017-02-24 15:02:19 -05:00
LICENSE Add cookiecutter output 2017-02-24 15:02:19 -05:00
MANIFEST.in Add cookiecutter output 2017-02-24 15:02:19 -05:00
README.rst Add a description to README.rst 2017-04-21 16:20:55 -05:00
babel.cfg Add cookiecutter output 2017-02-24 15:02:19 -05:00
bindep.txt Fix all broken jobs 2017-03-23 08:52:07 +00:00
requirements.txt Allow choosing vlog levels to patch and restoring the vlog 2017-05-03 12:31:52 -05:00
setup.cfg Add cookiecutter output 2017-02-24 15:02:19 -05:00
setup.py Updated from global requirements 2017-03-15 04:26:57 +00:00
test-requirements.txt Updated from global requirements 2017-08-11 19:04:40 +00:00
tox.ini Update UPPER_CONSTRAINTS_FILE for stable/pike 2017-07-28 21:06:06 +00:00

README.rst

ovsdbapp

A library for creating OVSDB applications

The ovdsbapp library is useful for creating applications that communicate via Open_vSwitch's OVSDB protocol (https://tools.ietf.org/html/rfc7047). It wraps the Python 'ovs' and adds an event loop and friendly transactions.

Features

  • An thread-based event loop for using ovs.db.Idl
  • Transaction support
  • Native OVSDB communication