From 2a6da4a5cd7be7c0b45e43b89d326a2b5d58573d Mon Sep 17 00:00:00 2001 From: ghanshyam Date: Tue, 24 Nov 2015 11:40:19 +0900 Subject: Fix fixed_ip schema and service client There are two issues in fixed_ip schema and client. 1. Schema expect string in response body- Nova had bug#1356058 for response of reserve/unreserve fixed ip APIs, where plain text ("202 Accepted The request is accepted for processing.") was returned in response body. It is fixed on Nova side - Ifca3081f573407808a2196e71ac1db87180db6ec 2. Return value of reserve_fixed_ip client method- In Fixed ip service client, reserve_fixed_ip method does not return the response body. As per consistency in service client interfaces, this method should return the response value even that is empty body. Those were fixed in Tempest but did not get sync in lib. -I098ee0d1fa3056f8cfb0654e2b8fd3bf75fb3e2c -I2cb1ef8dacd1994576656cfb108dd2eef2fbd988 Change-Id: I27b8d2165188ee069f5d8d22c0426f2c748f80c8 --- tempest_lib/api_schema/response/compute/v2_1/fixed_ips.py | 5 ++--- tempest_lib/services/compute/fixed_ips_client.py | 4 ++-- tempest_lib/tests/services/compute/test_fixedIPs_client.py | 13 +++++++++++++ 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/tempest_lib/api_schema/response/compute/v2_1/fixed_ips.py b/tempest_lib/api_schema/response/compute/v2_1/fixed_ips.py index 580faba..8119b49 100644 --- a/tempest_lib/api_schema/response/compute/v2_1/fixed_ips.py +++ b/tempest_lib/api_schema/response/compute/v2_1/fixed_ips.py @@ -36,7 +36,6 @@ get_fixed_ip = { } } -reserve_fixed_ip = { - 'status_code': [202], - 'response_body': {'type': 'string'} +reserve_unreserve_fixed_ip = { + 'status_code': [202] } diff --git a/tempest_lib/services/compute/fixed_ips_client.py b/tempest_lib/services/compute/fixed_ips_client.py index b2ea25b..3804b8a 100644 --- a/tempest_lib/services/compute/fixed_ips_client.py +++ b/tempest_lib/services/compute/fixed_ips_client.py @@ -32,5 +32,5 @@ class FixedIPsClient(rest_client.RestClient): """This reserves and unreserves fixed ips.""" url = "os-fixed-ips/%s/action" % fixed_ip resp, body = self.post(url, json.dumps(kwargs)) - self.validate_response(schema.reserve_fixed_ip, resp, body) - return rest_client.ResponseBody(resp) + self.validate_response(schema.reserve_unreserve_fixed_ip, resp, body) + return rest_client.ResponseBody(resp, body) diff --git a/tempest_lib/tests/services/compute/test_fixedIPs_client.py b/tempest_lib/tests/services/compute/test_fixedIPs_client.py index 4c98274..efa4e22 100644 --- a/tempest_lib/tests/services/compute/test_fixedIPs_client.py +++ b/tempest_lib/tests/services/compute/test_fixedIPs_client.py @@ -43,3 +43,16 @@ class TestFixedIPsClient(base.BaseComputeServiceTest): def test_show_fixed_ip_with_bytes_body(self): self._test_show_fixed_ip(True) + + def _test_reserve_fixed_ip(self, bytes_body=False): + self.check_service_client_function( + self.fixedIPsClient.reserve_fixed_ip, + 'tempest_lib.common.rest_client.RestClient.post', + {}, bytes_body, + status=202, fixed_ip='Identifier') + + def test_reserve_fixed_ip_with_str_body(self): + self._test_reserve_fixed_ip() + + def test_reserve_fixed_ip_with_bytes_body(self): + self._test_reserve_fixed_ip(True) -- cgit v1.2.1