Jump to: navigation, search

API Special Interest Group/Current Design/Actions

< API Special Interest Group‎ | Current Design
Revision as of 22:51, 23 January 2015 by Everett Toews (talk | contribs) (Created page with "= 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...")
(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
}