[openstack-dev] [all][api][tc][perfromance] API for getting only status of resources
Jay Pipes
jaypipes at gmail.com
Wed Nov 4 14:00:23 UTC 2015
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
More information about the OpenStack-dev
mailing list