summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorghanshyam <ghanshyam.mann@nectechnologies.in>2015-11-24 11:40:19 +0900
committerghanshyam <ghanshyam.mann@nectechnologies.in>2015-11-24 11:49:12 +0900
commit2a6da4a5cd7be7c0b45e43b89d326a2b5d58573d (patch)
tree97282a7b9679fc88de6dc4dac2fbe0c01a1aaf4e
parenta6d6933ebf8e523dbe7da2e70bf8ca5aa5d0509c (diff)
downloadtempest-lib-2a6da4a5cd7be7c0b45e43b89d326a2b5d58573d.tar.gz
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
-rw-r--r--tempest_lib/api_schema/response/compute/v2_1/fixed_ips.py5
-rw-r--r--tempest_lib/services/compute/fixed_ips_client.py4
-rw-r--r--tempest_lib/tests/services/compute/test_fixedIPs_client.py13
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)