diff options
author | Zuul <zuul@review.opendev.org> | 2022-08-19 00:42:56 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2022-08-19 00:42:56 +0000 |
commit | 3b30f155a7ed6e1f66ff6d0272c4216bee543b88 (patch) | |
tree | 059fc08ef96bdc581dc3f71c31cb199a57ad32a9 | |
parent | 7f2649bfb717f0f1cc077c04e206841581d6dab5 (diff) | |
parent | a1d2f31131d79d7c551dbac4fc1e9c4d177d2df5 (diff) | |
download | python-swiftclient-3b30f155a7ed6e1f66ff6d0272c4216bee543b88.tar.gz |
Merge "Enable retry_on_ratelimit by default"
-rw-r--r-- | swiftclient/client.py | 8 | ||||
-rw-r--r-- | swiftclient/service.py | 3 | ||||
-rw-r--r-- | test/unit/test_swiftclient.py | 3 |
3 files changed, 9 insertions, 5 deletions
diff --git a/swiftclient/client.py b/swiftclient/client.py index 168bfed..9c19306 100644 --- a/swiftclient/client.py +++ b/swiftclient/client.py @@ -1646,7 +1646,7 @@ class Connection: starting_backoff=1, max_backoff=64, tenant_name=None, os_options=None, auth_version="1", cacert=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): """ :param authurl: authentication URL @@ -1678,9 +1678,9 @@ class Connection: will be made. This may provide a performance increase for https upload/download operations. :param retry_on_ratelimit: by default, a ratelimited connection will - raise an exception to the caller. Setting - this parameter to True will cause a retry - after a backoff. + retry after a backoff. Setting this + parameter to False will cause an exception + to be raised to the caller. :param timeout: The connect timeout for the HTTP connection. :param session: A keystoneauth session object. :param force_auth_retry: reset auth info even if client got unexpected diff --git a/swiftclient/service.py b/swiftclient/service.py index ed0f40a..440271b 100644 --- a/swiftclient/service.py +++ b/swiftclient/service.py @@ -155,6 +155,7 @@ def _build_default_global_options(): "user": environ.get('ST_USER'), "key": environ.get('ST_KEY'), "retries": 5, + "retry_on_ratelimit": True, "force_auth_retry": False, "os_username": environ.get('OS_USERNAME'), "os_user_id": environ.get('OS_USER_ID'), @@ -270,10 +271,12 @@ def get_conn(options): """ Return a connection building it from the options. """ + options = dict(_default_global_options, **options) return Connection(options['auth'], options['user'], options['key'], timeout=options.get('timeout'), + retry_on_ratelimit=options['retry_on_ratelimit'], retries=options['retries'], auth_version=options['auth_version'], os_options=options['os_options'], diff --git a/test/unit/test_swiftclient.py b/test/unit/test_swiftclient.py index ad2af50..436245d 100644 --- a/test/unit/test_swiftclient.py +++ b/test/unit/test_swiftclient.py @@ -2149,7 +2149,8 @@ class TestConnection(MockHttpTest): c.http_connection = self.fake_http_connection( 200, 498, 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: conn.head_account() self.assertIn('Account HEAD failed', str(exc_context.exception)) |