This patch implments the ovn-nbctl API for the Logical_Switch,
Logical_Switch_Port, and DHCP_Options commands. Additional patches
will implement logical router and load balancer functionality.
As a convenience, the add/list/get commands return a special
read-only version of an ovs.db.idl.Row object called a RowView.
This object can be compared to a Row for equality and hashing. This
saves having to return uuids and then look them up. This behavior
differs from the Open_vSwitch schema implementation. This wrapper
serves both to keep people from modifying returned values outside of
a transaction and as an interface for any future backend to implement.
In addition, an ovs virtual environment fixture based on ovs-sandbox
is added to set up a sandboxed ovs/ovn install for running functional
This patch consists of two squashed patches:
First patch copies in tox_install.sh from oslo libraries. The script
removes ovsdbapp from upper-constraints.txt as we want to install
code from the repository and not from pip.
Second patch is squashed from abandoned Iff59bbf41d166a0918a217cb72a37c547c6506b9.
Issue there was that code uses 'sudo' for running ovs-vsctl but the tests
user is not member of sudoers. It sets the Manager prior to executing
the tests. As ovsdbapp isn't supposed to depend on oslo, there is not
guaranteed way running process with ovsdbapp code will have root
privileges. Hence the Manager should be configured before application
using ovsdbapp is started.