Skip to content

Commit 187a30c

Browse files
Validate windows_virtio_iso_url OSMorphing parameter
Signed-off-by: Mihaela Balutoiu <mbalutoiu@cloudbasesolutions.com>
1 parent 5ced0d6 commit 187a30c

2 files changed

Lines changed: 25 additions & 2 deletions

File tree

coriolis/osmorphing/windows.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,8 @@
7171
REQUIRED_DETECTED_WINDOWS_OS_FIELDS = [
7272
"version_number", "edition_id", "installation_type", "product_name"]
7373

74+
VIRTIO_WIN_ISO_PATH = "c:\\virtio-win.iso"
75+
7476
INTERFACES_PATH_FORMAT = (
7577
"HKLM:\\%s\\ControlSet001\\Services\\Tcpip\\Parameters\\Interfaces")
7678

@@ -754,10 +756,16 @@ def _add_virtio_drivers(self):
754756
"viogpudo",
755757
]
756758

759+
virtio_iso_url = self._osmorphing_parameters.get(
760+
"windows_virtio_iso_url")
761+
if not virtio_iso_url:
762+
raise exception.CoriolisException(
763+
"VirtIO drivers ISO URL ('windows_virtio_iso_url') not set "
764+
"in the OSMorphing parameters")
765+
757766
self._event_manager.progress_update("Downloading virtio-win drivers")
758767

759-
virtio_iso_path = "c:\\virtio-win.iso"
760-
virtio_iso_url = self._osmorphing_parameters["windows_virtio_iso_url"]
768+
virtio_iso_path = VIRTIO_WIN_ISO_PATH
761769
utils.retry_on_error(sleep_seconds=5)(self._conn.download_file)(
762770
virtio_iso_url, virtio_iso_path
763771
)

coriolis/tests/osmorphing/test_windows.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1202,3 +1202,18 @@ def test_add_virtio_drivers_unsupported_version(
12021202
mock_mount_disk_image.assert_called_once_with(exp_iso_path)
12031203
mock_dismount.assert_called_once_with(exp_iso_path)
12041204
mock_add_dism_driver.assert_not_called()
1205+
1206+
@mock.patch.object(windows.BaseWindowsMorphingTools, "_mount_disk_image")
1207+
def test_add_virtio_drivers_missing_iso_url(
1208+
self, mock_mount_disk_image):
1209+
self.morphing_tools._version_number = version.LooseVersion(
1210+
"10.0.26500")
1211+
self.morphing_tools._edition_id = "ServerDatacenterEval"
1212+
self.morphing_tools._osmorphing_parameters = {}
1213+
1214+
self.assertRaises(
1215+
exception.CoriolisException,
1216+
self.morphing_tools._add_virtio_drivers)
1217+
1218+
self.morphing_tools._conn.download_file.assert_not_called()
1219+
mock_mount_disk_image.assert_not_called()

0 commit comments

Comments
 (0)