diff options
author | Jenkins <jenkins@review.openstack.org> | 2016-02-12 21:31:39 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2016-02-12 21:31:39 +0000 |
commit | 6ad0ce42c2791a28125d38b40e7dcddf32dbeed7 (patch) | |
tree | 9ed45c87dd071f0ae592abae9b24ef6a51805c9a | |
parent | 118f2c6a601944e5b565bcde85f5063ef5f6c526 (diff) | |
parent | c9c3b55333b4f3f88eac7e250f4fcd7d71374ca2 (diff) | |
download | tempest-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.py | 4 | ||||
-rw-r--r-- | tempest_lib/services/compute/servers_client.py | 9 | ||||
-rw-r--r-- | tempest_lib/tests/services/compute/test_servers_client.py | 11 |
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() |