diff options
author | Aija Jauntēva <aija.jaunteva@dell.com> | 2022-01-20 05:56:55 -0500 |
---|---|---|
committer | Aija Jauntēva <aija.jaunteva@dell.com> | 2022-01-21 05:44:06 -0500 |
commit | bfea8f17b041f458e59557ebbb2f9cc50f8fdf24 (patch) | |
tree | 9415e8f5264a7c4619c3b775ac7726ef61723dd5 /ironic | |
parent | c65cbb7aef1289b44d2f1ff0c3f0aaa7c31284c0 (diff) | |
download | ironic-bfea8f17b041f458e59557ebbb2f9cc50f8fdf24.tar.gz |
Add idrac-wsman clean steps to not require ramdisk
For BIOS factory_reset updated to use power interface
as direct REBOOT call fails when system is OFF that
can happen if running without ramdisk.
Change-Id: I9baf13e9a089bc692e8010dc7e291d7791d1f73c
Diffstat (limited to 'ironic')
-rw-r--r-- | ironic/drivers/modules/drac/bios.py | 6 | ||||
-rw-r--r-- | ironic/drivers/modules/drac/management.py | 6 | ||||
-rw-r--r-- | ironic/drivers/modules/drac/raid.py | 4 | ||||
-rw-r--r-- | ironic/tests/unit/drivers/modules/drac/test_bios.py | 4 |
4 files changed, 12 insertions, 8 deletions
diff --git a/ironic/drivers/modules/drac/bios.py b/ironic/drivers/modules/drac/bios.py index 8ea3ff51f..2ee565768 100644 --- a/ironic/drivers/modules/drac/bios.py +++ b/ironic/drivers/modules/drac/bios.py @@ -71,7 +71,7 @@ class DracWSManBIOS(base.BIOSInterface): reason=_("Unable to import dracclient.exceptions library")) @METRICS.timer('DracWSManBIOS.apply_configuration') - @base.clean_step(priority=0, argsinfo=_args_info) + @base.clean_step(priority=0, argsinfo=_args_info, requires_ramdisk=False) @base.deploy_step(priority=0, argsinfo=_args_info) def apply_configuration(self, task, settings): """Apply the BIOS configuration to the node @@ -352,7 +352,7 @@ class DracWSManBIOS(base.BIOSInterface): manager_utils.notify_conductor_resume_deploy(task) @METRICS.timer('DracWSManBIOS.factory_reset') - @base.clean_step(priority=0) + @base.clean_step(priority=0, requires_ramdisk=False) @base.deploy_step(priority=0) def factory_reset(self, task): """Reset the BIOS settings of the node to the factory default. @@ -418,7 +418,7 @@ class DracWSManBIOS(base.BIOSInterface): node.timestamp_driver_internal_info('factory_reset_time') # rebooting the server to apply factory reset value - client.set_power_state('REBOOT') + task.driver.power.reboot(task) # This method calls node.save(), bios_config_job_id will be # saved automatically diff --git a/ironic/drivers/modules/drac/management.py b/ironic/drivers/modules/drac/management.py index f18f5e29e..0e9284990 100644 --- a/ironic/drivers/modules/drac/management.py +++ b/ironic/drivers/modules/drac/management.py @@ -763,7 +763,7 @@ class DracWSManManagement(base.ManagementInterface): @METRICS.timer('DracManagement.reset_idrac') @base.verify_step(priority=0) - @base.clean_step(priority=0) + @base.clean_step(priority=0, requires_ramdisk=False) def reset_idrac(self, task): """Reset the iDRAC. @@ -778,7 +778,7 @@ class DracWSManManagement(base.ManagementInterface): @METRICS.timer('DracManagement.known_good_state') @base.verify_step(priority=0) - @base.clean_step(priority=0) + @base.clean_step(priority=0, requires_ramdisk=False) def known_good_state(self, task): """Reset the iDRAC, Clear the job queue. @@ -794,7 +794,7 @@ class DracWSManManagement(base.ManagementInterface): @METRICS.timer('DracManagement.clear_job_queue') @base.verify_step(priority=0) - @base.clean_step(priority=0) + @base.clean_step(priority=0, requires_ramdisk=False) def clear_job_queue(self, task): """Clear the job queue. diff --git a/ironic/drivers/modules/drac/raid.py b/ironic/drivers/modules/drac/raid.py index d4e633f9c..ae5282838 100644 --- a/ironic/drivers/modules/drac/raid.py +++ b/ironic/drivers/modules/drac/raid.py @@ -1593,7 +1593,7 @@ class DracWSManRAID(base.RAIDInterface): ), "required": False, } - }) + }, requires_ramdisk=False) def create_configuration(self, task, create_root_volume=True, create_nonroot_volumes=True, @@ -1690,7 +1690,7 @@ class DracWSManRAID(base.RAIDInterface): return _create_virtual_disks(task, node) @METRICS.timer('DracRAID.delete_configuration') - @base.clean_step(priority=0) + @base.clean_step(priority=0, requires_ramdisk=False) @base.deploy_step(priority=0) def delete_configuration(self, task): """Delete the RAID configuration. diff --git a/ironic/tests/unit/drivers/modules/drac/test_bios.py b/ironic/tests/unit/drivers/modules/drac/test_bios.py index e24267f95..ab56fed0e 100644 --- a/ironic/tests/unit/drivers/modules/drac/test_bios.py +++ b/ironic/tests/unit/drivers/modules/drac/test_bios.py @@ -22,6 +22,7 @@ Test class for DRAC BIOS configuration specific methods from unittest import mock from dracclient import exceptions as drac_exceptions +from oslo_utils import importutils from oslo_utils import timeutils from ironic.common import exception @@ -36,6 +37,8 @@ from ironic import objects from ironic.tests.unit.drivers.modules.drac import utils as test_utils from ironic.tests.unit.objects import utils as obj_utils +drac_constants = importutils.try_import('dracclient.constants') + INFO_DICT = test_utils.INFO_DICT @@ -73,6 +76,7 @@ class DracWSManBIOSConfigurationTestCase(test_utils.BaseDracTest): } self.mock_client.commit_pending_bios_changes.return_value = \ "JID_5678" + self.mock_client.get_power_state.return_value = drac_constants.POWER_ON @mock.patch.object(drac_common, 'parse_driver_info', autospec=True) |