Add iDRAC Redfish sync boot mode test
This adds test for sync boot mode which changes boot mode from 'bios' to 'uefi' and vice versa using iDRAC redfish Change-Id: I43241204e71ab7e0d8c8929e216ce9473c3c2e1e
This commit is contained in:
parent
50f0a715d5
commit
2e680f9f80
@ -601,3 +601,56 @@ class BaremetalIdracVirtualMediaWholedisk(
|
|||||||
@utils.services('image', 'network')
|
@utils.services('image', 'network')
|
||||||
def test_deploy_virtual_media_boot(self):
|
def test_deploy_virtual_media_boot(self):
|
||||||
self.boot_and_verify_node()
|
self.boot_and_verify_node()
|
||||||
|
|
||||||
|
|
||||||
|
class BaremetalIdracSyncBootModeDirectWholedisk(
|
||||||
|
bsm.BaremetalStandaloneScenarioTest):
|
||||||
|
|
||||||
|
mandatory_attr = ['driver', 'power_interface', 'management_interface',
|
||||||
|
'bios_interface']
|
||||||
|
|
||||||
|
api_microversion = '1.40' # to get list_node_bios_settings
|
||||||
|
driver = 'idrac'
|
||||||
|
|
||||||
|
# NOTE: Image with UEFI support is necessary
|
||||||
|
image_ref = CONF.baremetal.whole_disk_image_ref
|
||||||
|
wholedisk_image = True
|
||||||
|
boot_interface = 'ipxe'
|
||||||
|
power_interface = 'idrac-redfish'
|
||||||
|
management_interface = 'idrac-redfish'
|
||||||
|
bios_interface = 'idrac-redfish'
|
||||||
|
deploy_interface = 'direct'
|
||||||
|
bios_mode = {'boot_mode': 'bios'}
|
||||||
|
uefi_mode = {'boot_mode': 'uefi'}
|
||||||
|
|
||||||
|
def _get_boot_mode_to_update(self):
|
||||||
|
_, bios_settings = self.baremetal_client.\
|
||||||
|
list_node_bios_settings(self.node['uuid'])
|
||||||
|
for attr_name in bios_settings['bios']:
|
||||||
|
if attr_name['name'] == 'BootMode':
|
||||||
|
if attr_name['value'] == 'Uefi':
|
||||||
|
boot_mode = self.bios_mode
|
||||||
|
else:
|
||||||
|
boot_mode = self.uefi_mode
|
||||||
|
return boot_mode
|
||||||
|
|
||||||
|
@decorators.idempotent_id('c2bebda2-fd27-4b10-9015-f7d877f0eb60')
|
||||||
|
@utils.services('image', 'network')
|
||||||
|
def test_sync_boot_mode(self):
|
||||||
|
boot_mode_path = '/instance_info/capabilities'
|
||||||
|
mode_to_update = self._get_boot_mode_to_update()
|
||||||
|
self.update_node(self.node['uuid'], [{'op': 'replace',
|
||||||
|
'path': boot_mode_path,
|
||||||
|
'value': mode_to_update}])
|
||||||
|
self.boot_and_verify_node()
|
||||||
|
if mode_to_update == self.uefi_mode:
|
||||||
|
mode_to_update = self.bios_mode
|
||||||
|
else:
|
||||||
|
mode_to_update = self.uefi_mode
|
||||||
|
self.update_node(self.node['uuid'], [{'op': 'replace',
|
||||||
|
'path': boot_mode_path,
|
||||||
|
'value': mode_to_update}])
|
||||||
|
self.set_node_provision_state(self.node['uuid'], 'rebuild')
|
||||||
|
self.wait_provisioning_state(self.node['uuid'], 'active',
|
||||||
|
timeout=CONF.baremetal.active_timeout,
|
||||||
|
interval=30)
|
||||||
|
Loading…
Reference in New Issue
Block a user