summaryrefslogtreecommitdiff
path: root/ironic
diff options
context:
space:
mode:
authorZhou Hao <zhouhao@fujitsu.com>2022-04-28 09:30:08 +0800
committerZhou Hao <zhouhao@fujitsu.com>2022-04-28 09:30:29 +0800
commit93a993d0265457c14c91bd7f058fcb5a86c6fd07 (patch)
tree3051b9281e1a7a9cd976a54c2bb10d07f76d675a /ironic
parente5626ab9c7d1b71f078b90e4c785a4aaff6d05b3 (diff)
downloadironic-93a993d0265457c14c91bd7f058fcb5a86c6fd07.tar.gz
[iRMC] Change the way to get irmc-info in raid
When using the node managed by the `irmc` hardware type, if the port number of the bmc address is manually specified, the following error will occur when configuring raid: ``` %d format: a number is required, not str ``` Change raid to call parse_driver_info to get irmc_info, so that irmc-port can be converted to int type to avoid this error. Story: #2010009 Task: #45151 Signed-off-by: Zhou Hao <zhouhao@fujitsu.com> Change-Id: Ifb12822e40afd2f68eb5a2091c9258013f3dccae
Diffstat (limited to 'ironic')
-rw-r--r--ironic/drivers/modules/irmc/raid.py6
-rw-r--r--ironic/tests/unit/drivers/modules/irmc/test_raid.py3
2 files changed, 5 insertions, 4 deletions
diff --git a/ironic/drivers/modules/irmc/raid.py b/ironic/drivers/modules/irmc/raid.py
index 26737ea11..c8a5b9537 100644
--- a/ironic/drivers/modules/irmc/raid.py
+++ b/ironic/drivers/modules/irmc/raid.py
@@ -81,7 +81,7 @@ def _get_raid_adapter(node):
:returns: RAID adapter dictionary, None otherwise.
:raises: IRMCOperationError on an error from python-scciclient.
"""
- irmc_info = node.driver_info
+ irmc_info = irmc_common.parse_driver_info(node)
LOG.info('iRMC driver is gathering RAID adapter info for node %s',
node.uuid)
try:
@@ -137,7 +137,7 @@ def _create_raid_adapter(node):
:raises: IRMCOperationError on an error from python-scciclient.
"""
- irmc_info = node.driver_info
+ irmc_info = irmc_common.parse_driver_info(node)
target_raid_config = node.target_raid_config
try:
@@ -164,7 +164,7 @@ def _delete_raid_adapter(node):
:raises: IRMCOperationError if SCCI failed from python-scciclient.
"""
- irmc_info = node.driver_info
+ irmc_info = irmc_common.parse_driver_info(node)
try:
client.elcm.delete_raid_configuration(irmc_info)
diff --git a/ironic/tests/unit/drivers/modules/irmc/test_raid.py b/ironic/tests/unit/drivers/modules/irmc/test_raid.py
index 94c77db2f..eefe7ff3a 100644
--- a/ironic/tests/unit/drivers/modules/irmc/test_raid.py
+++ b/ironic/tests/unit/drivers/modules/irmc/test_raid.py
@@ -22,6 +22,7 @@ from ironic.common import exception
from ironic.conductor import task_manager
from ironic import drivers as ironic_drivers
from ironic.drivers.modules import deploy_utils
+from ironic.drivers.modules.irmc import common as irmc_common
from ironic.drivers.modules.irmc import raid
from ironic.tests.unit.drivers.modules.irmc import test_common
@@ -702,7 +703,7 @@ class IRMCRaidConfigurationInternalMethodsTestCase(test_common.BaseIRMCTest):
shared=True) as task:
raid._commit_raid_config(task)
get_raid_adapter_mock.assert_called_once_with(
- task.node.driver_info)
+ irmc_common.parse_driver_info(task.node))
update_raid_info_mock.assert_called_once_with(
task.node, task.node.raid_config)
set_async_step_flags_mock.assert_called_once_with(