Onetime boot when set_boot_device isn't persistent
Due to a lack of feature of OneView, python-oneviewclient always set the boot device persistently. Now that one-time boot is implemented, we must use it to save some time deploying instances with *_oneview drivers. Change-Id: I01e6f2917d3077d0dddc298e0810574a5450fe09 Depends-On: I1163048b6edf8778c3a84414804b73eef2c0fd5f Co-Authored-By: Hugo Nicodemos <nicodemos@lsd.ufcg.edu.br>
This commit is contained in:
parent
55f23aa26c
commit
1018fd5926
@ -126,7 +126,8 @@ class OneViewManagement(base.ManagementInterface):
|
|||||||
try:
|
try:
|
||||||
device_to_oneview = BOOT_DEVICE_MAPPING_TO_OV.get(device)
|
device_to_oneview = BOOT_DEVICE_MAPPING_TO_OV.get(device)
|
||||||
self.oneview_client.set_boot_device(oneview_info,
|
self.oneview_client.set_boot_device(oneview_info,
|
||||||
device_to_oneview)
|
device_to_oneview,
|
||||||
|
onetime=not persistent)
|
||||||
except oneview_exceptions.OneViewException as oneview_exc:
|
except oneview_exceptions.OneViewException as oneview_exc:
|
||||||
msg = (_(
|
msg = (_(
|
||||||
"Error setting boot device on OneView. Error: %s")
|
"Error setting boot device on OneView. Error: %s")
|
||||||
|
@ -134,7 +134,21 @@ class OneViewManagementDriverTestCase(db_base.DbTestCase):
|
|||||||
self.driver.management.set_boot_device(task, boot_devices.PXE)
|
self.driver.management.set_boot_device(task, boot_devices.PXE)
|
||||||
oneview_client.set_boot_device.assert_called_once_with(
|
oneview_client.set_boot_device.assert_called_once_with(
|
||||||
self.info,
|
self.info,
|
||||||
management.BOOT_DEVICE_MAPPING_TO_OV[boot_devices.PXE]
|
management.BOOT_DEVICE_MAPPING_TO_OV[boot_devices.PXE],
|
||||||
|
onetime=True
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_set_boot_device_persistent(self, mock_get_ov_client):
|
||||||
|
oneview_client = mock_get_ov_client()
|
||||||
|
self.driver.management.oneview_client = oneview_client
|
||||||
|
|
||||||
|
with task_manager.acquire(self.context, self.node.uuid) as task:
|
||||||
|
self.driver.management.set_boot_device(task, boot_devices.PXE,
|
||||||
|
persistent=True)
|
||||||
|
oneview_client.set_boot_device.assert_called_once_with(
|
||||||
|
self.info,
|
||||||
|
management.BOOT_DEVICE_MAPPING_TO_OV[boot_devices.PXE],
|
||||||
|
onetime=False
|
||||||
)
|
)
|
||||||
|
|
||||||
def test_set_boot_device_invalid_device(self, mock_get_ov_client):
|
def test_set_boot_device_invalid_device(self, mock_get_ov_client):
|
||||||
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
fixes:
|
||||||
|
- Previously (python-oneviewclient < 2.4.0), due to limitations of
|
||||||
|
python-oneviewclient, boot device was always set persistenly with
|
||||||
|
OneView drivers. Now that one-time boot is implemented in python-oneviewclient,
|
||||||
|
changing the oneview driver to exhibit the expected behavior when
|
||||||
|
set_boot_device is called with persistent=False.
|
Loading…
Reference in New Issue
Block a user