tree c5b43cc7ddda625d77da298a3c56f1a859cf4893
parent d95efa9be25ab6a6b6daaf9971877978713f2ea0
author ghanshyam <ghanshyam.mann@nectechnologies.in> 1439893145 +0900
committer ghanshyam <ghanshyam.mann@nectechnologies.in> 1440556196 +0900

Return complete response from compute images_client

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

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

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