octavia/octavia
Carlos Goncalves 92473ce210 Make health checks resilient to DB outages
Octavia is struggling with proper handling of DB connectivity issues
bringing down all running loadbalancers. Octavia tries to failover
amphorae and can fail in one of the following stages:

1. Octavia can't create new amphora because Nova isn't ready yet after
   DB outage. Nova-API throws 500, Octavia nukes amphora instance and
   won't try to recreate it again.
2. Octavia tries to recreate amphora instance but it gets stuck in
   PENDING_CREATE forever.
3. Octavia fails completely reporting DB connection issues, leaving some
   amphoras in error, some in pending_delete as bellow: It affects also
   HA deployments.

This patch fixes that by wrapping the DB check for health, waiting for
the connection to be re-established and sleeping off the full
"heartbeat_timeout" interval.

Story: 2003575
Task: 24871

Change-Id: I7b30cd31e1ce0cf9dab61484f4404f1c6ccddd5e
2018-09-11 12:21:22 -06:00
..
amphorae Fix the amphora noop driver 2018-08-23 17:45:04 -07:00
api Validate member address for lb graph creation 2018-09-05 02:02:33 +00:00
certificates Fix passphrase None errors 2018-08-30 09:47:54 +00:00
cmd Merge "fix tox python3 overrides" 2018-07-05 23:01:35 +00:00
common Merge "Remove user_group option" 2018-08-21 15:51:12 +00:00
compute Add license for empty __init__.py 2018-03-14 07:02:56 +09:00
controller Make health checks resilient to DB outages 2018-09-11 12:21:22 -06:00
db Make health checks resilient to DB outages 2018-09-11 12:21:22 -06:00
distributor Add license for empty __init__.py 2018-03-14 07:02:56 +09:00
hacking fix tox python3 overrides 2018-06-27 09:32:00 +08:00
network Fix neutron "tenat_id" compatibility 2018-08-14 18:52:44 -07:00
policies Fix version discovery for the Octavia API 2018-07-08 14:19:04 -07:00
tests Make health checks resilient to DB outages 2018-09-11 12:21:22 -06:00
__init__.py fix tox python3 overrides 2018-06-27 09:32:00 +08:00
i18n.py Remove _LI, _LW, _LE, _LC from i18n 2017-05-23 16:28:29 +07:00
opts.py Update Octavia docs for documentation migration 2017-07-03 11:43:40 -07:00
version.py Adds methods in version.py for proper oslo_reports setup 2016-06-07 11:51:26 +03:00