Creating a Stack¶
Function¶
This API is used to create a stack. Heat verifies a request body and parses the template. After that, Heat invokes the API of the target component based on resource dependencies to create a resource.
URI¶
POST /v1/{project_id}/stacks
For details about the parameters, see Table 1.
Parameter | Type | Mandatory | Description |
---|---|---|---|
project_id | String | Yes | Specifies the project ID. |
Request Parameter¶
Parameter | In | Type | Mandatory | Description |
---|---|---|---|---|
stack_name | body | String | Yes | Specifies the stack name.
|
template | body | Json | Yes | Specifies the template. The template uses the YAML syntax for content orchestration. |
template_url | body | String | No | Specifies the template URL. You cannot select a template using the URL temporarily. |
environment | body | Json | No | Specifies the environment information for creating a stack. |
files | body | Json | No | Specifies the files referenced in the environment. |
parameters | body | Json | No | Specifies parameter information of the stack. |
timeout_mins | body | Int | No | Specifies the timeout duration. |
disable_rollback | body | Boolean | No | Specifies whether to perform a rollback when stack creation fails. |
environment structure information
Parameter | In | Type | Mandatory | Description |
---|---|---|---|---|
parameters | body | Json | No | Specifies the parameters and their values. |
parameters_defaults | body | Json | No | Specifies the parameters and their default values. |
resource_registry | body | Json | No | Specifies the custom resource information. |
Response Parameter¶
Parameter | In | Type | Description |
---|---|---|---|
stack | body | Dict | Specifies the stack object. |
stack structure information
Parameter | In | Type | Description |
---|---|---|---|
id | body | String | Specifies the stack UUID. |
links | body | List <dict> | Specifies the stack URL list. |
Request Example¶
POST /v1/95d02433133a4c0a87ba6967474a2ad3/stacks
{
"files": {},
"disable_rollback": true,
"parameters": {
"flavor": "m1.heat"
},
"environment": {
"parameters": {
"flavor": "m1.heat"
},
"parameter_defaults": {
"flavor": "m1.heat"
},
"resource_registry": {
"OS::Networking::FloatingIP": "OS::Nova::FloatingIP"
}
},
"stack_name": "teststack",
"template": {
"heat_template_version": "2013-05-23",
"description": "Simple template to test heat commands",
"parameters": {
"flavor": {
"default": "m1.tiny",
"type": "string"
}
},
"resources": {
"hello_world": {
"type": "OS::Nova::Server",
"properties": {
"key_name": "heat_key",
"flavor": {
"get_param": "flavor"
},
"image": "40be8d1a-3eb9-40de-8abd-43237517384f",
"user_data": "#!/bin/bash -xv\necho \"hello world\" > /root/hello-world.txt\n"
}
}
}
},
"timeout_mins": 60
}
Response Example¶
{
"stack": {
"id": "c89c4bb3-96cb-4a55-aafa-076a7939a306",
"links": [
{
"href": "http://x.x.x.x:8004/v1/95d02433133a4c0a87ba6967474a2ad3/stacks/HeatStack/c89c4bb3-96cb-4a55-aafa-076a7939a306",
"rel": "self"
}
]
}
}
Return Code¶
Return Code | Type | Description |
---|---|---|
201 | Created | The resource has been created and is ready for use. |
Return Code | Type | Description |
---|---|---|
400 | Bad Request | The server failed to process the request. |
401 | Unauthorized | Authorization failed. |
409 | Conflict | The request could not be processed due to a conflict. |