Fixes spawn issue on Hyper-V
The current Hyper-V Technical Preview introduces slight changes in the data returned by GetVirtualHardDiskSettingData in Msvm_ImageManagementService. Co-Authored-By: Adelina Tuvenie <atuvenie@cloudbasesolutions.com> Change-Id: I830b07efb657acc1486f86a475310f5f4e584a37 Closes-Bug: #1376883
This commit is contained in:
parent
c54039c507
commit
1f63f97c6f
|
@ -110,6 +110,23 @@ class VHDUtilsV2TestCase(test.NoDBTestCase):
|
|||
vhd_info['MaxInternalSize'])
|
||||
self.assertEqual(self._FAKE_TYPE, vhd_info['Type'])
|
||||
|
||||
def test_get_vhd_info_no_parent(self):
|
||||
fake_vhd_xml_no_parent = self._fake_vhd_info_xml.replace(
|
||||
self._FAKE_PARENT_VHD_PATH, "")
|
||||
|
||||
mock_img_svc = self._vhdutils._conn.Msvm_ImageManagementService()[0]
|
||||
mock_img_svc.GetVirtualHardDiskSettingData.return_value = (
|
||||
self._FAKE_JOB_PATH, self._FAKE_RET_VAL, fake_vhd_xml_no_parent)
|
||||
|
||||
vhd_info = self._vhdutils.get_vhd_info(self._FAKE_VHD_PATH)
|
||||
|
||||
self.assertEqual(self._FAKE_VHD_PATH, vhd_info['Path'])
|
||||
self.assertIsNone(vhd_info['ParentPath'])
|
||||
self.assertEqual(self._FAKE_FORMAT, vhd_info['Format'])
|
||||
self.assertEqual(self._FAKE_MAK_INTERNAL_SIZE,
|
||||
vhd_info['MaxInternalSize'])
|
||||
self.assertEqual(self._FAKE_TYPE, vhd_info['Type'])
|
||||
|
||||
def test_create_dynamic_vhd(self):
|
||||
self._vhdutils.get_vhd_info = mock.MagicMock(
|
||||
return_value={'Format': self._FAKE_FORMAT})
|
||||
|
|
|
@ -215,7 +215,12 @@ class VHDUtilsV2(vhdutils.VHDUtils):
|
|||
et = ElementTree.fromstring(vhd_info_xml)
|
||||
for item in et.findall("PROPERTY"):
|
||||
name = item.attrib["NAME"]
|
||||
value_text = item.find("VALUE").text
|
||||
value_item = item.find("VALUE")
|
||||
if value_item is None:
|
||||
value_text = None
|
||||
else:
|
||||
value_text = value_item.text
|
||||
|
||||
if name in ["Path", "ParentPath"]:
|
||||
vhd_info_dict[name] = value_text
|
||||
elif name in ["BlockSize", "LogicalSectorSize",
|
||||
|
|
Loading…
Reference in New Issue