Skip to content

Commit 00cfbf8

Browse files
Jenkinsopenstack-gerrit
authored andcommitted
Merge "XenAPI: Fix config section usage"
2 parents ebdf606 + 32f1b41 commit 00cfbf8

File tree

4 files changed

+46
-12
lines changed

4 files changed

+46
-12
lines changed

nova/tests/virt/xenapi/image/test_glance.py

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,15 +88,16 @@ def test_download_image(self):
8888

8989
self.mox.VerifyAll()
9090

91-
def _get_upload_params(self, auto_disk_config=True):
91+
def _get_upload_params(self, auto_disk_config=True,
92+
expected_os_type='default'):
9293
params = self._get_params()
9394
params['vdi_uuids'] = ['fake_vdi_uuid']
9495
params['properties'] = {'auto_disk_config': auto_disk_config,
95-
'os_type': 'default'}
96+
'os_type': expected_os_type}
9697
return params
9798

98-
def _test_upload_image(self, auto_disk_config):
99-
params = self._get_upload_params(auto_disk_config)
99+
def _test_upload_image(self, auto_disk_config, expected_os_type='default'):
100+
params = self._get_upload_params(auto_disk_config, expected_os_type)
100101

101102
self.mox.StubOutWithMock(self.session, 'call_plugin_serialized')
102103
self.session.call_plugin_serialized('glance', 'upload_vhd', **params)
@@ -109,6 +110,14 @@ def _test_upload_image(self, auto_disk_config):
109110
def test_upload_image(self):
110111
self._test_upload_image(True)
111112

113+
def test_upload_image_None_os_type(self):
114+
self.instance['os_type'] = None
115+
self._test_upload_image(True, 'linux')
116+
117+
def test_upload_image_no_os_type(self):
118+
del self.instance['os_type']
119+
self._test_upload_image(True, 'linux')
120+
112121
def test_upload_image_auto_config_disk_disabled(self):
113122
sys_meta = [{"key": "image_auto_disk_config", "value": "Disabled"}]
114123
self.instance["system_metadata"] = sys_meta

nova/tests/virt/xenapi/test_volume_utils.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,26 @@ def test_vbd_plug_check_synchronized(self, mock_synchronized):
3333
session = mock.Mock()
3434
volume_utils.vbd_plug(session, "vbd_ref", "vm_ref:123")
3535
mock_synchronized.assert_called_once_with("xenapi-vbd-plug-vm_ref:123")
36+
37+
38+
class ISCSIParametersTestCase(stubs.XenAPITestBaseNoDB):
39+
def test_target_host(self):
40+
self.assertEqual(volume_utils._get_target_host('host:port'),
41+
'host')
42+
43+
self.assertEqual(volume_utils._get_target_host('host'),
44+
'host')
45+
46+
# There is no default value
47+
self.assertEqual(volume_utils._get_target_host(':port'),
48+
None)
49+
50+
self.assertEqual(volume_utils._get_target_host(None),
51+
None)
52+
53+
def test_target_port(self):
54+
self.assertEqual(volume_utils._get_target_port('host:port'),
55+
'port')
56+
57+
self.assertEqual(volume_utils._get_target_port('host'),
58+
'3260')

nova/virt/xenapi/image/glance.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,8 @@ def upload_image(self, context, session, instance, vdi_uuids, image_id):
5959

6060
props = params['properties'] = {}
6161
props['auto_disk_config'] = instance['auto_disk_config']
62-
props['os_type'] = instance['os_type'] or CONF.default_os_type
62+
props['os_type'] = instance.get('os_type', None) or (
63+
CONF.xenserver.default_os_type)
6364

6465
compression_level = vm_utils.get_compression_level()
6566
if compression_level:

nova/virt/xenapi/volume_utils.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -300,17 +300,18 @@ def _get_volume_id(path_or_id):
300300
def _get_target_host(iscsi_string):
301301
"""Retrieve target host."""
302302
if iscsi_string:
303-
return iscsi_string[0:iscsi_string.find(':')]
304-
elif iscsi_string is None or CONF.target_host:
305-
return CONF.target_host
303+
host = iscsi_string.split(':')[0]
304+
if len(host) > 0:
305+
return host
306+
return CONF.xenserver.target_host
306307

307308

308309
def _get_target_port(iscsi_string):
309310
"""Retrieve target port."""
310-
if iscsi_string:
311-
return iscsi_string[iscsi_string.find(':') + 1:]
312-
elif iscsi_string is None or CONF.target_port:
313-
return CONF.target_port
311+
if iscsi_string and ':' in iscsi_string:
312+
return iscsi_string.split(':')[1]
313+
314+
return CONF.xenserver.target_port
314315

315316

316317
def vbd_plug(session, vbd_ref, vm_ref):

0 commit comments

Comments
 (0)