Merge "[iRMC] Set polling after RAID is built"
This commit is contained in:
commit
6676e09f03
@ -27,6 +27,7 @@ from ironic.conductor import task_manager
|
|||||||
from ironic.conductor import utils as manager_utils
|
from ironic.conductor import utils as manager_utils
|
||||||
from ironic import conf
|
from ironic import conf
|
||||||
from ironic.drivers import base
|
from ironic.drivers import base
|
||||||
|
from ironic.drivers.modules import deploy_utils
|
||||||
from ironic.drivers.modules.irmc import common as irmc_common
|
from ironic.drivers.modules.irmc import common as irmc_common
|
||||||
|
|
||||||
client = importutils.try_import('scciclient.irmc')
|
client = importutils.try_import('scciclient.irmc')
|
||||||
@ -206,6 +207,12 @@ def _commit_raid_config(task):
|
|||||||
LOG.info('RAID config is created successfully on node %s',
|
LOG.info('RAID config is created successfully on node %s',
|
||||||
node_uuid)
|
node_uuid)
|
||||||
|
|
||||||
|
deploy_utils.set_async_step_flags(
|
||||||
|
task.node,
|
||||||
|
reboot=True,
|
||||||
|
skip_current_step=True,
|
||||||
|
polling=True)
|
||||||
|
|
||||||
return states.CLEANWAIT
|
return states.CLEANWAIT
|
||||||
|
|
||||||
|
|
||||||
|
@ -20,6 +20,7 @@ from unittest import mock
|
|||||||
|
|
||||||
from ironic.common import exception
|
from ironic.common import exception
|
||||||
from ironic.conductor import task_manager
|
from ironic.conductor import task_manager
|
||||||
|
from ironic.drivers.modules import deploy_utils
|
||||||
from ironic.drivers.modules.irmc import raid
|
from ironic.drivers.modules.irmc import raid
|
||||||
from ironic.tests.unit.drivers.modules.irmc import test_common
|
from ironic.tests.unit.drivers.modules.irmc import test_common
|
||||||
|
|
||||||
@ -604,8 +605,10 @@ class IRMCRaidConfigurationInternalMethodsTestCase(test_common.BaseIRMCTest):
|
|||||||
@mock.patch('ironic.common.raid.update_raid_info', autospec=True)
|
@mock.patch('ironic.common.raid.update_raid_info', autospec=True)
|
||||||
@mock.patch('ironic.drivers.modules.irmc.raid.client.elcm.'
|
@mock.patch('ironic.drivers.modules.irmc.raid.client.elcm.'
|
||||||
'get_raid_adapter', autospec=True)
|
'get_raid_adapter', autospec=True)
|
||||||
|
@mock.patch.object(deploy_utils, 'set_async_step_flags', autospec=True)
|
||||||
def test__commit_raid_config_with_logical_drives(
|
def test__commit_raid_config_with_logical_drives(
|
||||||
self, get_raid_adapter_mock, update_raid_info_mock):
|
self, set_async_step_flags_mock,
|
||||||
|
get_raid_adapter_mock, update_raid_info_mock):
|
||||||
get_raid_adapter_mock.return_value = {
|
get_raid_adapter_mock.return_value = {
|
||||||
"Server": {
|
"Server": {
|
||||||
"HWConfigurationIrmc": {
|
"HWConfigurationIrmc": {
|
||||||
@ -698,6 +701,8 @@ class IRMCRaidConfigurationInternalMethodsTestCase(test_common.BaseIRMCTest):
|
|||||||
task.node.driver_info)
|
task.node.driver_info)
|
||||||
update_raid_info_mock.assert_called_once_with(
|
update_raid_info_mock.assert_called_once_with(
|
||||||
task.node, task.node.raid_config)
|
task.node, task.node.raid_config)
|
||||||
|
set_async_step_flags_mock.assert_called_once_with(
|
||||||
|
task.node, reboot=True, skip_current_step=True, polling=True)
|
||||||
self.assertEqual(task.node.raid_config['logical_disks'],
|
self.assertEqual(task.node.raid_config['logical_disks'],
|
||||||
expected_raid_config)
|
expected_raid_config)
|
||||||
|
|
||||||
|
@ -0,0 +1,8 @@
|
|||||||
|
---
|
||||||
|
fixes:
|
||||||
|
- |
|
||||||
|
When configuring RAID on iRMC machines through ironic,
|
||||||
|
polling is not set when RAID is created.
|
||||||
|
After creating the RAID, set up polling will notify ironic to
|
||||||
|
wait for the RAID configuration to complete before
|
||||||
|
proceeding to the next step instead of check IPA.
|
Loading…
x
Reference in New Issue
Block a user