[openstack-dev] [api] [glance] conclusion needed on functional API
Brian Rosmaita
brian.rosmaita at RACKSPACE.COM
Wed Feb 18 21:19:29 UTC 2015
On 2/15/15, 2:35 PM, "Jay Pipes" <jaypipes at gmail.com> wrote:
>On 02/15/2015 01:13 PM, Brian Rosmaita wrote:
>> On 2/15/15, 10:10 AM, "Jay Pipes" <jaypipes at gmail.com> wrote:
>>
>>> On 02/15/2015 01:31 AM, Brian Rosmaita wrote:
>>>> This is a follow-up to the discussion at the 12 February API-WG
>>>> meeting [1] concerning "functional" API in Glance [2]. We made
>>>> some progress, but need to close this off so the spec can be
>>>> implemented in Kilo.
>>>>
>>>> I believe this is where we left off: 1. The general consensus was
>>>> that POST is the correct verb.
>>>
>>> Yes, POST is correct (though the resource is wrong).
>>>
>>>> 2. Did not agree on what to POST. Three options are in play: (A)
>>>> POST /images/{image_id}?action=deactivate POST
>>>> /images/{image_id}?action=reactivate
>>>>
>>>> (B) POST /images/{image_id}/actions with payload describing the
>>>> action, e.g., { "action": "deactivate" } { "action": "reactivate"
>>>> }
>>>>
>>>> (C) POST /images/{image_id}/actions/deactivate POST
>>>> /images/{image_id}/actions/reactivate
>>>
>>> d) POST /images/{image_id}/tasks with payload: { "action":
>>> "deactivate|activate" }
>>>
>>> An action isn't created. An action is taken. A task is created. A
>>> task contains instructions on what action to take.
>>
>> The Images API v2 already has tasks (schema available at
>> /v2/schemas/tasks ), which are used for long-running asynchronous
>> operations (right now, image import and image export). I think we
>> want to keep those distinct from what we're talking about here.
>>
>> Does something really need to be created for this call? The idea
>> behind the "functional" API was to have a place for things that don't
>> fit neatly into the CRUD-centric paradigm. Option (C) seems like a
>> good fit for this.
>
>Why not just use the existing tasks/ interface, then? :) Seems like a
>perfect fit to me.
The existing tasks/ interface is kind of heavyweight. It provides a
framework for asynchronous operations. It's really not appropriate for
this purpose.
cheers,
brian
More information about the OpenStack-dev
mailing list