From 54825ab978c07cfb5d75a87a394d9387f98896c4 Mon Sep 17 00:00:00 2001 From: Kyrylo Romanenko Date: Wed, 5 Jul 2017 12:52:49 +0300 Subject: [PATCH] Add test for driver raid property list Related-Bug: #1619052 Change-Id: I61e752c91e9a4a2817c12c55c272bd02e67a0c90 --- ironicclient/tests/functional/base.py | 6 ++++++ ironicclient/tests/functional/osc/v1/base.py | 13 +++++++++++++ .../osc/v1/test_baremetal_driver_basic.py | 17 +++++++++++++++++ 3 files changed, 36 insertions(+) diff --git a/ironicclient/tests/functional/base.py b/ironicclient/tests/functional/base.py index c62fcd101..4b2ee703b 100644 --- a/ironicclient/tests/functional/base.py +++ b/ironicclient/tests/functional/base.py @@ -29,6 +29,12 @@ class FunctionalTestBase(base.ClientTestBase): def setUp(self): super(FunctionalTestBase, self).setUp() + if not self.auth_ref.project_scoped: + raise Exception("Could not run functional tests, which are " + "run based on the scope provided for " + "authentication. Please provide a project " + "scope information.") + self.client = self._get_clients() # NOTE(kromanenko) set ironic api version for portgroups self.pg_api_ver = '--ironic-api-version 1.25' diff --git a/ironicclient/tests/functional/osc/v1/base.py b/ironicclient/tests/functional/osc/v1/base.py index 984c9ebe6..51451a941 100644 --- a/ironicclient/tests/functional/osc/v1/base.py +++ b/ironicclient/tests/functional/osc/v1/base.py @@ -336,6 +336,19 @@ class TestCase(base.FunctionalTestBase): .format(opts, params)) return json.loads(output) + def driver_raid_property_list(self, driver_name, fields=None, params=''): + """List a driver's RAID logical disk properties. + + :param String driver_name: Name of the driver + :param List fields: List of fields to show + :param List params: Additional kwargs + :return: list of JSON driver RAID properties objects + """ + opts = self.get_opts(fields=fields) + output = self.openstack('baremetal driver raid property list {} {} {}' + .format(opts, driver_name, params)) + return json.loads(output) + def conductor_show(self, hostname, fields=None, params=''): """Show specified baremetal conductors. diff --git a/ironicclient/tests/functional/osc/v1/test_baremetal_driver_basic.py b/ironicclient/tests/functional/osc/v1/test_baremetal_driver_basic.py index 051088c76..fafedd251 100644 --- a/ironicclient/tests/functional/osc/v1/test_baremetal_driver_basic.py +++ b/ironicclient/tests/functional/osc/v1/test_baremetal_driver_basic.py @@ -38,3 +38,20 @@ class BaremetalDriverTests(base.TestCase): driver['Supported driver(s)'] for driver in self.driver_list() ] self.assertIn(self.driver_name, drivers) + + def test_driver_raid_property_list(self): + """Test baremetal driver raid property list command. + + Test steps: + 1) Get list of fake driver raid properties. + 2) Check contents of driver raid properties list. + """ + props = ['controller', 'disk_type', 'interface_type', + 'is_root_volume', 'number_of_physical_disks', + 'physical_disks', 'raid_level', 'share_physical_disks', + 'size_gb', 'volume_name'] + raid_props = self.driver_raid_property_list( + self.driver_name, + params='--os-baremetal-api-version 1.12') + for prop in props: + self.assertIn(prop, [i['Property'] for i in raid_props])