summaryrefslogtreecommitdiff
path: root/openstackclient/tests/functional
diff options
context:
space:
mode:
authorDiwei Zhu <zhu.diw@northeastern.edu>2021-11-26 14:11:02 +0000
committerDiwei Zhu <zhu.diw@northeastern.edu>2021-11-26 14:11:02 +0000
commit28cd5763de8706fb997bdd53deaf94aca0de5c52 (patch)
treed764221b75431ffca45481aaffaa26351689276f /openstackclient/tests/functional
parent4b3cdaf8b1682a978823a5776fed6bddbe23bcc6 (diff)
downloadpython-openstackclient-28cd5763de8706fb997bdd53deaf94aca0de5c52.tar.gz
Add functional test for server add/remove volume.
Change-Id: I86a76f32790cafcff1d94364fb72f8890a8cb025
Diffstat (limited to 'openstackclient/tests/functional')
-rw-r--r--openstackclient/tests/functional/compute/v2/test_server.py59
1 files changed, 59 insertions, 0 deletions
diff --git a/openstackclient/tests/functional/compute/v2/test_server.py b/openstackclient/tests/functional/compute/v2/test_server.py
index 59b1fad5..0d07950e 100644
--- a/openstackclient/tests/functional/compute/v2/test_server.py
+++ b/openstackclient/tests/functional/compute/v2/test_server.py
@@ -1119,3 +1119,62 @@ class ServerTests(common.ComputeTestCase):
self.openstack('server delete ' + name)
self.openstack('port delete ' + port_name)
+
+ def test_server_add_remove_volume(self):
+ volume_wait_for = volume_common.BaseVolumeTests.wait_for_status
+
+ name = uuid.uuid4().hex
+ cmd_output = json.loads(self.openstack(
+ 'server create -f json ' +
+ '--network private ' +
+ '--flavor ' + self.flavor_name + ' ' +
+ '--image ' + self.image_name + ' ' +
+ '--wait ' +
+ name
+ ))
+
+ self.assertIsNotNone(cmd_output['id'])
+ self.assertEqual(name, cmd_output['name'])
+ self.addCleanup(self.openstack, 'server delete --wait ' + name)
+ server_id = cmd_output['id']
+
+ volume_name = uuid.uuid4().hex
+ cmd_output = json.loads(self.openstack(
+ 'volume create -f json ' +
+ '--size 1 ' +
+ volume_name
+ ))
+
+ self.assertIsNotNone(cmd_output['id'])
+ self.assertEqual(volume_name, cmd_output['name'])
+ volume_wait_for('volume', volume_name, 'available')
+ self.addCleanup(self.openstack, 'volume delete ' + volume_name)
+ volume_id = cmd_output['id']
+
+ cmd_output = json.loads(self.openstack(
+ 'server add volume -f json ' +
+ name + ' ' +
+ volume_name + ' ' +
+ '--tag bar'
+ ))
+
+ self.assertIsNotNone(cmd_output['ID'])
+ self.assertEqual(server_id, cmd_output['Server ID'])
+ self.assertEqual(volume_id, cmd_output['Volume ID'])
+ volume_attachment_id = cmd_output['ID']
+
+ cmd_output = json.loads(self.openstack(
+ 'server volume list -f json ' +
+ name
+ ))
+
+ self.assertEqual(volume_attachment_id, cmd_output[0]['ID'])
+ self.assertEqual(server_id, cmd_output[0]['Server ID'])
+ self.assertEqual(volume_id, cmd_output[0]['Volume ID'])
+
+ volume_wait_for('volume', volume_name, 'in-use')
+ self.openstack('server remove volume ' + name + ' ' + volume_name)
+ volume_wait_for('volume', volume_name, 'available')
+
+ raw_output = self.openstack('server volume list ' + name)
+ self.assertEqual('\n', raw_output)