For unit and functional:
The commit d00a50aad11465d904663dea14b3814017bcff75 moved the
plugins.ml2.config module to conf.plugins.ml2.config
For functional tests only:
Modify the post_test_hook.sh script to accomodate the new changes in
os-testr. This fix for networking-ovn is basically a copy & paste from
the neutron one [0].
[0] https://review.openstack.org/#/c/503138/
Change-Id: I4fbcbfdd6d5f9fa77414df15302da517f23986bd
The well known service type constants are in
neutron_lib.plugins.constants, but for legacy reasons a few still exist
and are referenced from neutron_lib.constants [1] that we'd like to
remove.
This patch switches references over to neutron_lib's plugin constants.
[1] https://github.com/openstack/neutron-lib/blob/master/neutron_lib/constants.py#L353
Change-Id: I8b5141f952b3500c7a4ce9c36e07a04630a5e44f
This:
1. replaces neutron.agent.ovsdb imports wih ovsdbapp imports.
2. Connection takes an idl instance due to removed deprecated
arguments in ovsdbapp
3. Ovsdb{N,S}bIdl classes are initialized with a connection
since driver/trigger options are networking-ovn specific
4. The Connection subclasses are removed as get_schema_helper
is no-longer Open_vSwitch-schema specific and ovsdbapp's
Connection.start has been modified to handle post_initialize
(which is no post_connect).
TODO:
1. Release an ovsdbapp with the necessary changes so CI will pass
Change-Id: I12260e60e40399f996d5f2ff4ddb7b65fdaebb95
Depends-On: Ie6dc0b75fc7c5ae00afc03e274f293b69d897913
This is in line with late i18n team requests, and to adopt the new N537
hacking check from neutron-lib.
Change-Id: Ieacc6d3cfcea6846054655312916d29c1bb40d43
Depends-On: I1a7fff4140e50deb0e10024dedfba45d793b20fe
Skip the ovs-vsctl set-manager call when starting an OVSDB
connection. This call isn't needed and the ovs-vsctl command won't
exist on the controller node when using the reference architecture.
As a result, any errors on the call will only mask the true OVSDB
connection error in the logs.
Change-Id: Ia21e50f8cad79348046fcd9ecdb13bced84016ee
Partial-Bug: #1612435
Using OVS transaction mutate support causes the updated column to
be an empty list after the mutation. This results in subsequent
actions taken based on the column data to be incorrect. The column
data is accurate again once the current transaction completes. It
appears that the OVS python IDL is not properly handling getattr()
after column mutation.
This workaround is needed until OVS is fixed. The workaround drops
transaction mutate support for logical router static routes since
they require numerous column data comparisions within a single
transaction. In addition, OVN DB sync ACL processing had to be
modified to ensure mutations wouldn't impact any comparison. At
this time, no other problems where identified.
The functional tests were updated to test the logical router
static routes problem and other paths with multiple commands
within a mutate transaction.
Recent neutron relocations also required a couple minor unit
test updates.
Change-Id: I11782a74a7b08dbfd54aeb37cfbda68b0b3a2ef9
Related-Bug: 1622647
Partial-Bug: 1629099
ovn-controller stores the datapath type and supported interface
types of the host in the external_ids column of the chassis table.
When the bind_port() function is called, this patch determines the
vif_type by reading these values from the chassis row where the port is to
be bound.
If the value of datapath type is 'netdev' and has 'dpdkvhostuser' in
the supported interface types, vif_type will be set to 'vhostuser',
else vif_type will be set to 'ovs'.
The config param 'vif_type' is deprecated and no longer used.
Co-Authored-By: Richard Theis <rtheis@us.ibm.com>
Change-Id: Ia97198a5bceb5d8d39d8556346f3709846f3c5ad
Closes-bug: #1606458
This patch set modifies lines which are importing objects
instead of modules. As per openstack import guide lines, user should
import modules in a file not objects.
http://docs.openstack.org/developer/hacking/#imports
Change-Id: Ie8171e845c72415a82cd181447c9fe6a9338dfd3
If the ML2 driver fails to initialize the OVS DB connections,
neutron server must be restarted before any OVN NB or SB transactions
can be processed. Effectively, the neutron server is half-dead. It is
able to process read-only requests but fails on all others. And the
error messages seen on requests and in the logs are often misleading.
This patch set adds initial OVS DB connection retry support and provides
more details on the error messages. With this patch, the neutron server
won't respond to any requests until the initial OVS DB connections can
be established. The connection attempts will be retried forever with an
exponential backoff up to a 3 minute wait between retries.
Also the retrying package was added to the requirements. It should have
been there already since it is used in ovsdb_monitor.py.
Note: OVS DB connection failures after initialization are retried
already.
Change-Id: I627b8c8ec0ff972e45bcd497c69f0fc94fbe6821
Closes-Bug: #1612435
While debugging a recent networking-ovn gate failure, it was determined
that the networking-ovn ML2 driver tests were initializing the driver
an extra time during setup. This extra initialization isn't necessary
and may cause problems in the future so this patch removes the extra
initialization.
Change-Id: Id3d5b7c1f50e15811fac0be219c9de0c38aac9f0
This test is failing after the commit with change id
"Iae4b682c0774e749eb48cde67cd9748d7dfe053c" in neutron.
Please see bug description for more details.
This patch fixes the issue by changing the default value of
"ovsdb_connection_timeout" to 5 seconds for the functional tests.
As "wait_until_true" function is moved from neutron.agents.linux.utils
to neutron.common.utils, changed the import accordingly.
Change-Id: Ic035770de6529600a050a7cfe2f236f5ca3e0d9f
Closes-bug: #1607639
This patch provides the infrastructure for the OVN L3 to schedule
the router gateway port. The OVN hypervisor administrator can
set aside certain hypervisors to be used for scheduling router
gateway ports. This is the corresponding WIP patch at the moment:
http://openvswitch.org/pipermail/dev/2016-June/073285.html
For now it is assumed that any hypervisor/chassis can host a router
gateway port.
There are 2 types of schedulers defined at the moment
(1) RandomChoice
(2) LeastLoaded
The Chassis (add/delete/update) event is used to schedule router
gateway ports which have not been bound to any chassis.
A future patch will add functional tests.
Change-Id: I83fb561cee642b90c4de41bb8e472f47fa807191
Related-Bug: 1514995
Update the OVN DevStack plugin to use the geneve tenant network
type. This includes related install documentation updates for
ml2_conf.ini.
This patch set also validates network creation precommit. The
validation will ensure a valid network type is used and that
a multi-provider network isn't created (they will be supported
with routed networks).
A follow-on patch set will support vlan tenant network type.
Depends-On: Id75651dfe57a07045a6932a0369668f33c7eef09
Change-Id: I3e25999b24c23413596f1a95f22f794712814ce8
Partial-Bug: #1588966
This patch adds few functional tests to test OVN NB DB sync
and adds the gate hook script functions.
The functional test setup
- will start an ovsdb-server with OVN NB DB.
- will start an ovsdb-server with OVN SB DB. This connection is
not used by this patch. But it is created because
- It can be used later to test the chassis up/down events.
- ML2 OVN driver now also connects to the OVN SB DB.
- The ML2 OVN driver is configured to connect to these ovsdb-servers
- Another IDL connection is established with the OVN NB DB server.
The test cases are validated by checking if the OVN NB DB is
updated properly or not.
This can be extended later to add more functional tests and
full stack tests if required.
Change-Id: I4dc3c633e42776efc7b574f15c1bbd95f28f70f0