tree 2664cbfd78faf0486ac07127324bf86bf182aa70
parent 86f5893af52b18ad81df4ee2d7c2f54412aa22ee
author ghanshyam <ghanshyam.mann@nectechnologies.in> 1438670544 +0900
committer ghanshyam <ghanshyam.mann@nectechnologies.in> 1439883046 +0900

Return complete response from compute certificates_client

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

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 certificates_client to return complete
Response body.

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