summaryrefslogtreecommitdiffstats
path: root/nova
diff options
context:
space:
mode:
authorSandy Walsh <sandy.walsh@rackspace.com>2011-04-07 10:34:14 -0300
committerSandy Walsh <sandy.walsh@rackspace.com>2011-04-07 10:34:14 -0300
commit7cf0deda8f7ab410005c556779353d599c8e8a63 (patch)
tree5b402742830f214dc043935c195500da5b1345fe /nova
parent7bd99e33796f1e90b6f8b0b9caa122c541f99015 (diff)
adds timeout to login_with_password
Diffstat (limited to 'nova')
-rw-r--r--nova/virt/xenapi_conn.py9
1 files changed, 7 insertions, 2 deletions
diff --git a/nova/virt/xenapi_conn.py b/nova/virt/xenapi_conn.py
index 99fd35c61..6dfe0b9a9 100644
--- a/nova/virt/xenapi_conn.py
+++ b/nova/virt/xenapi_conn.py
@@ -63,6 +63,7 @@ import xmlrpclib
from eventlet import event
from eventlet import tpool
+from eventlet import timeout
from nova import context
from nova import db
@@ -140,7 +141,9 @@ flags.DEFINE_bool('xenapi_remap_vbd_dev', False,
flags.DEFINE_string('xenapi_remap_vbd_dev_prefix', 'sd',
'Specify prefix to remap VBD dev to '
'(ex. /dev/xvdb -> /dev/sdb)')
-
+flags.DEFINE_integer('xenapi_login_timeout',
+ 10,
+ 'Timeout in seconds for XenAPI login.')
def get_connection(_):
"""Note that XenAPI doesn't have a read-only connection mode, so
@@ -318,7 +321,9 @@ class XenAPISession(object):
def __init__(self, url, user, pw):
self.XenAPI = self.get_imported_xenapi()
self._session = self._create_session(url)
- self._session.login_with_password(user, pw)
+ exception = self.XenAPI.Failure(_("Unable to log in to XenAPI."))
+ with timeout.Timeout(FLAGS.xenapi_login_timeout, exception):
+ self._session.login_with_password(user, pw)
self.loop = None
def get_imported_xenapi(self):