From 7dce682e2ab0c14236dbc58a38c925536b3b6f8d Mon Sep 17 00:00:00 2001 From: naichuans Date: Mon, 18 Sep 2017 05:45:29 +0000 Subject: [PATCH] os-xenapi: Fix configure driver creating issue In pooled environment, there would be an error when we create a VM with configure driver on slave hosts. It is happened because the streaming connection is created between slave compute node and master Dom0. Change the connection back to slave Dom0 to fix this error. Change-Id: I02a740be3acf8973b6a324cf3563e427fc11534b --- os_xenapi/client/session.py | 5 +++-- os_xenapi/tests/client/test_session.py | 6 ++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/os_xenapi/client/session.py b/os_xenapi/client/session.py index 1050f85..f63516b 100644 --- a/os_xenapi/client/session.py +++ b/os_xenapi/client/session.py @@ -88,8 +88,9 @@ class XenAPISession(object): self.host_checked = False self.is_slave = False self.ip = self._get_ip_from_url(url) - self.url = self._create_first_session(url, user, pw) - self._populate_session_pool(self.url, user, pw) + self.url = url + self.master_url = self._create_first_session(url, user, pw) + self._populate_session_pool(self.master_url, user, pw) self.host_ref = self._get_host_ref(self.ip) self.host_uuid = self._get_host_uuid() self.product_version, self.product_brand = \ diff --git a/os_xenapi/tests/client/test_session.py b/os_xenapi/tests/client/test_session.py index b4e9ce1..27884a4 100644 --- a/os_xenapi/tests/client/test_session.py +++ b/os_xenapi/tests/client/test_session.py @@ -101,7 +101,8 @@ class SessionTestCase(base.TestCase): mock_gethostbyname.assert_called_with(fake_ip) self.assertEqual('fake_host_ref', xenapi_sess.host_ref) self.assertEqual('fake_host_uuid', xenapi_sess.host_uuid) - self.assertEqual('http://fake_master_url', xenapi_sess.url) + self.assertEqual('http://fake_master_url', xenapi_sess.master_url) + self.assertEqual(fake_url, xenapi_sess.url) @mock.patch.object(session.XenAPISession, '_verify_plugin_version') @mock.patch.object(session.XenAPISession, '_get_platform_version') @@ -142,7 +143,8 @@ class SessionTestCase(base.TestCase): mock_gethostbyname.assert_called_with(fake_host_name) self.assertEqual('fake_host_ref', xenapi_sess.host_ref) self.assertEqual('fake_host_uuid', xenapi_sess.host_uuid) - self.assertEqual('http://fake_master_url', xenapi_sess.url) + self.assertEqual('http://fake_master_url', xenapi_sess.master_url) + self.assertEqual(fake_url, xenapi_sess.url) @mock.patch.object(session.XenAPISession, '_verify_plugin_version') @mock.patch.object(session.XenAPISession, '_get_platform_version')