summaryrefslogtreecommitdiff
path: root/ironicclient
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2017-08-06 16:51:02 +0000
committerGerrit Code Review <review@openstack.org>2017-08-06 16:51:02 +0000
commit38fcb64ea5caaf4f64614c4be94354cbe9bf9191 (patch)
treec3da14bc838ed012131db19d9352dd224b8856fd /ironicclient
parenteee6b925d6a3dbcc9b946657e5811ad729a846fc (diff)
parent1375c2ed810a74bb83b195b43c22c808a7c3feb3 (diff)
downloadpython-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.py12
-rw-r--r--ironicclient/tests/functional/osc/v1/test_baremetal_node_basic.py36
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'])