Nova can occasionally fail to carry out server actions which require
calls to neutron API if haproxy happens to close a connection after
idle time if an incoming request attempts to re-use the connection
while it is being torn down.
In order to be more resilient to this scenario, we can add a config
option for neutron client to retry requests, similar to our existing
CONF.cinder.http_retries and CONF.glance.num_retries options.
Because we create our neutron client [1] using a keystoneauth1 session
[2], we can set the 'connect_retries' keyword argument to let
keystoneauth1 handle connection retries.
Conflicts:
nova/conf/neutron.py
NOTE(s10): conflict is due to Id7c2f0b53c8871ff47a836ec4c324c8cce430b79
not being in Queens.
Closes-Bug: #1866937
[1] 57459c3429/nova/network/neutron.py (L226-L237)
[2] https://docs.openstack.org/keystoneauth/latest/api/keystoneauth1.session.html#keystoneauth1.session.Session
Change-Id: Ifb3afb13aff7e103c2e80ade817d0e63b624604a
(cherry picked from commit 0e34ed9733)
(cherry picked from commit 71971c2062)
(cherry picked from commit a96e7ab830)
(cherry picked from commit 6bed39cd6e)