summaryrefslogtreecommitdiff
path: root/nova/conf
diff options
context:
space:
mode:
authormelanie witt <melwittt@gmail.com>2020-03-11 02:26:52 +0000
committerVlad Gusev <vlad.esten@gmail.com>2020-04-24 18:20:41 +0300
commit11daac03bf4d33c77c7bc6f037bc16972ad64ea4 (patch)
tree08a95b33fcf000b2bd11fe1d74bda2c88c41d964 /nova/conf
parentf50bd6e65758c7c3f3b433a1e66bd8c94f6947f8 (diff)
downloadnova-11daac03bf4d33c77c7bc6f037bc16972ad64ea4.tar.gz
Add config option for neutron client retries
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] https://github.com/openstack/nova/blob/57459c3429ce62975cebd0cd70936785bdf2f3a4/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 0e34ed9733e3f23d162e3e428795807386abf1cb) (cherry picked from commit 71971c206292232fff389dedbf412d780f0a557a) (cherry picked from commit a96e7ab83066bee0a13a54070aab988396bae320) (cherry picked from commit 6bed39cd6e77744ca4bbad9dba3f68c78cdc1ec0)
Diffstat (limited to 'nova/conf')
-rw-r--r--nova/conf/neutron.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/nova/conf/neutron.py b/nova/conf/neutron.py
index 48cadc77ce..d828f8ca80 100644
--- a/nova/conf/neutron.py
+++ b/nova/conf/neutron.py
@@ -77,6 +77,20 @@ needs to create a resource in Neutron it will requery Neutron for the
extensions that it has loaded. Setting value to 0 will refresh the
extensions with no wait.
"""),
+ cfg.IntOpt('http_retries',
+ default=3,
+ min=0,
+ help="""
+Number of times neutronclient should retry on any failed http call.
+
+0 means connection is attempted only once. Setting it to any positive integer
+means that on failure connection is retried that many times e.g. setting it
+to 3 means total attempts to connect will be 4.
+
+Possible values:
+
+* Any integer value. 0 means connection is attempted only once
+"""),
]
metadata_proxy_opts = [