tree a112a47295f566f33e72c01daf9698be765c5c9f
parent 86f5893af52b18ad81df4ee2d7c2f54412aa22ee
author ghanshyam <ghanshyam.mann@nectechnologies.in> 1439885035 +0900
committer ghanshyam <ghanshyam.mann@nectechnologies.in> 1439885035 +0900

Return complete response from floating_ips_client

Currently compute floating_ips_client returns Response by removing
top key from Response.
For example-
return service_client.ResponseBody(resp, body['floating_ip'])

As service clients are in direction to move to Tempest-lib, all
service clients should return Response without any truncation.
One good example is Resource pagination links which are lost with current
way of return value. Resource pagination links are present in parallel
(not inside) to top key of Response.

This patch makes compute floating_ips_lient to return complete
Response body.

Implements: blueprint method-return-value-and-move-service-clients-to-lib

Change-Id: Ib11e815a944321589dd618c7696249f0e0eb3938
