diff options
| author | Jenkins <jenkins@review.openstack.org> | 2017-08-06 16:51:02 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2017-08-06 16:51:02 +0000 |
| commit | 38fcb64ea5caaf4f64614c4be94354cbe9bf9191 (patch) | |
| tree | c3da14bc838ed012131db19d9352dd224b8856fd /ironicclient | |
| parent | eee6b925d6a3dbcc9b946657e5811ad729a846fc (diff) | |
| parent | 1375c2ed810a74bb83b195b43c22c808a7c3feb3 (diff) | |
| download | python-ironicclient-38fcb64ea5caaf4f64614c4be94354cbe9bf9191.tar.gz | |
Merge "Add test for set/unset node target_raid_config"
Diffstat (limited to 'ironicclient')
| -rw-r--r-- | ironicclient/tests/functional/osc/v1/base.py | 12 | ||||
| -rw-r--r-- | ironicclient/tests/functional/osc/v1/test_baremetal_node_basic.py | 36 |
2 files changed, 48 insertions, 0 deletions
diff --git a/ironicclient/tests/functional/osc/v1/base.py b/ironicclient/tests/functional/osc/v1/base.py index b2a3ec9..d5f0a50 100644 --- a/ironicclient/tests/functional/osc/v1/base.py +++ b/ironicclient/tests/functional/osc/v1/base.py @@ -39,6 +39,18 @@ class TestCase(base.FunctionalTestBase): def construct_cmd(*parts): return ' '.join(str(x) for x in parts) + def assert_dict_is_subset(self, expected, actual): + """Check if expected keys/values exist in actual response body. + + Check if the expected keys and values are in the actual response body. + + :param expected: dict of key-value pairs that are expected to be in + 'actual' dict. + :param actual: dict of key-value pairs. + """ + for key, value in expected.items(): + self.assertEqual(value, actual[key]) + def node_create(self, driver='fake', name=None, params=''): """Create baremetal node and add cleanup. diff --git a/ironicclient/tests/functional/osc/v1/test_baremetal_node_basic.py b/ironicclient/tests/functional/osc/v1/test_baremetal_node_basic.py index c968f7e..d0729ca 100644 --- a/ironicclient/tests/functional/osc/v1/test_baremetal_node_basic.py +++ b/ironicclient/tests/functional/osc/v1/test_baremetal_node_basic.py @@ -13,6 +13,7 @@ # under the License. import ddt +import json from tempest.lib.common.utils import data_utils from ironicclient.tests.functional.osc.v1 import base @@ -197,3 +198,38 @@ class BaremetalNodeTests(base.TestCase): ['maintenance_reason', 'maintenance']) self.assertIsNone(show_prop['maintenance_reason']) self.assertFalse(show_prop['maintenance']) + + @ddt.data( + (50, '1'), + ('MAX', 'JBOD'), + (300, '6+0') + ) + @ddt.unpack + def test_set_unset_target_raid_config(self, size, raid_level): + """Set and unset node target RAID config data. + + Test steps: + 1) Create baremetal node in setUp. + 2) Set target RAID config data for the node + 3) Check target_raid_config of node equals to expected value. + 4) Unset target_raid_config data. + 5) Check that target_raid_config data is empty. + """ + min_version = '--os-baremetal-api-version 1.12' + argument_json = {"logical_disks": + [{"size_gb": size, "raid_level": raid_level}]} + argument_string = json.dumps(argument_json) + self.openstack("baremetal node set --target-raid-config '{}' {} {}" + .format(argument_string, self.node['uuid'], + min_version)) + + show_prop = self.node_show(self.node['uuid'], ['target_raid_config'], + min_version) + self.assert_dict_is_subset(argument_json, + show_prop['target_raid_config']) + + self.openstack("baremetal node unset --target-raid-config {} {}" + .format(self.node['uuid'], min_version)) + show_prop = self.node_show(self.node['uuid'], ['target_raid_config'], + min_version) + self.assertEqual({}, show_prop['target_raid_config']) |
