Document murano actions
* API spec was updated * New content to the dev guide was added Change-Id: I8794e56259bd9b1290987f2f0a8e63d0c9775c3f
This commit is contained in:
parent
64ebdc11db
commit
815d696081
@ -15,3 +15,4 @@ YAQL languages. The sections below describe these languages.
|
|||||||
.. include:: murano_pl/yaql.rst
|
.. include:: murano_pl/yaql.rst
|
||||||
.. include:: murano_pl/class_templ.rst
|
.. include:: murano_pl/class_templ.rst
|
||||||
.. include:: murano_pl/core_classes.rst
|
.. include:: murano_pl/core_classes.rst
|
||||||
|
.. include:: murano_pl/actions.rst
|
77
doc/source/draft/appdev-guide/murano_pl/actions.rst
Normal file
77
doc/source/draft/appdev-guide/murano_pl/actions.rst
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
.. _actions:
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 2
|
||||||
|
|
||||||
|
==============
|
||||||
|
Murano actions
|
||||||
|
==============
|
||||||
|
|
||||||
|
Murano action is a type of MuranoPL method. The differences from a regular
|
||||||
|
MuranoPL method are:
|
||||||
|
|
||||||
|
* Action is executed on deployed objects.
|
||||||
|
* Action execution is initiated by API request, you do not have to call
|
||||||
|
the method manually.
|
||||||
|
|
||||||
|
So murano action allows performing any operations on objects:
|
||||||
|
|
||||||
|
* Getting information from the VM, like a config that is generated during the
|
||||||
|
deployment
|
||||||
|
* VM rebooting
|
||||||
|
* Scaling
|
||||||
|
|
||||||
|
A list of available actions is formed during the environment deployment.
|
||||||
|
Right after the deployment is finished, you can call action asynchronously.
|
||||||
|
Murano engine generates a task for every action. Therefore, the action status
|
||||||
|
can be tracked.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
Actions may be called against any MuranoPL object, including ``Environment``,
|
||||||
|
``Application``, and any other objects.
|
||||||
|
|
||||||
|
To mark a method as an action, use ``Usage: Action``.
|
||||||
|
|
||||||
|
The following example shows an action that returns an archive with a
|
||||||
|
configuration file:
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
exportConfig:
|
||||||
|
Usage: Action
|
||||||
|
Body:
|
||||||
|
- $._environment.reporter.report($this, 'Action exportConfig called')
|
||||||
|
- $resources: new(sys:Resources)
|
||||||
|
- $template: $resources.yaml('ExportConfig.template')
|
||||||
|
- $result: $.masterNode.instance.agent.call($template, $resources)
|
||||||
|
- $._environment.reporter.report($this, 'Got archive from Kubernetes')
|
||||||
|
- Return: new(std:File, base64Content => $result.content,
|
||||||
|
filename => 'application.tar.gz')
|
||||||
|
|
||||||
|
List of available actions can be found with environment details or application
|
||||||
|
details API calls. It's located in object model special data.
|
||||||
|
Take a look at the following example:
|
||||||
|
|
||||||
|
Request:
|
||||||
|
``http://localhost:8082/v1/environments/<id>/services/<id>``
|
||||||
|
|
||||||
|
Response:
|
||||||
|
|
||||||
|
.. code-block:: javascript
|
||||||
|
|
||||||
|
{
|
||||||
|
"name": "SimpleVM",
|
||||||
|
"?": {
|
||||||
|
"_26411a1861294160833743e45d0eaad9": {
|
||||||
|
"name": "SimpleApp"
|
||||||
|
},
|
||||||
|
"type": "io.murano.apps.Simple",
|
||||||
|
"id": "e34c317a-f5ee-4f3d-ad2f-d07421b13d67",
|
||||||
|
"_actions": {
|
||||||
|
"e34c317a-f5ee-4f3d-ad2f-d07421b13d67_exportConfig": {
|
||||||
|
"enabled": true,
|
||||||
|
"name": "exportConfig"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -850,3 +850,84 @@ General Request Statistics
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
Actions API
|
||||||
|
===========
|
||||||
|
|
||||||
|
Murano Actions are simple MuranoPL methods, that can be called on deployed applications.
|
||||||
|
Application contains a list with available actions. Actions may return a result.
|
||||||
|
|
||||||
|
Execute an action
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
Generate task with executing specified action. Input parameters may be provided.
|
||||||
|
|
||||||
|
*Request*
|
||||||
|
|
||||||
|
**Content-Type**
|
||||||
|
application/json
|
||||||
|
|
||||||
|
+----------------+-----------------------------------------------------------+------------------------------------+
|
||||||
|
| Method | URI | Header |
|
||||||
|
+================+===========================================================+====================================+
|
||||||
|
| POST | /environments/<env_id>/actions/<action_id> | |
|
||||||
|
+----------------+-----------------------------------------------------------+------------------------------------+
|
||||||
|
|
||||||
|
**Parameters:**
|
||||||
|
|
||||||
|
* `env_id` - environment ID, required
|
||||||
|
* `actions_id` - action ID to execute, required
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
"{<action_property>: value}"
|
||||||
|
|
||||||
|
or
|
||||||
|
|
||||||
|
"{}" in case action has no properties
|
||||||
|
|
||||||
|
*Response*
|
||||||
|
|
||||||
|
Task ID that executes specified action is returned
|
||||||
|
|
||||||
|
**Content-Type**
|
||||||
|
application/json
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
{
|
||||||
|
"task_id": "620e883070ad40a3af566d465aa156ef"
|
||||||
|
}
|
||||||
|
|
||||||
|
GET action result
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
Request result value after action execution finish. Not all actions have return values.
|
||||||
|
|
||||||
|
|
||||||
|
*Request*
|
||||||
|
|
||||||
|
+----------------+-----------------------------------------------------------+------------------------------------+
|
||||||
|
| Method | URI | Header |
|
||||||
|
+================+===========================================================+====================================+
|
||||||
|
| GET | /environments/<env_id>/actions/<task_id> | |
|
||||||
|
+----------------+-----------------------------------------------------------+------------------------------------+
|
||||||
|
|
||||||
|
**Parameters:**
|
||||||
|
|
||||||
|
* `env_id` - environment ID, required
|
||||||
|
* `task_id` - task ID, generated on desired action execution
|
||||||
|
|
||||||
|
*Response*
|
||||||
|
|
||||||
|
Json, describing action result is returned. Result type and value are provided.
|
||||||
|
|
||||||
|
**Content-Type**
|
||||||
|
application/json
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
{
|
||||||
|
"isException": false,
|
||||||
|
"result": ["item1", "item2"]
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user