Fix redfish-virtual-media boot mode handling ordering
Currently sync_boot_mode does not happen for nodes with local boot because of an early return. This patches fixes it. Change-Id: I37b91f93f8f1ca41b814199ec1c5733611b28299
This commit is contained in:
parent
07bdccea58
commit
ad044d9e0b
@ -505,6 +505,8 @@ class RedfishVirtualMediaBoot(base.BootInterface):
|
|||||||
"""
|
"""
|
||||||
node = task.node
|
node = task.node
|
||||||
|
|
||||||
|
boot_mode_utils.sync_boot_mode(task)
|
||||||
|
|
||||||
boot_option = deploy_utils.get_boot_option(node)
|
boot_option = deploy_utils.get_boot_option(node)
|
||||||
self.clean_up_instance(task)
|
self.clean_up_instance(task)
|
||||||
iwdi = node.driver_internal_info.get('is_whole_disk_image')
|
iwdi = node.driver_internal_info.get('is_whole_disk_image')
|
||||||
@ -547,8 +549,6 @@ class RedfishVirtualMediaBoot(base.BootInterface):
|
|||||||
_('Cannot attach configdrive for node %s: no suitable '
|
_('Cannot attach configdrive for node %s: no suitable '
|
||||||
'virtual USB slot has been found') % node.uuid)
|
'virtual USB slot has been found') % node.uuid)
|
||||||
|
|
||||||
boot_mode_utils.sync_boot_mode(task)
|
|
||||||
|
|
||||||
self._set_boot_device(task, boot_devices.CDROM, persistent=True)
|
self._set_boot_device(task, boot_devices.CDROM, persistent=True)
|
||||||
|
|
||||||
LOG.debug("Node %(node)s is set to permanently boot from "
|
LOG.debug("Node %(node)s is set to permanently boot from "
|
||||||
|
@ -710,12 +710,13 @@ class RedfishVirtualMediaBootTestCase(db_base.DbTestCase):
|
|||||||
|
|
||||||
mock_boot_mode_utils.sync_boot_mode.assert_called_once_with(task)
|
mock_boot_mode_utils.sync_boot_mode.assert_called_once_with(task)
|
||||||
|
|
||||||
|
@mock.patch.object(boot_mode_utils, 'sync_boot_mode', autospec=True)
|
||||||
@mock.patch.object(redfish_boot, 'eject_vmedia', autospec=True)
|
@mock.patch.object(redfish_boot, 'eject_vmedia', autospec=True)
|
||||||
@mock.patch.object(image_utils, 'cleanup_iso_image', autospec=True)
|
@mock.patch.object(image_utils, 'cleanup_iso_image', autospec=True)
|
||||||
@mock.patch.object(redfish_boot, 'manager_utils', autospec=True)
|
@mock.patch.object(redfish_boot, 'manager_utils', autospec=True)
|
||||||
def _test_prepare_instance_local_boot(
|
def _test_prepare_instance_local_boot(
|
||||||
self, mock_manager_utils,
|
self, mock_manager_utils,
|
||||||
mock_cleanup_iso_image, mock__eject_vmedia):
|
mock_cleanup_iso_image, mock__eject_vmedia, mock_sync_boot_mode):
|
||||||
|
|
||||||
with task_manager.acquire(self.context, self.node.uuid,
|
with task_manager.acquire(self.context, self.node.uuid,
|
||||||
shared=True) as task:
|
shared=True) as task:
|
||||||
@ -730,6 +731,7 @@ class RedfishVirtualMediaBootTestCase(db_base.DbTestCase):
|
|||||||
mock_cleanup_iso_image.assert_called_once_with(task)
|
mock_cleanup_iso_image.assert_called_once_with(task)
|
||||||
mock__eject_vmedia.assert_called_once_with(
|
mock__eject_vmedia.assert_called_once_with(
|
||||||
task, sushy.VIRTUAL_MEDIA_CD)
|
task, sushy.VIRTUAL_MEDIA_CD)
|
||||||
|
mock_sync_boot_mode.assert_called_once_with(task)
|
||||||
|
|
||||||
def test_prepare_instance_local_whole_disk_image(self):
|
def test_prepare_instance_local_whole_disk_image(self):
|
||||||
self.node.driver_internal_info = {'is_whole_disk_image': True}
|
self.node.driver_internal_info = {'is_whole_disk_image': True}
|
||||||
|
@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
fixes:
|
||||||
|
- |
|
||||||
|
Boot mode is now correctly handled when using ``redfish-virtual-media``
|
||||||
|
boot with locally booted images.
|
Loading…
Reference in New Issue
Block a user