summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-02-12 21:31:39 +0000
committerGerrit Code Review <review@openstack.org>2016-02-12 21:31:39 +0000
commit6ad0ce42c2791a28125d38b40e7dcddf32dbeed7 (patch)
tree9ed45c87dd071f0ae592abae9b24ef6a51805c9a
parent118f2c6a601944e5b565bcde85f5063ef5f6c526 (diff)
parentc9c3b55333b4f3f88eac7e250f4fcd7d71374ca2 (diff)
downloadtempest-lib-6ad0ce42c2791a28125d38b40e7dcddf32dbeed7.tar.gz
Merge "Add update attached volume function to servers_client"
-rw-r--r--tempest_lib/api_schema/response/compute/v2_1/servers.py4
-rw-r--r--tempest_lib/services/compute/servers_client.py9
-rw-r--r--tempest_lib/tests/services/compute/test_servers_client.py11
3 files changed, 24 insertions, 0 deletions
diff --git a/tempest_lib/api_schema/response/compute/v2_1/servers.py b/tempest_lib/api_schema/response/compute/v2_1/servers.py
index 4c63a34..7db05fb 100644
--- a/tempest_lib/api_schema/response/compute/v2_1/servers.py
+++ b/tempest_lib/api_schema/response/compute/v2_1/servers.py
@@ -547,3 +547,7 @@ server_actions_delete_password = {
server_actions_confirm_resize = copy.deepcopy(
server_actions_delete_password)
+
+update_attached_volume = {
+ 'status_code': [202]
+}
diff --git a/tempest_lib/services/compute/servers_client.py b/tempest_lib/services/compute/servers_client.py
index 5bbcf24..cdb992b 100644
--- a/tempest_lib/services/compute/servers_client.py
+++ b/tempest_lib/services/compute/servers_client.py
@@ -312,6 +312,15 @@ class ServersClient(rest_client.RestClient):
self.validate_response(schema.attach_volume, resp, body)
return rest_client.ResponseBody(resp, body)
+ def update_attached_volume(self, server_id, attachment_id, **kwargs):
+ """Swaps a volume attached to an instance for another volume"""
+ post_body = json.dumps({'volumeAttachment': kwargs})
+ resp, body = self.put('servers/%s/os-volume_attachments/%s' %
+ (server_id, attachment_id),
+ post_body)
+ self.validate_response(schema.update_attached_volume, resp, body)
+ return rest_client.ResponseBody(resp, body)
+
def detach_volume(self, server_id, volume_id): # noqa
"""Detaches a volume from a server instance."""
resp, body = self.delete('servers/%s/os-volume_attachments/%s' %
diff --git a/tempest_lib/tests/services/compute/test_servers_client.py b/tempest_lib/tests/services/compute/test_servers_client.py
index 44cd7ce..d3a4e83 100644
--- a/tempest_lib/tests/services/compute/test_servers_client.py
+++ b/tempest_lib/tests/services/compute/test_servers_client.py
@@ -564,6 +564,17 @@ class TestServersClient(base.BaseComputeServiceTest):
server_id=self.server_id
)
+ def test_update_attached_volume(self):
+ self.check_service_client_function(
+ self.client.update_attached_volume,
+ 'tempest_lib.common.rest_client.RestClient.put',
+ {},
+ status=202,
+ server_id=self.server_id,
+ attachment_id='fake-attachment-id',
+ volumeId='fake-volume-id'
+ )
+
def test_detach_volume_with_str_body(self):
self._test_detach_volume_server()