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
This commit is contained in:
ghanshyam 2015-11-24 11:40:19 +09:00
parent a6d6933ebf
commit 2a6da4a5cd
3 changed files with 17 additions and 5 deletions

View File

@ -36,7 +36,6 @@ get_fixed_ip = {
}
}
reserve_fixed_ip = {
'status_code': [202],
'response_body': {'type': 'string'}
reserve_unreserve_fixed_ip = {
'status_code': [202]
}

View File

@ -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)

View File

@ -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)