ovsdbapp
raw JSON → 2.17.0 verified Mon Apr 27 auth: no python
A library for creating OVSDB applications. Current version 2.17.0, released as part of OpenStack zed cycle. Follows OpenStack release cadence (approximately 6 months).
pip install ovsdbapp Common errors
error ImportError: cannot import name 'Transaction' from 'ovsdbapp' ↓
cause Wrong import path; Transaction is inside ovsdbapp.api.
fix
Use from ovsdbapp import api and then api.Transaction
error AttributeError: 'NoneType' object has no attribute 'tables' ↓
cause IDL not started before accessing transaction.
fix
Call connection.start() before creating transaction.
Warnings
breaking Top-level api and schema imports moved to backend.ovs_idl. Importing from ovsdbapp directly may fail. ↓
fix Use from ovsdbapp.backend.ovs_idl import ...
deprecated The ovsdbapp.api module is deprecated; use ovsdbapp.backend.ovs_idl.api instead. ↓
fix Update imports to backend.ovs_idl.api
gotcha Connection.start() must be called before creating a transaction, otherwise IDL is None. ↓
fix Always call connection.start() to initialize the IDL.
Imports
- Transaction wrong
from ovsdbapp import Transactioncorrectfrom ovsdbapp import api - VswitchdInterface wrong
from ovsdbapp.vswitch import VswitchdInterfacecorrectfrom ovsdbapp.backend.ovs_idl import vswitch
Quickstart
import os
from ovsdbapp.backend.ovs_idl import connection
from ovsdbapp import api
remote = os.environ.get('OVSDB_REMOTE', 'tcp:127.0.0.1:6640')
conn = connection.Connection(remote=remote)
idl = conn.start()
txn = api.Transaction(idl)
# Use txn for operations
print('OVSDB connection established')