[openstack-dev] [all][api][tc][perfromance] API for getting only status of resources
Sean Dague
sean at dague.net
Wed Nov 4 14:32:58 UTC 2015
On 11/04/2015 09:00 AM, Jay Pipes wrote:
> On 11/03/2015 05:20 PM, Boris Pavlovic wrote:
>> Hi stackers,
>>
>> Usually such projects like Heat, Tempest, Rally, Scalar, and other tool
>> that works with OpenStack are working with resources (e.g. VM, Volumes,
>> Images, ..) in the next way:
>>
>> >>> resource = api.resouce_do_some_stuff()
>> >>> while api.resource_get(resource["uuid"]) != expected_status
>> >>> sleep(a_bit)
>>
>> For each async operation they are polling and call many times
>> resource_get() which creates significant load on API and DB layers due
>> the nature of this request. (Usually getting full information about
>> resources produces SQL requests that contains multiple JOINs, e,g for
>> nova vm it's 6 joins).
>>
>> What if we add new API method that will just resturn resource status by
>> UUID? Or even just extend get request with the new argument that returns
>> only status?
>
> +1
>
> All APIs should have an HTTP HEAD call on important resources for
> retrieving quick status information for the resource.
>
> In fact, I proposed exactly this in my Compute "vNext" API proposal:
>
> http://docs.oscomputevnext.apiary.io/#reference/server/serversid/head
>
> Swift's API supports HEAD for accounts:
>
> http://developer.openstack.org/api-ref-objectstorage-v1.html#showAccountMeta
>
>
> containers:
>
> http://developer.openstack.org/api-ref-objectstorage-v1.html#showContainerMeta
>
>
> and objects:
>
> http://developer.openstack.org/api-ref-objectstorage-v1.html#showObjectMeta
>
> So, yeah, I agree.
> -jay
How would you expect this to work on "servers"? HEAD specifically
forbids returning a body, and, unlike swift, we don't return very much
information in our headers.
-Sean
--
Sean Dague
http://dague.net
More information about the OpenStack-dev
mailing list