diff options
| author | Sandy Walsh <sandy.walsh@rackspace.com> | 2011-04-07 10:34:14 -0300 |
|---|---|---|
| committer | Sandy Walsh <sandy.walsh@rackspace.com> | 2011-04-07 10:34:14 -0300 |
| commit | 7cf0deda8f7ab410005c556779353d599c8e8a63 (patch) | |
| tree | 5b402742830f214dc043935c195500da5b1345fe /nova | |
| parent | 7bd99e33796f1e90b6f8b0b9caa122c541f99015 (diff) | |
adds timeout to login_with_password
Diffstat (limited to 'nova')
| -rw-r--r-- | nova/virt/xenapi_conn.py | 9 |
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): |
