Gregory Thiemonge 27060603db Retry to set loadbalancer prov status on failures
In case of DB outages when a flow is running, an exception is caught and
the flow is reverted. In most of the flows, the revert function of the
first task's (the last to be reverted) unlocks the load balancer by
setting its provisioning status (to ERROR or ACTIVE, depending on the
flow), but it fails if the DB is not reachable, leaving the LB in
a PENDING_* state.
This commit adds tenacity.retry to those functions, Octavia retries to
set the status during ~2h45 (2000 attempts, 1 sec initial delay, 5 sec
max delay).

Note: stable/2023.1 and older, the patch also includes modifications for
v1/tasks/lifecycle_tasks.py

Conflicts:
	octavia/common/config.py
	octavia/tests/unit/controller/worker/test_task_utils.py
	octavia/controller/worker/v1/tasks/lifecycle_tasks.py

Closes-Bug: #2036952
Change-Id: I458dd6d6f5383edc24116ea0fa27e3a593044146
(cherry picked from commit be91493332786365b8e997fcf88779a12d1ae130)
(cherry picked from commit 96782e2c543bfb488c7629e9ba2cf009b2a6b033)
(cherry picked from commit 57833dbdad964f8a7861a0ab1d2847159f483577)
2023-10-11 10:06:45 +02:00
2022-09-29 11:06:01 +02:00
2022-09-15 09:21:22 +00:00
2022-06-10 10:20:08 +00:00
2019-09-19 13:12:37 -07:00
2022-03-23 10:00:47 +01:00
2022-03-23 10:00:47 +01:00
2022-05-06 15:04:52 +02:00
2017-03-02 11:50:57 +00:00
2022-05-06 15:04:52 +02:00

Team and repository tags

image

Octavia

Latest Version

Octavia is an operator-grade open source scalable load balancer for use in large OpenStack deployments.

Octavia provides the load balancing API for OpenStack. It supports multiple "provider drivers" that implement load balancing, including the "amphora" reference driver included with Octavia.

Octavia is distributed under the terms of the Apache License, Version 2.0. The full terms and conditions of this license are detailed in the LICENSE file.

Project resources

Developer documentation for the Octavia project is available at https://docs.openstack.org/octavia/latest/

Release notes for the Octavia project are available at https://docs.openstack.org/releasenotes/octavia/

The project source code repository is located at https://opendev.org/openstack/octavia

Project status, bugs, and requests for feature enhancements are tracked on https://storyboard.openstack.org/#!/project/openstack/octavia

For more information on project direction and guiding principles for contributors, please see the CONSTITUTION.rst file in this directory, or specifications in the specs/ sub-directory.

The project roadmap is available at https://wiki.openstack.org/wiki/Octavia/Roadmap

External Resources

Description
Load Balancing as a Service (LBaaS) for OpenStack
Readme 97 MiB
Languages
Python 97.5%
Shell 1.9%
Jinja 0.6%