This patch fixes a possible receive timeout caused by a slow response from the
driver agent. For example if the database is very slow.
Closes-Bug: #2032890
Change-Id: I9079030a5fef9dc44da242adab3c568666777451
This greatly enhances debugability of data model objects as repr() and
objects contain now all attributes. Most subclasses implement their
own __str__() so it shows only the most relevant attributes.
Change-Id: I2babd600516cfe98673627c68e97cb581ee54834
The new AMPHORA_FAILOVER_STOPPED state will get used as way to denote
when the failover ciruit breaker stopps an amphora from doing failover.
Story: 2005604
Task: 30837
Change-Id: If51d242b8534850fd11d4911b90434b5fe9dd481
This patch adds a protocol called "PROMETHEUS" as a supported protocol for
listeners. It will be used to expose a Prometheus exporter endpoint through
a listener.
Change-Id: I313ea875af537f146218eb763ed80038da5d5213
Provider drivers who override this definition started
seeing a failure due to a typo. For example:
W0237: [Parameter 'new_loadbalncer' has been renamed to
'new_loadbalancer' in overridden 'MyProviderDriver.
loadbalancer_update' method (arguments-renamed)
While we just updated .pylintrc to ignore the error,
might as well fix the typo.
Change-Id: I28e210605d2d8bc06bc99844c92b538568dbac45
Update tox config to include upper-constraints as dependencies. This
resolves issues with building PDF docs.
New pylint 2.9.0 provides some new checkers and detects new errors with
existing checkers:
- consider-using-dict-items
Similar change was done in Octavia repo already.
Change-Id: I48106513291263a7f754cfe7f9edc3703f8fbb7a
This change completes the ALPN support started in Victoria and initially
limited to listeners. Now with pools supported as well, this feature
work is completed in octavia-lib.
Change-Id: I01268f7afac8f6356616f3926d6fe9c1ec31b2b5
This patch adds the required changes to support Proxy protocol
version 2.
Change-Id: Ic51131defb8d687185a7887b7ca578c4f1babaad
Story: 2005611
Task: 30858
A recent patch added a docstring that references the new NotFound
exception. Unfortunately it is ambiguous with other NotFound
exceptions.
This patch clarifies the NotFound exception.
Change-Id: Ie7df8625c907a19e82a4595b32ee6e77c93363f7
Two tests were missing assertIsInstance() checks, this
makes them like the tests above and below them.
Change-Id: Ie201f5b2574e5e11aeca9c08859977a1b8a3c1d8
pylint needed an update to be >=2.2.0 to fix a pep8 issue,
updated bandit requirement to match Octavia repo while
we're at it.
Had to fix some new errors pylint found as a result.
Change-Id: I7ebdd5eea537a8258f66b5e1bf2ee1aad3f8b10b
HTTPS and TERMINATED_HTTPS are not valid protocols for pools, and
PROXY is not valid protocol for listener. So we should declare two
constants to respectively constrain listener and pool support
protocols.
Change-Id: Ibfc1609d867b746e639f9b8382301c04a6723f4b
Parameter added to the listener and pool model for TLS protocols.
Constants TLS_VERSIONS, SSL_VERSION_3, TLS_VERSION_1,
TLS_VERSION_1_1, TLS_VERSION_1_2, and TLS_VERSION_1_3 were added.
Change-Id: Ie54640201a0f4905d19841af5913972646b317bf
Co-authored-by: Steven Glasford <stevenglasford@gmail.com>
Story: 2006733
Task: 37186
The repo is Python 3 now, so update hacking to version 3.0 which
supports Python 3.
Fix problems found.
Update local hacking checks for new flake8.
Change-Id: If11b38493aacc7b888a6b64bf50c1a2782efd9ae
updated the data models for pools and listeners to
add support for cipher lists and added the needed
constants
updated the test models to include the new
parameters
Change-Id: Id5f4c20abd40dd092558a711987953012d4ae67f
Story: 2006627
Task: 37185
Now that we are python3 only, we should move to using the built
in version of mock that supports all of our testing needs and
remove the dependency on the "mock" package.
This patch moves all references to "import mock" to
"from unittest import mock". It also cleans up some new line
inconsistency.
Change-Id: Ie7567134a7c0ffae525d0282773e4c90a3f2d62b
Temporarily make the tips jobs non-voting so we can merge this change
that relies on a change in the main repo.
Depends-On: https://review.opendev.org/#/c/693765/
Change-Id: I6dcbe72328369089ed62330098b38f8d4029749c
Pulling it from the members doesn't work if it is a delete operation
where there aren't any!
Story: 2006719
Task: 37091
Change-Id: Ia67172306c28c17648eb7f0263c5a66b44a96baa
This patch cleans up the octavia-lib documentation and removes an
unused requirement for oslo.log.
Change-Id: I4ddcb51fcfb976e825cd204d5f4f561d60ee0455
Docs in octavia where failing with:
Docstring of octavia.api.drivers.amphora_driver.v1.driver.AmphoraProviderDriver.create_vip_port:
10:Unexpected indentation.
The broken docstring is in octavia_lib/api/drivers/provider_base.py. Fix
that docstring and build apidocs - like octavia does - so that all
docstrings in this repo get tested.
For building apidocs, add the needed configuration to the sphinx files
and require the package.
Change-Id: Iad03f19083d9a5429dcfed3499d1c3e2d56cbb0f
Co-Authored-By: Jeremy Stanley <fungi@yuggoth.org>
Co-Authored-By: Adam Harwell <flux.adam@gmail.com>
This patch adds get methods to the driver-lib which allows provider
drivers to query for objects by ID.
In support of the get methods, this patch fixes a bug in the data
model to_dict() where it may not properly recurse the objects.
It also improves connecting to the driver agent sockets and adds a
timeout while waiting to receive data from the driver-agent.
Change-Id: Ia69d1f61571a1a65dee585037affb317999d7ade
Story: 2005870
Task: 33682
LB_ALGORITHM_SOURCE_IP_PORT is an algorithm used by OVN
Load Balancer [0].
[0] https://review.opendev.org/#/c/660369
Story: 2006264
Task: 35951
Change-Id: I605f44f0f50219aa003df477de9bae4062f3c308
Though this is just an abstract class so it doesn't break functionality,
it should be kept up to date for the sake of implementers.
Story: 2005608
Task: 33612
Change-Id: I29db66a282886ced2bd1bc1176f279728e5137e5
This patch adds a project_id field to all of the data model objects.
This is useful for drivers to track/associate objects on the backend.
Change-Id: I224acdf4a1a946ef6e5ecb49a3a54938a6c961a7
Recent TLS encryption, L7policy and health monitor work in Octavia added
a few new constants. This patch imports those constants and updates the
data models.
Story: 2005136
Task: 29823
Change-Id: Idcb87a69cdf725aa4c4ced4102d395149d5fa8d0
This patch corrects some python3 byte string issues in the driver
library callbacks.
It also corrects an issue where multiple update calls may cause a
bad file descriptor error.
Change-Id: I3a03f2d8e65d48fe3791611486cb5da4961335b6