Beispiel #1
0
 def _create_first_session(self, url, user, pw, exception):
     try:
         session = self._create_session_and_login(url, user, pw, exception)
     except self.XenAPI.Failure as e:
         # if user and pw of the master are different, we're doomed!
         if e.details[0] == "HOST_IS_SLAVE":
             master = e.details[1]
             url = pool.swap_xapi_host(url, master)
             session = self._create_session_and_login(url, user, pw, exception)
             self.is_slave = True
         else:
             raise
     self._sessions.put(session)
     return url
Beispiel #2
0
 def _create_first_session(self, url, user, pw, exception):
     try:
         session = self._create_session(url)
         with timeout.Timeout(FLAGS.xenapi_login_timeout, exception):
             session.login_with_password(user, pw)
     except self.XenAPI.Failure, e:
         # if user and pw of the master are different, we're doomed!
         if e.details[0] == 'HOST_IS_SLAVE':
             master = e.details[1]
             url = pool.swap_xapi_host(url, master)
             session = self.XenAPI.Session(url)
             session.login_with_password(user, pw)
             self.is_slave = True
         else:
             raise
Beispiel #3
0
 def _create_first_session(self, url, user, pw, exception):
     try:
         session = self._create_session_and_login(url, user, pw, exception)
     except self.XenAPI.Failure as e:
         # if user and pw of the master are different, we're doomed!
         if e.details[0] == 'HOST_IS_SLAVE':
             master = e.details[1]
             url = pool.swap_xapi_host(url, master)
             session = self._create_session_and_login(
                 url, user, pw, exception)
             self.is_slave = True
         else:
             raise
     self._sessions.put(session)
     return url
Beispiel #4
0
 def _create_first_session(self, url, user, pw, exception):
     try:
         session = self._create_session(url)
         with timeout.Timeout(CONF.xenapi_login_timeout, exception):
             session.login_with_password(user, pw)
     except self.XenAPI.Failure, e:
         # if user and pw of the master are different, we're doomed!
         if e.details[0] == 'HOST_IS_SLAVE':
             master = e.details[1]
             url = pool.swap_xapi_host(url, master)
             session = self.XenAPI.Session(url)
             session.login_with_password(user, pw)
             self.is_slave = True
         else:
             raise
Beispiel #5
0
 def _create_first_session(self, url, user, pw, exception):
     try:
         session = self._create_session(url)
         with timeout.Timeout(CONF.xenserver.login_timeout, exception):
             session.login_with_password(user, pw, self.nova_version, "OpenStack")
     except self.XenAPI.Failure as e:
         # if user and pw of the master are different, we're doomed!
         if e.details[0] == "HOST_IS_SLAVE":
             master = e.details[1]
             url = pool.swap_xapi_host(url, master)
             session = self.XenAPI.Session(url)
             session.login_with_password(user, pw, self.nova_version, "OpenStack")
             self.is_slave = True
         else:
             raise
     self._sessions.put(session)
     return url
Beispiel #6
0
 def __init__(self, url, user, pw):
     self.XenAPI = self.get_imported_xenapi()
     self._sessions = queue.Queue()
     self.host_uuid = None
     exception = self.XenAPI.Failure(
         _("Unable to log in to XenAPI "
           "(is the Dom0 disk full?)"))
     is_slave = False
     for i in xrange(FLAGS.xenapi_connection_concurrent):
         try:
             session = self._create_session(url)
             with timeout.Timeout(FLAGS.xenapi_login_timeout, exception):
                 session.login_with_password(user, pw)
         except self.XenAPI.Failure, e:
             # if user and pw of the master are different, we're doomed!
             if e.details[0] == 'HOST_IS_SLAVE':
                 master = e.details[1]
                 session = self.XenAPI.Session(
                     pool.swap_xapi_host(url, master))
                 session.login_with_password(user, pw)
                 is_slave = True
             else:
                 raise
         self._sessions.put(session)