It is needed to enforce the correct versions of both projects due
to incompatibilities with previous version. The Neutron Bobcat beta
3 should work with neutron-lib 3.8.0.
python-neutronclient has been deprecated and Octavia has already removed
it in the dependend change below. These are the respective changes on
ovn-octavia-provider side and they are in line with changes in Octavia
- Replaced code that uses the deprecated `python-neutronclient` library
with code that uses `openstacksdk` and removed `python-neutronclient`
as a dependency.
- Marked certain configuration options that were related to Keystone
authentication as deprecated for removal. In future releases
authentication options options need to be added to the [neutron]
section of the configuration.
Note: After  some calls to neutron test_db_base_plugin_v2 had added
a new param 'as_admin' that need to be included in the calls from
ovn-provider functional tests. Squashed with patch  to solve
LB ip_port_mapping is updated just adding and deleting every member
after any related operation over the LB-HM, this operation was done
in two steps, a db_clear and a db_set.
This patch takes ovsdbapp specific commands for add/del backends to
the ip_port_mapping in a more appropiate way, reducing any further
operation from OVN DBs not related to the member added/deleted. Also
taking care about the possibility of the same backend_ip could be
pointed by other member, under a different HM.
ovsdbapp bumps to 2.1.0 to be able to use those new functionalities 
This patch switches using f-strings instead of regular ones in places
where pep8 was complaining about with error C0209.
It also updates some of the lower-constraints to align them with
Neutron's lower-constraints and to make ci job happy.
It also changes OVN_BRANCH from "master" to "main" as that was renamed
in the OVN repo some time ago.
Running the python 3.9 unit tests locally results in failures
TypeError: cannot pickle '_thread.RLock' object
Because we are inheriting some of the neutron code, and this
is fixed in that repository, just bump the minimum requirement
to 18.0.0 (Wallaby) now that it is released. This does not
happen in the gate since it is always using master.
Raised minimum of other libraries as necessary.
Bumped a bunch of constraints and requirements to fix
a gate failure with recent pip update. Required
moving minimum neutron version to Ussuri (16.0.0).
Fix associated new warnings.
This is a combination of a number of fixes required to
fix the broken gate.
Fix lower-constraints job for focal, bumping requirements
and fixing resultant failuers as necessary.
The devstack module for OVN has now been moved to the
devstack repository, so include it from there so the
functional jobs can run.
Set not_implemented_is_error to False.
The Octavia tempest plugin tests are being changed to
better skip tests for not implemented features. Setting
this to False will treat NotImplemented failures as
skips and not errors.
Fix tempest blacklist regex.
Raise error on listener create with 'allowed_cidrs' present.
Octavia has a pretty extensive definition of constants,
start using them where possible. Had to tweak a lot of
lines due to wrapping, but functionally nothing should
Removed some extra parens where found and other misc
Also bumped neutron-lib to >= 2.1.0 since that is py3-only.
There were a number of carry-over constraints and
requirements from neutron and networking-ovn that
are not needed for the OVN provider, remove them.
Update tenacity to version 5.0.2 to match octavia-lib,
else running 'tox -e lower-constraints' will fail with
an error locally.
Also removed the install_command directive from
tox.ini since that could lead to requirements
tests not running properly, it is handled internally
by tox versions > 3.0 and we are using 3.1.0.
We shouldn't be using Octavia components except octavia-lib
in provider driver.
For now we only use Neutron client methods from Octavia Neutron network
driver, so this patch removes use of Octavia network driver
in favor of direct use of Neutron Client.
This code moves OVN Octavia provider driver from networking-ovn
(branch master) repository to this repository.
For first step lets move code and unit tests.
Previous paths in networking-ovn tree:
./networking_ovn/octavia/ovn_driver.py -> ./ovn_octavia_provider/driver.py
There are a few files taken directly from neutron
repository that could be removed when neutron-lib
including those will be released:
Co-Authored-By: Brian Haley <email@example.com>
Co-Authored-By: Carlos Goncalves <firstname.lastname@example.org>
Co-Authored-By: Frode Nordahl <email@example.com>
Co-Authored-By: Jakub Libosvar <firstname.lastname@example.org>
Co-Authored-By: Maciej Józefczyk <email@example.com>
Co-Authored-By: Numan Siddique <firstname.lastname@example.org>
Co-Authored-By: Reedip Banerjee <email@example.com>
Co-Authored-By: Terry Wilson <firstname.lastname@example.org>
Co-Authored-By: Yunxiang Tao <email@example.com>
Co-Authored-By: zhufl <firstname.lastname@example.org>