Merge "Add timeout to keystone requests"

This commit is contained in:
Jenkins 2015-09-03 23:21:04 +00:00 committed by Gerrit Code Review
commit ccf5e92335
4 changed files with 19 additions and 13 deletions

View File

@ -77,6 +77,7 @@ class HTTPClient(object):
self.domain_name = kwargs.get('domain_name')
self.endpoint_type = kwargs.get('endpoint_type')
self.service_type = kwargs.get('service_type')
self.keystone_timeout = kwargs.get('keystone_timeout')
self.cert_file = kwargs.get('cert_file')
self.key_file = kwargs.get('key_file')
@ -115,7 +116,8 @@ class HTTPClient(object):
'domain_id': self.domain_id,
'domain_name': self.domain_name,
'insecure': self.ssl_connection_params['insecure'],
'region_name': self.region_name
'region_name': self.region_name,
'keystone_timeout': self.keystone_timeout
}
try:
_ksclient = ksclient.KSClient(**ks_args)
@ -202,13 +204,13 @@ class HTTPClient(object):
# point version i.e: 3.x
# See issue: https://github.com/kennethreitz/requests/issues/1704
allow_redirects = False
timeout = None
if method in ['POST', 'DELETE', 'PUT', 'PATCH']:
timeout = self.write_timeout
elif method is 'GET':
timeout = self.read_timeout
try:
timeout = None
if method in ['POST', 'DELETE', 'PUT', 'PATCH']:
timeout = self.write_timeout
elif method is 'GET':
timeout = self.read_timeout
resp = requests.request(
method,
self.endpoint_url + url,
@ -249,6 +251,7 @@ class HTTPClient(object):
method,
self.endpoint_url + url,
allow_redirects=allow_redirects,
timeout=timeout,
**kwargs)
except Exception as e:
raise exc.HTTPUnauthorized(e)

View File

@ -40,7 +40,8 @@ class KSClient(object):
:param token: token to use instead of username/password
"""
kc_args = {'auth_url': kwargs.get('auth_url'),
'insecure': kwargs.get('insecure')}
'insecure': kwargs.get('insecure'),
'timeout': kwargs.get('keystone_timeout')}
if kwargs.get('os_cacert'):
kc_args['cacert'] = kwargs.get('os_cacert')

View File

@ -100,9 +100,9 @@ class MonascaShell(object):
' client looks for the default system CA'
' certificates.')
parser.add_argument('--timeout',
default=600,
help='Number of seconds to wait for a response.')
parser.add_argument('--keystone_timeout',
default=20,
help='Number of seconds to wait for a response from keystone.')
parser.add_argument('--os-username',
default=utils.env('OS_USERNAME'),
@ -337,7 +337,8 @@ class MonascaShell(object):
'domain_id': args.os_domain_id,
'domain_name': args.os_domain_name,
'insecure': args.insecure,
'region_name': args.os_region_name
'region_name': args.os_region_name,
'keystone_timeout': args.keystone_timeout
}
endpoint = args.monasca_api_url
@ -363,7 +364,6 @@ class MonascaShell(object):
kwargs = {
'token': token,
'insecure': args.insecure,
'timeout': args.timeout,
'os_cacert': args.os_cacert,
'cert_file': args.cert_file,
'key_file': args.key_file,
@ -371,7 +371,8 @@ class MonascaShell(object):
'password': args.os_password,
'service_type': args.os_service_type,
'endpoint_type': args.os_endpoint_type,
'auth_url': args.os_auth_url
'auth_url': args.os_auth_url,
'keystone_timeout': args.keystone_timeout
}
if args.os_user_domain_name:

View File

@ -29,6 +29,7 @@ def script_keystone_client(token=None):
insecure=False,
password='password',
project_name='project_name',
timeout=20,
username='username').AndReturn(FakeKeystone(
'abcd1234', 'test'))