summaryrefslogtreecommitdiff
path: root/openstackclient/tests/functional/volume/v3/test_qos.py
diff options
context:
space:
mode:
authorDean Troyer <dtroyer@gmail.com>2019-11-18 14:44:49 -0600
committerDean Troyer <dtroyer@gmail.com>2019-11-18 14:47:56 -0600
commit1c0160c8aa8482958df54e0814023c5eeed0611e (patch)
tree11fad5ea9b383cb970821611b695c8dfcf196f50 /openstackclient/tests/functional/volume/v3/test_qos.py
parentc6a171f0106714bc42045bcfdc308fe99ba6a275 (diff)
downloadpython-openstackclient-1c0160c8aa8482958df54e0814023c5eeed0611e.tar.gz
Create Volume v3 functional tests
Until now-ish Volume v3 has been a pass-through to v2. In order to prepare to make the Volume v3 commands stand-alone copy the v2 functional tests to v3. This is the first of a series of reviews to completely separate Volume v2 and v3 commands. Once these are split we can begin to implement v3 microversion support and/or start using the OpenStack SDK as the REST library. Change-Id: Iefd78d8ef6bb851d7360596337a88ee8f8476767 Signed-off-by: Dean Troyer <dtroyer@gmail.com>
Diffstat (limited to 'openstackclient/tests/functional/volume/v3/test_qos.py')
-rw-r--r--openstackclient/tests/functional/volume/v3/test_qos.py204
1 files changed, 202 insertions, 2 deletions
diff --git a/openstackclient/tests/functional/volume/v3/test_qos.py b/openstackclient/tests/functional/volume/v3/test_qos.py
index a6290fc5..fdfa6827 100644
--- a/openstackclient/tests/functional/volume/v3/test_qos.py
+++ b/openstackclient/tests/functional/volume/v3/test_qos.py
@@ -10,9 +10,209 @@
# License for the specific language governing permissions and limitations
# under the License.
-from openstackclient.tests.functional.volume.v2 import test_qos as v2
+import json
+import uuid
+
from openstackclient.tests.functional.volume.v3 import common
-class QosTests(common.BaseVolumeTests, v2.QosTests):
+class QosTests(common.BaseVolumeTests):
"""Functional tests for volume qos. """
+
+ def test_volume_qos_create_delete_list(self):
+ """Test create, list, delete multiple"""
+ name1 = uuid.uuid4().hex
+ cmd_output = json.loads(self.openstack(
+ 'volume qos create -f json ' +
+ name1
+ ))
+ self.assertEqual(
+ name1,
+ cmd_output['name']
+ )
+
+ name2 = uuid.uuid4().hex
+ cmd_output = json.loads(self.openstack(
+ 'volume qos create -f json ' +
+ name2
+ ))
+ self.assertEqual(
+ name2,
+ cmd_output['name']
+ )
+
+ # Test list
+ cmd_output = json.loads(self.openstack(
+ 'volume qos list -f json'
+ ))
+ names = [x["Name"] for x in cmd_output]
+ self.assertIn(name1, names)
+ self.assertIn(name2, names)
+
+ # Test delete multiple
+ del_output = self.openstack('volume qos delete ' + name1 + ' ' + name2)
+ self.assertOutput('', del_output)
+
+ def test_volume_qos_set_show_unset(self):
+ """Tests create volume qos, set, unset, show, delete"""
+
+ name = uuid.uuid4().hex
+ cmd_output = json.loads(self.openstack(
+ 'volume qos create -f json ' +
+ '--consumer front-end '
+ '--property Alpha=a ' +
+ name
+ ))
+ self.addCleanup(self.openstack, 'volume qos delete ' + name)
+ self.assertEqual(
+ name,
+ cmd_output['name']
+ )
+
+ self.assertEqual(
+ "front-end",
+ cmd_output['consumer']
+ )
+ self.assertEqual(
+ {'Alpha': 'a'},
+ cmd_output['properties']
+ )
+
+ # Test volume qos set
+ raw_output = self.openstack(
+ 'volume qos set ' +
+ '--property Alpha=c ' +
+ '--property Beta=b ' +
+ name,
+ )
+ self.assertOutput('', raw_output)
+
+ # Test volume qos show
+ cmd_output = json.loads(self.openstack(
+ 'volume qos show -f json ' +
+ name
+ ))
+ self.assertEqual(
+ name,
+ cmd_output['name']
+ )
+ self.assertEqual(
+ {'Alpha': 'c', 'Beta': 'b'},
+ cmd_output['properties']
+ )
+
+ # Test volume qos unset
+ raw_output = self.openstack(
+ 'volume qos unset ' +
+ '--property Alpha ' +
+ name,
+ )
+ self.assertOutput('', raw_output)
+
+ cmd_output = json.loads(self.openstack(
+ 'volume qos show -f json ' +
+ name
+ ))
+ self.assertEqual(
+ name,
+ cmd_output['name']
+ )
+ self.assertEqual(
+ {'Beta': 'b'},
+ cmd_output['properties']
+ )
+
+ def test_volume_qos_asso_disasso(self):
+ """Tests associate and disassociate qos with volume type"""
+ vol_type1 = uuid.uuid4().hex
+ cmd_output = json.loads(self.openstack(
+ 'volume type create -f json ' +
+ vol_type1
+ ))
+ self.assertEqual(
+ vol_type1,
+ cmd_output['name']
+ )
+ self.addCleanup(self.openstack, 'volume type delete ' + vol_type1)
+
+ vol_type2 = uuid.uuid4().hex
+ cmd_output = json.loads(self.openstack(
+ 'volume type create -f json ' +
+ vol_type2
+ ))
+ self.assertEqual(
+ vol_type2,
+ cmd_output['name']
+ )
+ self.addCleanup(self.openstack, 'volume type delete ' + vol_type2)
+
+ name = uuid.uuid4().hex
+ cmd_output = json.loads(self.openstack(
+ 'volume qos create -f json ' +
+ name
+ ))
+ self.assertEqual(
+ name,
+ cmd_output['name']
+ )
+ self.addCleanup(self.openstack, 'volume qos delete ' + name)
+
+ # Test associate
+ raw_output = self.openstack(
+ 'volume qos associate ' +
+ name + ' ' + vol_type1
+ )
+ self.assertOutput('', raw_output)
+ raw_output = self.openstack(
+ 'volume qos associate ' +
+ name + ' ' + vol_type2
+ )
+ self.assertOutput('', raw_output)
+
+ cmd_output = json.loads(self.openstack(
+ 'volume qos show -f json ' +
+ name
+ ))
+ types = cmd_output["associations"]
+ self.assertIn(vol_type1, types)
+ self.assertIn(vol_type2, types)
+
+ # Test disassociate
+ raw_output = self.openstack(
+ 'volume qos disassociate ' +
+ '--volume-type ' + vol_type1 +
+ ' ' + name
+ )
+ self.assertOutput('', raw_output)
+ cmd_output = json.loads(self.openstack(
+ 'volume qos show -f json ' +
+ name
+ ))
+ types = cmd_output["associations"]
+ self.assertNotIn(vol_type1, types)
+ self.assertIn(vol_type2, types)
+
+ # Test disassociate --all
+ raw_output = self.openstack(
+ 'volume qos associate ' +
+ name + ' ' + vol_type1
+ )
+ self.assertOutput('', raw_output)
+ cmd_output = json.loads(self.openstack(
+ 'volume qos show -f json ' +
+ name
+ ))
+ types = cmd_output["associations"]
+ self.assertIn(vol_type1, types)
+ self.assertIn(vol_type2, types)
+
+ raw_output = self.openstack(
+ 'volume qos disassociate ' +
+ '--all ' + name
+ )
+ self.assertOutput('', raw_output)
+ cmd_output = json.loads(self.openstack(
+ 'volume qos show -f json ' +
+ name
+ ))
+ self.assertNotIn("associations", cmd_output.keys())