summaryrefslogtreecommitdiff
path: root/oslo_vmware/api.py
diff options
context:
space:
mode:
authorAman Kumar <aman.kumar3@hpe.com>2016-06-16 22:27:14 -0700
committerAman Kumar <aman.kumar3@hpe.com>2016-08-02 08:35:52 +0000
commitb32f627b81c1e63caef92b564f5b88c8f0c5947e (patch)
tree7fa0c563488c586eb0b3f02abf19e412cc3294dc /oslo_vmware/api.py
parent7c893cab6aa59a939e730ced8c58b34c8ab93472 (diff)
downloadoslo-vmware-b32f627b81c1e63caef92b564f5b88c8f0c5947e.tar.gz
Pass connection timeout so that invoke_api will not wait forever
invoke_api does not throw any exception when interface goes down and application loses connectivity with vCenter because default timeout is set to None which is equivalent to infinity. This patch set allows any application to pass connection timeout so that it will wait for the given timeout and then throw an exception. Closes-Bug: #1564839 Change-Id: I69b099b7caaa4fb0e0067cb83b9468d4aa901cc7 Co-Authored-By: Raghuveer Shenoy <rshenoy@hp.com>
Diffstat (limited to 'oslo_vmware/api.py')
-rw-r--r--oslo_vmware/api.py12
1 files changed, 9 insertions, 3 deletions
diff --git a/oslo_vmware/api.py b/oslo_vmware/api.py
index aaeb77b..a9839c0 100644
--- a/oslo_vmware/api.py
+++ b/oslo_vmware/api.py
@@ -139,7 +139,8 @@ class VMwareAPISession(object):
def __init__(self, host, server_username, server_password,
api_retry_count, task_poll_interval, scheme='https',
create_session=True, wsdl_loc=None, pbm_wsdl_loc=None,
- port=443, cacert=None, insecure=True, pool_size=10):
+ port=443, cacert=None, insecure=True, pool_size=10,
+ connection_timeout=None):
"""Initializes the API session with given parameters.
:param host: ESX/VC server IP address or host name
@@ -161,6 +162,8 @@ class VMwareAPISession(object):
used only if cacert is not specified
:param pool_size: Maximum number of connections in http
connection pool
+ :param connection_timeout: Maximum time in seconds to wait for peer to
+ respond.
:raises: VimException, VimFaultException, VimAttributeException,
VimSessionOverLoadException
"""
@@ -180,6 +183,7 @@ class VMwareAPISession(object):
self._cacert = cacert
self._insecure = insecure
self._pool_size = pool_size
+ self._connection_timeout = connection_timeout
if create_session:
self._create_session()
@@ -197,7 +201,8 @@ class VMwareAPISession(object):
wsdl_url=self._vim_wsdl_loc,
cacert=self._cacert,
insecure=self._insecure,
- pool_maxsize=self._pool_size)
+ pool_maxsize=self._pool_size,
+ connection_timeout=self._connection_timeout)
return self._vim
@property
@@ -209,7 +214,8 @@ class VMwareAPISession(object):
wsdl_url=self._pbm_wsdl_loc,
cacert=self._cacert,
insecure=self._insecure,
- pool_maxsize=self._pool_size)
+ pool_maxsize=self._pool_size,
+ connection_timeout=self._connection_timeout)
if self._session_id:
# To handle the case where pbm property is accessed after
# session creation. If pbm property is accessed before session