diff options
Diffstat (limited to 'ironic')
-rw-r--r-- | ironic/drivers/modules/redfish/raid.py | 10 | ||||
-rw-r--r-- | ironic/tests/unit/drivers/modules/redfish/test_raid.py | 19 |
2 files changed, 28 insertions, 1 deletions
diff --git a/ironic/drivers/modules/redfish/raid.py b/ironic/drivers/modules/redfish/raid.py index 013553562..cd875f131 100644 --- a/ironic/drivers/modules/redfish/raid.py +++ b/ironic/drivers/modules/redfish/raid.py @@ -693,6 +693,7 @@ def update_raid_config(node): """ system = redfish_utils.get_system(node) logical_disks = [] + vol_no_raid_type = [] for stor in system.storage.get_members(): for vol in stor.volumes.get_members(): if vol.raid_type: @@ -705,7 +706,14 @@ def update_raid_config(node): key for key, value in RAID_LEVELS.items() if value['raid_type'] == vol.raid_type) } - logical_disks.append(logical_disk) + logical_disks.append(logical_disk) + else: + vol_no_raid_type.append(vol.identity) + + if vol_no_raid_type: + LOG.warning("Unable to update raid_config for volumes missing RAID " + "type: %(vol_no_raid_type)s", + {'vol_no_raid_type': ", ".join(vol_no_raid_type)}) raid_common.update_raid_info(node, {'logical_disks': logical_disks}) diff --git a/ironic/tests/unit/drivers/modules/redfish/test_raid.py b/ironic/tests/unit/drivers/modules/redfish/test_raid.py index 183b27fb9..53987ddca 100644 --- a/ironic/tests/unit/drivers/modules/redfish/test_raid.py +++ b/ironic/tests/unit/drivers/modules/redfish/test_raid.py @@ -1484,3 +1484,22 @@ class RedfishRAIDTestCase(db_base.DbTestCase): mock_build_agent_opt.assert_not_called() # Not yet updated as in progress self.assertEqual({}, task.node.raid_config) + + @mock.patch.object(redfish_raid, 'LOG', autospec=True) + def test_update_raid_config_missing_raid_type( + self, mock_log, mock_get_system): + volumes = [ + _mock_volume( + '1', raid_type=None, + capacity_bytes=100 * units.Gi), + _mock_volume( + '2', raid_type=None, + capacity_bytes=500 * units.Gi)] + self.mock_storage.volumes.get_members.return_value = volumes + mock_get_system.return_value.storage.get_members.return_value = [ + self.mock_storage] + + redfish_raid.update_raid_config(self.node) + + self.assertEqual([], self.node.raid_config['logical_disks']) + mock_log.warning.assert_called_once() |