diff options
| author | Sandy Walsh <sandy.walsh@rackspace.com> | 2011-04-07 19:12:27 +0000 |
|---|---|---|
| committer | Tarmac <> | 2011-04-07 19:12:27 +0000 |
| commit | c9b58d39044166bf5a03991e33a5302e1cd5cce9 (patch) | |
| tree | 7814a9c8845488a00a391d88c922b33cf45134c7 | |
| parent | e05e08f213edde516611586b1a893b34c8abb41e (diff) | |
| parent | 9f57f78efab4a31bfe29e2edab1e86eedf4352fd (diff) | |
adds a timeout on session.login_with_password()
| -rw-r--r-- | nova/virt/xenapi_conn.py | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/nova/virt/xenapi_conn.py b/nova/virt/xenapi_conn.py index 99fd35c61..0cabccf08 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,6 +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(_): @@ -318,7 +322,10 @@ 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 " + "(is the Dom0 disk full?)")) + with timeout.Timeout(FLAGS.xenapi_login_timeout, exception): + self._session.login_with_password(user, pw) self.loop = None def get_imported_xenapi(self): |
