tree 7d626f35ab90844535cb973ebb0a16d60308800b
parent 19973bec187150ad9078ef049c5f5cd7d825f289
author ghanshyam <ghanshyam.mann@nectechnologies.in> 1439881410 +0900
committer Ghanshyam Mann <ghanshyam.mann@nectechnologies.in> 1440396745 +0000

Return complete response from flavors_client part-2

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

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 flavor-access/extra-specs methods of compute flavors_client
to return complete Response body.

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

Change-Id: Id153ba7b5ff838532fd7bf0e2b72815141c2e250
