Merge "Enable retry_on_ratelimit by default"
This commit is contained in:
commit
3b30f155a7
@ -1646,7 +1646,7 @@ class Connection:
|
|||||||
starting_backoff=1, max_backoff=64, tenant_name=None,
|
starting_backoff=1, max_backoff=64, tenant_name=None,
|
||||||
os_options=None, auth_version="1", cacert=None,
|
os_options=None, auth_version="1", cacert=None,
|
||||||
insecure=False, cert=None, cert_key=None,
|
insecure=False, cert=None, cert_key=None,
|
||||||
ssl_compression=True, retry_on_ratelimit=False,
|
ssl_compression=True, retry_on_ratelimit=True,
|
||||||
timeout=None, session=None, force_auth_retry=False):
|
timeout=None, session=None, force_auth_retry=False):
|
||||||
"""
|
"""
|
||||||
:param authurl: authentication URL
|
:param authurl: authentication URL
|
||||||
@ -1678,9 +1678,9 @@ class Connection:
|
|||||||
will be made. This may provide a performance
|
will be made. This may provide a performance
|
||||||
increase for https upload/download operations.
|
increase for https upload/download operations.
|
||||||
:param retry_on_ratelimit: by default, a ratelimited connection will
|
:param retry_on_ratelimit: by default, a ratelimited connection will
|
||||||
raise an exception to the caller. Setting
|
retry after a backoff. Setting this
|
||||||
this parameter to True will cause a retry
|
parameter to False will cause an exception
|
||||||
after a backoff.
|
to be raised to the caller.
|
||||||
:param timeout: The connect timeout for the HTTP connection.
|
:param timeout: The connect timeout for the HTTP connection.
|
||||||
:param session: A keystoneauth session object.
|
:param session: A keystoneauth session object.
|
||||||
:param force_auth_retry: reset auth info even if client got unexpected
|
:param force_auth_retry: reset auth info even if client got unexpected
|
||||||
|
@ -155,6 +155,7 @@ def _build_default_global_options():
|
|||||||
"user": environ.get('ST_USER'),
|
"user": environ.get('ST_USER'),
|
||||||
"key": environ.get('ST_KEY'),
|
"key": environ.get('ST_KEY'),
|
||||||
"retries": 5,
|
"retries": 5,
|
||||||
|
"retry_on_ratelimit": True,
|
||||||
"force_auth_retry": False,
|
"force_auth_retry": False,
|
||||||
"os_username": environ.get('OS_USERNAME'),
|
"os_username": environ.get('OS_USERNAME'),
|
||||||
"os_user_id": environ.get('OS_USER_ID'),
|
"os_user_id": environ.get('OS_USER_ID'),
|
||||||
@ -270,10 +271,12 @@ def get_conn(options):
|
|||||||
"""
|
"""
|
||||||
Return a connection building it from the options.
|
Return a connection building it from the options.
|
||||||
"""
|
"""
|
||||||
|
options = dict(_default_global_options, **options)
|
||||||
return Connection(options['auth'],
|
return Connection(options['auth'],
|
||||||
options['user'],
|
options['user'],
|
||||||
options['key'],
|
options['key'],
|
||||||
timeout=options.get('timeout'),
|
timeout=options.get('timeout'),
|
||||||
|
retry_on_ratelimit=options['retry_on_ratelimit'],
|
||||||
retries=options['retries'],
|
retries=options['retries'],
|
||||||
auth_version=options['auth_version'],
|
auth_version=options['auth_version'],
|
||||||
os_options=options['os_options'],
|
os_options=options['os_options'],
|
||||||
|
@ -2149,7 +2149,8 @@ class TestConnection(MockHttpTest):
|
|||||||
c.http_connection = self.fake_http_connection(
|
c.http_connection = self.fake_http_connection(
|
||||||
200, 498,
|
200, 498,
|
||||||
headers=auth_resp_headers)
|
headers=auth_resp_headers)
|
||||||
conn = c.Connection('http://www.test.com/auth/v1.0', 'asdf', 'asdf')
|
conn = c.Connection('http://www.test.com/auth/v1.0', 'asdf', 'asdf',
|
||||||
|
retry_on_ratelimit=False)
|
||||||
with self.assertRaises(c.ClientException) as exc_context:
|
with self.assertRaises(c.ClientException) as exc_context:
|
||||||
conn.head_account()
|
conn.head_account()
|
||||||
self.assertIn('Account HEAD failed', str(exc_context.exception))
|
self.assertIn('Account HEAD failed', str(exc_context.exception))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user