Jump to: navigation, search

API Special Interest Group/Current Design/Actions

< API Special Interest Group‎ | Current Design
Revision as of 15:40, 14 June 2018 by EdLeafe (talk | contribs) (EdLeafe moved page API Working Group/Current Design/Actions to API Special Interest Group/Current Design/Actions: +The group changed its name and focus)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Analysis

The most consistent thing is that all actions use POST.

Nova and Trove use /action while Heat uses /actions

Parameterless actions in Nova are very inconsistent on how no parameters are represented.

There is one case where Server actions (os-instance-actions) have actions as an actual resource.

Current Design

Nova

Server actions

Extensions

POST /v2/​{tenant_id}​/servers/​{server_id}​/action
{
    "some_action": {
        "param1": "value1",
        "param2": "value2"
    }
}

or

{
    "some_action": null
}

or

{
    "some_action": {}
}

or

{
    "some_action": "None"
}

Server actions (os-instance-actions)

GET /v2/​{tenant_id}​/servers/​{server_id}​/os-instance-actions
GET /v2/​{tenant_id}​/servers/​{server_id}​/os-instance-actions/​{action_id}​

Trove

Database instance actions (action)

POST /v1.0/​{accountId}​/instances/​{instanceId}​/action
{
    "some_action": {
        "param1": "value1",
        "param2": "value2"
    }
}

or

{
    "some_action": {}
}

Heat

Stack actions

POST /v1/​{tenant_id}​/stacks/​{stack_name}​/​{stack_id}​/actions
{
    "some_action": null
}