diff options
author | Shivanand Tendulker <stendulker@gmail.com> | 2019-08-02 01:49:57 -0400 |
---|---|---|
committer | Shivanand Tendulker <stendulker@gmail.com> | 2019-08-14 01:02:34 -0400 |
commit | b1986361a8a8badf837d12227a32ff6245a1ec21 (patch) | |
tree | e130becf91203869b84aacd13527d00546f39c7c /ironic/tests/unit/drivers | |
parent | ce163996ce2969c98d109f9d5704f93be7234f43 (diff) | |
download | ironic-b1986361a8a8badf837d12227a32ff6245a1ec21.tar.gz |
Add new method 'apply_configuration' to RAIDInterface
This commit adds new method 'apply_configuration' to RAIDInterface.
This method would be used as deploy step and would accept the
target raid config as argsinfo argument.
Co-Authored-By: Mark Goddard <mark@stackhpc.com>
Change-Id: If50294f5413e67bb333ebba53fb3dab251f5317d
Story: 2003817
Task: 26571
Task: 30004
Task: 36061
Diffstat (limited to 'ironic/tests/unit/drivers')
-rw-r--r-- | ironic/tests/unit/drivers/test_base.py | 66 |
1 files changed, 65 insertions, 1 deletions
diff --git a/ironic/tests/unit/drivers/test_base.py b/ironic/tests/unit/drivers/test_base.py index 786178403..1cf00fc10 100644 --- a/ironic/tests/unit/drivers/test_base.py +++ b/ironic/tests/unit/drivers/test_base.py @@ -19,6 +19,7 @@ import mock from ironic.common import exception from ironic.common import raid +from ironic.common import states from ironic.drivers import base as driver_base from ironic.drivers.modules import fake from ironic.tests import base @@ -574,7 +575,8 @@ class MyRAIDInterface(driver_base.RAIDInterface): def create_configuration(self, task, create_root_volume=True, - create_nonroot_volumes=True): + create_nonroot_volumes=True, + delete_existing=True): pass def delete_configuration(self, task): @@ -626,6 +628,68 @@ class RAIDInterfaceTestCase(base.TestCase): raid_interface.get_logical_disk_properties() get_properties_mock.assert_called_once_with(raid_schema) + @mock.patch.object(MyRAIDInterface, 'create_configuration', autospec=True) + @mock.patch.object(MyRAIDInterface, 'validate_raid_config', + autospec=True) + def test_apply_configuration(self, mock_validate, mock_create): + raid_interface = MyRAIDInterface() + node_mock = mock.MagicMock(target_raid_config=None) + task_mock = mock.MagicMock(node=node_mock) + mock_create.return_value = states.DEPLOYWAIT + raid_config = 'some_raid_config' + + result = raid_interface.apply_configuration(task_mock, raid_config) + + self.assertEqual(states.DEPLOYWAIT, result) + mock_validate.assert_called_once_with(raid_interface, task_mock, + raid_config) + mock_create.assert_called_once_with(raid_interface, task_mock, + create_root_volume=True, + create_nonroot_volumes=True, + delete_existing=True) + self.assertEqual(raid_config, node_mock.target_raid_config) + + @mock.patch.object(MyRAIDInterface, 'create_configuration', autospec=True) + @mock.patch.object(MyRAIDInterface, 'validate_raid_config', + autospec=True) + def test_apply_configuration_delete_existing(self, mock_validate, + mock_create): + raid_interface = MyRAIDInterface() + node_mock = mock.MagicMock(target_raid_config=None) + task_mock = mock.MagicMock(node=node_mock) + mock_create.return_value = states.DEPLOYWAIT + raid_config = 'some_raid_config' + + result = raid_interface.apply_configuration(task_mock, raid_config, + delete_existing=True) + + self.assertEqual(states.DEPLOYWAIT, result) + mock_validate.assert_called_once_with(raid_interface, task_mock, + raid_config) + mock_create.assert_called_once_with(raid_interface, task_mock, + create_root_volume=True, + create_nonroot_volumes=True, + delete_existing=True) + self.assertEqual(raid_config, node_mock.target_raid_config) + + @mock.patch.object(MyRAIDInterface, 'create_configuration', autospec=True) + @mock.patch.object(MyRAIDInterface, 'validate_raid_config', + autospec=True) + def test_apply_configuration_invalid(self, mock_validate, mock_create): + raid_interface = MyRAIDInterface() + node_mock = mock.MagicMock(target_raid_config=None) + task_mock = mock.MagicMock(node=node_mock) + mock_validate.side_effect = exception.InvalidParameterValue('bad') + raid_config = 'some_raid_config' + + self.assertRaises(exception.InvalidParameterValue, + raid_interface.apply_configuration, task_mock, + raid_config) + mock_validate.assert_called_once_with(raid_interface, task_mock, + raid_config) + self.assertFalse(mock_create.called) + self.assertIsNone(node_mock.target_raid_config) + class TestDeployInterface(base.TestCase): @mock.patch.object(driver_base.LOG, 'warning', autospec=True) |