summaryrefslogtreecommitdiff
path: root/ironic/tests/unit/drivers/test_base.py
diff options
context:
space:
mode:
authorShivanand Tendulker <stendulker@gmail.com>2019-08-02 01:49:57 -0400
committerShivanand Tendulker <stendulker@gmail.com>2019-08-14 01:02:34 -0400
commitb1986361a8a8badf837d12227a32ff6245a1ec21 (patch)
treee130becf91203869b84aacd13527d00546f39c7c /ironic/tests/unit/drivers/test_base.py
parentce163996ce2969c98d109f9d5704f93be7234f43 (diff)
downloadironic-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/test_base.py')
-rw-r--r--ironic/tests/unit/drivers/test_base.py66
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)