Orchestration Service API v1

Build info

GET
/v1/{tenant_id}/build_info

Show build information

Shows build information for an Orchestration deployment.

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

401 - 未授权

用户必须在发出请求之前进行身份验证。

请求参数

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

响应参数

名称

入参

类型

描述

X-Openstack-Request-Id

标头

字符串

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

api

body

对象

The orchestration API revsion information.

engine

body

对象

The orchestration engine revsion information.

响应示例

{
    "api": {
        "revision": "{api_build_revision}"
    },
    "engine": {
        "revision": "{engine_build_revision}"
    }
}

General API information

Authenticated calls that target a known URI but that use an HTTP method that the implementation does not support return a 405 Method Not Allowed error code. In addition, the HTTP OPTIONS method is supported for each known URI. In both cases, the Allow response header indicates the HTTP methods that are supported for the resource.

API 版本

GET
/

列出版本

Lists all Orchestration API versions.

响应代码

成功

代码

原因

300 - 多重选择

There are multiple choices for resources. The request has to be more specific to successfully retrieve one of these resources.

Request Parameters

此操作不接受请求体。

响应参数

名称

入参

类型

描述

X-Openstack-Request-Id

标头

字符串

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

versions

body

数组

A list of all orchestration API versions. Each object in the list provides information about a supported API version such as id, status and links, among other fields.

id

body

字符串

版本的一个常用名称。仅供参考,不具有实际语义意义。

status

body

字符串

此 API 版本的状态。它可以是以下之一:

  • CURRENT:这是要使用的 API 的首选版本

  • SUPPORTED:这是 API 的较旧版本,但仍然受支持

  • DEPRECATED:这是 API 的已弃用版本,计划将其删除

links

body

数组

A list of URLs for the stack. Each URL is a JSON object with an href key indicating the URL and a rel key indicating its relationship to the stack in question. There may be multiple links returned. The self relationship identifies the URL of the stack itself.

响应示例

{
    "versions": [
        {
            "status": "CURRENT",
            "id": "v1.0",
            "links": [
                {
                    "href": "http://23.253.228.211:8000/v1/",
                    "rel": "self"
                }
            ]
        }
    ]
}

Stacks

POST
/v1/{tenant_id}/stacks

Create stack

Creates a stack.

响应代码

成功

代码

原因

201 - 已创建

资源已创建并准备好使用。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

409 - Conflict

此操作与此资源的另一个操作冲突。

请求参数

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

disable_rollback (Optional)

body

布尔值

Enables or disables deletion of all stack resources when stack creation fails. Set to true to keep all resources when stack creation fails. Set to false to delete all resources when stack creation fails.

environment (Optional)

body

对象

A JSON environment for the stack.

environment_files (Optional)

body

对象

An ordered list of names for environment files found in the files dict.

files (Optional)

body

对象

Supplies the contents of files referenced in the template or the environment. Stack templates and resource templates can explicitly reference files by using the get_file intrinsic function. In addition, the environment parameter can contain implicit references to files.

The value is a JSON object, where each key is a relative or absolute URI which serves as the name of a file, and the associated value provides the contents of the file. The following code shows the general structure of this parameter.

{ ...
    "files": {
        "fileA.yaml": "Contents of the file",
        "file:///usr/fileB.template": "Contents of the file",
        "http://example.com/fileC.template": "Contents of the file"
    }
...
}

Additionally, some template authors encode their user data in a local file. The Orchestration client examines the template for the get_file intrinsic function and adds an entry to the files map with the path to the file as the name and the file contents as the value. So, a simple example looks like this

{
   "files": {
      "myfile": "#!/bin/bash\necho \"Hello world\" > /root/testfile.txt"
   },
   ...,
   "stack_name": "teststack",
   "template": {
      ...,
      "resources": {
         "my_server": {
            "type": "OS::Nova::Server",
            "properties": {
               ...,
               "user_data": {
                  "get_file": "myfile"
               }
            }
         }
      }
   },
   "timeout_mins": 60
}

Do not use this parameter to provide the content of the template located at the template_url address. Instead, use the template parameter to supply the template content as part of the request.

files_container (Optional)

body

字符串

Name of the container in swift that has child templates and environment files.

parameters (Optional)

body

对象

Supplies arguments for parameters defined in the stack template.

The value is a JSON object, where each key is the name of a parameter defined in the template and the associated value is the argument to use for that parameter when instantiating the template. The following code shows the general structure of this parameter. In the example, a and b would be the names of two parameters defined in the template.

{ ...
    "parameters": {
        "a": "Value",
        "b": "3"
    }
...
}

While the service accepts JSON numbers for parameters with the type number and JSON objects for parameters with the type json, all parameter values are converted to their string representation for storage in the created Stack. Clients are encouraged to send all parameter values using their string representation for consistency between requests and responses from the Orchestration service.

A value must be provided for each template parameter which does not specify a default value. However, this parameter is not allowed to contain JSON properties with names that do not match a parameter defined in the template.

The files parameter maps logical file names to file contents. Both the get_file intrinsic function and provider template functionality use this mapping. When you want to use a provider template, for example, the Orchestration service adds an entry to the files map by using

  • The URL of the provider template as the name.

  • The contents of that file as the value.

Additionally, some template authors encode their user data in a local file. The Orchestration client examines the template for the get_file intrinsic function and adds an entry to the files map with the path to the file as the name and the file contents as the value. So, a simple example looks like this

{
   "files": {
      "myfile": "#!/bin/bash\necho \"Hello world\" > /root/testfile.txt"
   },
   ...,
   "stack_name": "teststack",
   "template": {
      ...,
      "resources": {
         "my_server": {
            "type": "OS::Nova::Server",
            "properties": {
               ...,
               "user_data": {
                  "get_file": "myfile"
               }
            }
         }
      }
   },
   "timeout_mins": 60
}

stack_name

body

字符串

A name for the stack. The value must be unique within a project. The name must start with an ASCII letter and can contain ASCII letters, digits, underscores, periods, and hyphens. Specifically, the name must match the ^[a-zA-Z][a-zA-Z0-9_.-]{0,254}$ regular expression.

When you delete or abandon a stack, its name will not become available for reuse until the deletion completes successfully.

tags (可选)

body

字符串

One or more simple string tags to associate with the stack. To associate multiple tags with a stack, separate the tags with commas. For example, tag1,tag2.

template (Optional)

body

对象

The stack template on which to perform the operation.

This parameter is always provided as a string in the JSON request body. The content of the string is a JSON- or YAML-formatted Orchestration template. For example

"template": {
    "heat_template_version": "2013-05-23",
    ...
}

This parameter is required only when you omit the template_url parameter. If you specify both parameters, this value overrides the template_url parameter value.

template_url (Optional)

body

字符串

A URI to the location containing the stack template on which to perform the operation. See the description of the template parameter for information about the expected template content located at the URI. This parameter is only required when you omit the template parameter. If you specify both parameters, this parameter is ignored.

timeout_mins (Optional)

body

整数

The timeout for stack creation in minutes.

请求示例

{
    "files": {},
    "disable_rollback": true,
    "parameters": {
        "flavor": "m1.heat"
    },
    "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
}

响应参数

名称

入参

类型

描述

location

标头

字符串

For asynchronous resource operations, the location header contains a URI that can be checked to track resource status changes.

X-Openstack-Request-Id

标头

字符串

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

stack

body

对象

The stack object.

id

body

字符串

The UUID of the stack.

links

body

数组

A list of URLs for the stack. Each URL is a JSON object with an href key indicating the URL and a rel key indicating its relationship to the stack in question. There may be multiple links returned. The self relationship identifies the URL of the stack itself.

响应示例

{
    "stack": {
        "id": "3095aefc-09fb-4bc7-b1f0-f21a304e864c",
        "links": [
            {
                "href": "http://192.168.123.200:8004/v1/eb1c63a4f77141548385f113a28f0f52/stacks/teststack/3095aefc-09fb-4bc7-b1f0-f21a304e864c",
                "rel": "self"
            }
        ]
    }
}
POST
/v1/{tenant_id}/stacks/preview

Preview stack

Previews a stack.

Response Codes

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

409 - Conflict

此操作与此资源的另一个操作冲突。

500 - 内部服务器错误

服务内部出现问题。 通常不应发生这种情况。 如果发生这种情况,则表示服务器遇到了一些严重问题。

Request Parameters

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

disable_rollback (Optional)

body

布尔值

Enables or disables deletion of all stack resources when stack creation fails. Set to true to keep all resources when stack creation fails. Set to false to delete all resources when stack creation fails.

environment (Optional)

body

对象

A JSON environment for the stack.

environment_files (Optional)

body

对象

An ordered list of names for environment files found in the files dict.

files_container (Optional)

body

字符串

Name of the container in swift that has child templates and environment files.

files (Optional)

body

对象

Supplies the contents of files referenced in the template or the environment. Stack templates and resource templates can explicitly reference files by using the get_file intrinsic function. In addition, the environment parameter can contain implicit references to files.

The value is a JSON object, where each key is a relative or absolute URI which serves as the name of a file, and the associated value provides the contents of the file. The following code shows the general structure of this parameter.

{ ...
    "files": {
        "fileA.yaml": "Contents of the file",
        "file:///usr/fileB.template": "Contents of the file",
        "http://example.com/fileC.template": "Contents of the file"
    }
...
}

Additionally, some template authors encode their user data in a local file. The Orchestration client examines the template for the get_file intrinsic function and adds an entry to the files map with the path to the file as the name and the file contents as the value. So, a simple example looks like this

{
   "files": {
      "myfile": "#!/bin/bash\necho \"Hello world\" > /root/testfile.txt"
   },
   ...,
   "stack_name": "teststack",
   "template": {
      ...,
      "resources": {
         "my_server": {
            "type": "OS::Nova::Server",
            "properties": {
               ...,
               "user_data": {
                  "get_file": "myfile"
               }
            }
         }
      }
   },
   "timeout_mins": 60
}

Do not use this parameter to provide the content of the template located at the template_url address. Instead, use the template parameter to supply the template content as part of the request.

parameters (Optional)

body

对象

Supplies arguments for parameters defined in the stack template.

The value is a JSON object, where each key is the name of a parameter defined in the template and the associated value is the argument to use for that parameter when instantiating the template. The following code shows the general structure of this parameter. In the example, a and b would be the names of two parameters defined in the template.

{ ...
    "parameters": {
        "a": "Value",
        "b": "3"
    }
...
}

While the service accepts JSON numbers for parameters with the type number and JSON objects for parameters with the type json, all parameter values are converted to their string representation for storage in the created Stack. Clients are encouraged to send all parameter values using their string representation for consistency between requests and responses from the Orchestration service.

A value must be provided for each template parameter which does not specify a default value. However, this parameter is not allowed to contain JSON properties with names that do not match a parameter defined in the template.

The files parameter maps logical file names to file contents. Both the get_file intrinsic function and provider template functionality use this mapping. When you want to use a provider template, for example, the Orchestration service adds an entry to the files map by using

  • The URL of the provider template as the name.

  • The contents of that file as the value.

Additionally, some template authors encode their user data in a local file. The Orchestration client examines the template for the get_file intrinsic function and adds an entry to the files map with the path to the file as the name and the file contents as the value. So, a simple example looks like this

{
   "files": {
      "myfile": "#!/bin/bash\necho \"Hello world\" > /root/testfile.txt"
   },
   ...,
   "stack_name": "teststack",
   "template": {
      ...,
      "resources": {
         "my_server": {
            "type": "OS::Nova::Server",
            "properties": {
               ...,
               "user_data": {
                  "get_file": "myfile"
               }
            }
         }
      }
   },
   "timeout_mins": 60
}

stack_name

body

字符串

A name for the stack. The value must be unique within a project. The name must start with an ASCII letter and can contain ASCII letters, digits, underscores, periods, and hyphens. Specifically, the name must match the ^[a-zA-Z][a-zA-Z0-9_.-]{0,254}$ regular expression.

When you delete or abandon a stack, its name will not become available for reuse until the deletion completes successfully.

tags (可选)

body

字符串

One or more simple string tags to associate with the stack. To associate multiple tags with a stack, separate the tags with commas. For example, tag1,tag2.

template (Optional)

body

对象

The stack template on which to perform the operation.

This parameter is always provided as a string in the JSON request body. The content of the string is a JSON- or YAML-formatted Orchestration template. For example

"template": {
    "heat_template_version": "2013-05-23",
    ...
}

This parameter is required only when you omit the template_url parameter. If you specify both parameters, this value overrides the template_url parameter value.

template_url (Optional)

body

字符串

A URI to the location containing the stack template on which to perform the operation. See the description of the template parameter for information about the expected template content located at the URI. This parameter is only required when you omit the template parameter. If you specify both parameters, this parameter is ignored.

timeout_mins (Optional)

body

整数

The timeout for stack creation in minutes.

请求示例

{
    "files": {},
    "disable_rollback": true,
    "parameters": {
        "flavor": "m1.heat"
    },
    "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
}

响应参数

名称

入参

类型

描述

X-Openstack-Request-Id

标头

字符串

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

capabilities

body

数组

List of stack capabilities for stack.

creation_time

body

字符串

资源被创建的日期和时间。日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2015-08-27T09:49:58-05:00

如果包含 ±hh:mm 值,则为 UTC 的时区偏移量。

deletion_time

body

字符串

The date and time when the resource was (soft-) deleted. The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2015-08-27T09:49:58-05:00

如果包含 ±hh:mm 值,则为 UTC 的时区偏移量。

description

body

字符串

The description of the stack resource.

disable_rollback (Optional)

body

布尔值

Enables or disables deletion of all stack resources when stack creation fails. Set to true to keep all resources when stack creation fails. Set to false to delete all resources when stack creation fails.

id

body

字符串

The UUID of the stack.

links

body

数组

A list of URLs for the stack. Each URL is a JSON object with an href key indicating the URL and a rel key indicating its relationship to the stack in question. There may be multiple links returned. The self relationship identifies the URL of the stack itself.

notification_topics

body

数组

List of notification topics for stack.

outputs

body

数组

A list of stack outputs.

parameters

body

对象

A group of key-value pairs where each key contains either a user-provided parameter name or a built-in parameter name (e.g. OS::project_id).

parent

body

字符串

The stack ID of the parent stack, if this is a nested stack.

resources

body

数组

List of stack resources.

stack

body

对象

The stack object.

stack_name

body

字符串

A name for the stack. The value must be unique within a project. The name must start with an ASCII letter and can contain ASCII letters, digits, underscores, periods, and hyphens. Specifically, the name must match the ^[a-zA-Z][a-zA-Z0-9_.-]{0,254}$ regular expression.

When you delete or abandon a stack, its name will not become available for reuse until the deletion completes successfully.

stack_owner

body

字符串

The owner of the stack.

stack_user_project_id

body

字符串

The project UUID of the stack user.

tags

body

数组

The stack tags.

template_description

body

字符串

The description of the stack template.

timeout_mins

body

整数

The timeout for stack creation in minutes.

updated_time

body

字符串

The date and time when the object was updated. The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2015-08-27T09:49:58-05:00

如果包含 ±hh:mm 值,则为 UTC 的时区偏移量。

响应示例

{
    "stack": {
        "capabilities": [],
        "creation_time": "2015-01-31T15:12:36Z",
        "deletion_time": null,
        "description": "HOT template for Nova Server resource.\n",
        "disable_rollback": true,
        "id": "None",
        "links": [
            {
                "href": "http://192.168.122.102:8004/v1/6e18cc2bdbeb48a5basad2dc499f6804/stacks/test_stack/None",
                "rel": "self"
            }
        ],
        "notification_topics": [],
        "outputs": [],
        "parameters": {
            "OS::project_id": "6e18cc2bdbeb48a5basad2dc499f6804",
            "OS::stack_id": "None",
            "OS::stack_name": "teststack",
            "admin_user": "cloud-user",
            "flavor": "m1.small",
            "image": "F20-cfg",
            "key_name": "heat_key",
            "server_name": "MyServer"
        },
        "parent": null,
        "resources": [
            {
                "attributes": {},
                "description": "",
                "metadata": {},
                "physical_resource_id": "",
                "properties": {
                    "description": "Ping and SSH",
                    "name": "the_sg",
                    "rules": [
                        {
                            "direction": "ingress",
                            "ethertype": "IPv4",
                            "port_range_max": null,
                            "port_range_min": null,
                            "protocol": "icmp",
                            "remote_group_id": null,
                            "remote_ip_prefix": null,
                            "remote_mode": "remote_ip_prefix"
                        },
                        {
                            "direction": "ingress",
                            "ethertype": "IPv4",
                            "port_range_max": 65535,
                            "port_range_min": 1,
                            "protocol": "tcp",
                            "remote_group_id": null,
                            "remote_ip_prefix": null,
                            "remote_mode": "remote_ip_prefix"
                        },
                        {
                            "direction": "ingress",
                            "ethertype": "IPv4",
                            "port_range_max": 65535,
                            "port_range_min": 1,
                            "protocol": "udp",
                            "remote_group_id": null,
                            "remote_ip_prefix": null,
                            "remote_mode": "remote_ip_prefix"
                        }
                    ]
                },
                "required_by": [
                    "server1"
                ],
                "resource_action": "INIT",
                "resource_identity": {
                    "path": "/resources/the_sg_res",
                    "stack_id": "None",
                    "stack_name": "teststack",
                    "tenant": "6e18cc2bdbeb48a5b3cad2dc499f6804"
                },
                "resource_name": "the_sg_res",
                "resource_status": "COMPLETE",
                "resource_status_reason": "",
                "resource_type": "OS::Neutron::SecurityGroup",
                "stack_identity": {
                    "path": "",
                    "stack_id": "None",
                    "stack_name": "teststack",
                    "tenant": "6e18cc2bdbeb48a5b3cad2dc499f6804"
                },
                "stack_name": "teststack",
                "updated_time": "2015-01-31T15:12:36Z"
            },
            {
                "attributes": {
                    "accessIPv4": "",
                    "accessIPv6": "",
                    "addresses": "",
                    "console_urls": "",
                    "first_address": "",
                    "instance_name": "",
                    "name": "MyServer",
                    "networks": "",
                    "show": ""
                },
                "description": "",
                "metadata": {},
                "physical_resource_id": "",
                "properties": {
                    "admin_pass": null,
                    "admin_user": "cloud-user",
                    "availability_zone": null,
                    "block_device_mapping": null,
                    "config_drive": null,
                    "diskConfig": null,
                    "flavor": "m1.small",
                    "flavor_update_policy": "RESIZE",
                    "image": "F20-cfg",
                    "image_update_policy": "REPLACE",
                    "key_name": "heat_key",
                    "metadata": {
                        "ha_stack": "None"
                    },
                    "name": "MyServer",
                    "networks": [
                        {
                            "fixed_ip": null,
                            "network": "private",
                            "port": null,
                            "uuid": null
                        }
                    ],
                    "personality": {},
                    "reservation_id": null,
                    "scheduler_hints": null,
                    "security_groups": [
                        "None"
                    ],
                    "software_config_transport": "POLL_SERVER_CFN",
                    "user_data": "",
                    "user_data_format": "HEAT_CFNTOOLS"
                },
                "required_by": [],
                "resource_action": "INIT",
                "resource_identity": {
                    "path": "/resources/hello_world",
                    "stack_id": "None",
                    "stack_name": "teststack",
                    "tenant": "6e18cc2bdbeb48a3433cad2dc499sdf32234"
                },
                "resource_name": "hello_world",
                "resource_status": "COMPLETE",
                "resource_status_reason": "",
                "resource_type": "OS::Nova::Server",
                "stack_identity": {
                    "path": "",
                    "stack_id": "None",
                    "stack_name": "teststack",
                    "tenant": "6e18cc2bdbeb48a3433cad2dc499sdf32234"
                },
                "stack_name": "teststack",
                "updated_time": "2015-01-31T15:12:36Z"
            }
        ],
        "stack_name": "test_stack",
        "stack_owner": null,
        "tags": null,
        "template_description": "HOT template for Nova Server resource.\n",
        "timeout_mins": null,
        "updated_time": null
    }
}
GET
/v1/{tenant_id}/stacks

List stacks

Lists active stacks.

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

500 - 内部服务器错误

服务内部出现问题。 通常不应发生这种情况。 如果发生这种情况,则表示服务器遇到了一些严重问题。

请求参数

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

id (可选)

查询

字符串

Filters the stack list by a stack ID. Use this filter multiple times to filter by multiple IDs.

status (可选)

查询

字符串

Filters the stack list by a status. Use this filter multiple times to filter by multiple statuses.

name (可选)

查询

字符串

Filters the stack list by a name. Use this filter multiple times to filter by multiple names.

action(可选)

查询

字符串

Filters the stack list by an action. Use this filter multiple times to filter by multiple actions.

tenant (Optional)

查询

字符串

Filters the stack list by a tenant. Use this filter multiple times to filter by multiple tenants.

username (Optional)

查询

字符串

Filters the stack list by a user name. Use this filter multiple times to filter by multiple user names.

owner_id (Optional)

查询

字符串

Filters the stack list by an owner ID, which is the ID of the parent stack of listed stack. Use this filter multiple times to filter by multiple owner IDs.

limit (可选)

查询

整数

请求项目页面大小。返回最多限制值数量的项目。使用 limit 参数进行初始限制请求,并在后续限制请求中使用响应中最后一个已查看项目的 ID 作为 marker 参数值。

marker (可选)

查询

字符串

最后一个已查看项目的 ID。使用 limit 参数进行初始限制请求,并在后续限制请求中使用响应中最后一个已查看项目的 ID 作为 marker 参数值。

sort_keys (Optional)

查询

字符串

Sorts the stack list by stack_name, stack_status, creation_time, or updated_time key.

sort_dir (可选)

查询

字符串

The sort direction of the list. A valid value is asc (ascending) or desc (descending).

show_deleted (Optional)

查询

布尔值

Set to true to include deleted stacks in the list.

show_nested (Optional)

查询

布尔值

Set to true to include nested stacks in the list.

tags (可选)

查询

字符串

Lists stacks that contain one or more simple string tags. To specify multiple tags, separate the tags with commas. For example, tag1,tag2. The boolean AND expression is used to combine multiple tags.

tags_any (Optional)

查询

字符串

Lists stacks that contain one or more simple string tags. To specify multiple tags, separate the tags with commas. For example, tag1,tag2. The boolean OR expression is used to combine multiple tags.

not_tags (Optional)

查询

字符串

Lists stacks that do not contain one or more simple string tags. To specify multiple tags, separate the tags with commas. For example, tag1,tag2. The boolean AND expression is used to combine multiple tags.

not_tags_any (Optional)

查询

字符串

Lists stacks that do not contain one or more simple string tags. To specify multiple tags, separate the tags with commas. For example, tag1,tag2. The boolean OR expression is used to combine multiple tags.

global_tenant (Optional)

查询

布尔值

Set to true to include stacks from all tenants (projects) in the stack list. Specify policy requirements in the Orchestration policy.yaml file.

with_count (可选)

查询

布尔值

Set to true to include a count key in the response. The count key value is the number of stacks that match the query criteria.

响应参数

名称

入参

类型

描述

X-Openstack-Request-Id

标头

字符串

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

stacks

body

数组

A list of stack object.

creation_time

body

字符串

资源被创建的日期和时间。日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2015-08-27T09:49:58-05:00

如果包含 ±hh:mm 值,则为 UTC 的时区偏移量。

deletion_time

body

字符串

The date and time when the resource was (soft-) deleted. The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2015-08-27T09:49:58-05:00

如果包含 ±hh:mm 值,则为 UTC 的时区偏移量。

description

body

字符串

The description of the stack resource.

links

body

数组

A list of URLs for the stack. Each URL is a JSON object with an href key indicating the URL and a rel key indicating its relationship to the stack in question. There may be multiple links returned. The self relationship identifies the URL of the stack itself.

parent

body

字符串

The stack ID of the parent stack, if this is a nested stack.

stack_name

body

字符串

A name for the stack. The value must be unique within a project. The name must start with an ASCII letter and can contain ASCII letters, digits, underscores, periods, and hyphens. Specifically, the name must match the ^[a-zA-Z][a-zA-Z0-9_.-]{0,254}$ regular expression.

When you delete or abandon a stack, its name will not become available for reuse until the deletion completes successfully.

stack_owner

body

字符串

The owner of the stack.

stack_status

body

字符串

The status of the stack.

stack_status_reason

body

字符串

The reason for the current status of the stack.

tags

body

数组

The stack tags.

updated_time

body

字符串

The date and time when the object was updated. The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2015-08-27T09:49:58-05:00

如果包含 ±hh:mm 值,则为 UTC 的时区偏移量。

stack_user_project_id

body

字符串

The project UUID of the stack user.

响应示例

{
    "stacks": [
        {
            "creation_time": "2014-06-03T20:59:46Z",
            "deletion_time": null,
            "description": "sample stack",
            "id": "3095aefc-09fb-4bc7-b1f0-f21a304e864c",
            "links": [
                {
                    "href": "http://192.168.123.200:8004/v1/eb1c63a4f77141548385f113a28f0f52/stacks/simple_stack/3095aefc-09fb-4bc7-b1f0-f21a304e864c",
                    "rel": "self"
                }
            ],
            "parent": null,
            "stack_name": "simple_stack",
            "stack_owner": null,
            "stack_status": "CREATE_COMPLETE",
            "stack_status_reason": "Stack CREATE completed successfully",
            "stack_user_project_id": "71510cbd459a49ac989ca1055de7038b",
            "tags": null,
            "updated_time": null
        }
    ]
}
GET
/v1/{tenant_id}/stacks/{stack_identity}

Find stack

Finds the canonical URL for a stack.

Also works with verbs other than GET, so that you can perform PUT and DELETE operations on a current stack. Set your client to follow redirects. When redirecting, the request method should not change as defined in RFC2626. However, in many clients the default behavior is to change the method to GET when you receive a 302 response code because this behavior is ubiquitous in web browsers.

响应代码

成功

代码

原因

302 - Found

The response is about a redirection hint. The header of the response usually contains a ‘location’ value where requesters can check to track the real location of the resource.

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

500 - 内部服务器错误

服务内部出现问题。 通常不应发生这种情况。 如果发生这种情况,则表示服务器遇到了一些严重问题。

Request Parameters

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

stack_identity

路径

字符串

The UUID or the name of a stack.

响应参数

名称

入参

类型

描述

location

标头

字符串

For asynchronous resource operations, the location header contains a URI that can be checked to track resource status changes.

X-Openstack-Request-Id

标头

字符串

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

code

body

字符串

The response code to a resource find request. e.g. 302 Found.

message

body

字符串

The message in the response to a resource find request.

title

body

字符串

The title of the response to a resource find request. e.g. Found.

响应示例

{
    "code": "302 Found",
    "message": "The resource was found at <a href=\"http://192.168.42.11:8004/v1/369166a68a3a49b78b4e138531556e55/stacks/s1/da778f26-6d25-4634-9531-d438188e48fd\">http://192.168.42.11:8004/v1/369166a68a3a49b78b4e138531556e55/stacks/s1/da778f26-6d25-4634-9531-d438188e48fd</a>;\nyou should be redirected automatically.\n\n",
    "title": "Found"
}
GET
/v1/{tenant_id}/stacks/{stack_name}/{stack_id}

Show stack details

Shows details for a stack.

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

500 - 内部服务器错误

服务内部出现问题。 通常不应发生这种情况。 如果发生这种情况,则表示服务器遇到了一些严重问题。

请求参数

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

stack_name

路径

字符串

The name of a stack.

stack_id

路径

字符串

The UUID of the stack.

resolve_outputs (Optional)

查询

布尔值

A boolean indicating whether the outputs section of a stack should be resolved.

响应参数

名称

入参

类型

描述

X-Openstack-Request-Id

标头

字符串

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

stack

body

对象

The stack object.

capabilities

body

数组

List of stack capabilities for stack.

creation_time

body

字符串

资源被创建的日期和时间。日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2015-08-27T09:49:58-05:00

如果包含 ±hh:mm 值,则为 UTC 的时区偏移量。

deletion_time

body

字符串

The date and time when the resource was (soft-) deleted. The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2015-08-27T09:49:58-05:00

如果包含 ±hh:mm 值,则为 UTC 的时区偏移量。

description

body

字符串

The description of the stack resource.

disable_rollback

body

布尔值

Whether deletion of all stack resources when stack creation fails is enabled.

id

body

字符串

The UUID of the stack.

links

body

数组

A list of URLs for the stack. Each URL is a JSON object with an href key indicating the URL and a rel key indicating its relationship to the stack in question. There may be multiple links returned. The self relationship identifies the URL of the stack itself.

notification_topics

body

数组

List of notification topics for stack.

outputs

body

数组

A list of stack outputs.

parameters

body

对象

A group of key-value pairs where each key contains either a user-provided parameter name or a built-in parameter name (e.g. OS::project_id).

parent

body

字符串

The stack ID of the parent stack, if this is a nested stack.

stack_name

body

字符串

A name for the stack. The value must be unique within a project. The name must start with an ASCII letter and can contain ASCII letters, digits, underscores, periods, and hyphens. Specifically, the name must match the ^[a-zA-Z][a-zA-Z0-9_.-]{0,254}$ regular expression.

When you delete or abandon a stack, its name will not become available for reuse until the deletion completes successfully.

stack_owner

body

字符串

The owner of the stack.

stack_status

body

字符串

The status of the stack.

stack_status_reason

body

字符串

The reason for the current status of the stack.

stack_user_project_id

body

字符串

The project UUID of the stack user.

tags

body

数组

The stack tags.

template_description

body

字符串

The description of the stack template.

timeout_mins

body

整数

The timeout for stack creation in minutes.

updated_time

body

字符串

The date and time when the object was updated. The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2015-08-27T09:49:58-05:00

如果包含 ±hh:mm 值,则为 UTC 的时区偏移量。

响应示例

{
    "stack": {
        "capabilities": [],
        "creation_time": "2014-06-03T20:59:46Z",
        "deletion_time": null,
        "description": "sample stack",
        "disable_rollback": true,
        "id": "3095aefc-09fb-4bc7-b1f0-f21a304e864c",
        "links": [
            {
                "href": "http://192.168.123.200:8004/v1/eb1c63a4f77141548385f113a28f0f52/stacks/simple_stack/3095aefc-09fb-4bc7-b1f0-f21a304e864c",
                "rel": "self"
            }
        ],
        "notification_topics": [],
        "outputs": [],
        "parameters": {
            "OS::project_id": "3ab5b02f-a01f-4f95-afa1-e254afc4a435",
            "OS::stack_id": "3095aefc-09fb-4bc7-b1f0-f21a304e864c",
            "OS::stack_name": "simple_stack"
        },
        "parent": null,
        "stack_name": "simple_stack",
        "stack_owner": "simple_username",
        "stack_status": "CREATE_COMPLETE",
        "stack_status_reason": "Stack CREATE completed successfully",
        "stack_user_project_id": "65728b74-cfe7-4f17-9c15-11d4f686e591",
        "tags": null,
        "template_description": "sample stack",
        "timeout_mins": null,
        "updated_time": null
    }
}
PUT
/v1/{tenant_id}/stacks/{stack_name}/{stack_id}

Update stack

Updates a stack.

Response Codes

成功

代码

原因

202 - Accepted

请求已被接受处理,但处理尚未完成。响应中包含一个“location”头部,其中包含一个链接以检查请求的进度。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

500 - 内部服务器错误

服务内部出现问题。 通常不应发生这种情况。 如果发生这种情况,则表示服务器遇到了一些严重问题。

Request Parameters

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

stack_name

路径

字符串

The name of a stack.

stack_id

路径

字符串

The UUID of the stack.

clear_parameters (Optional)

body

数组

A list of parameters, if specified, to be removed from the set of parameters of the current stack. The default values in the template will be used.

disable_rollback (Optional)

body

布尔值

Enables or disables deletion of all stack resources when stack creation fails. Set to true to keep all resources when stack creation fails. Set to false to delete all resources when stack creation fails.

environment (Optional)

body

对象

A JSON environment for the stack.

environment_files (Optional)

body

对象

An ordered list of names for environment files found in the files dict.

files_container (Optional)

body

字符串

Name of the container in swift that has child templates and environment files.

existing (Optional)

body

布尔值

A boolean specifying whether the service is about to reuse the existing stack template, parameters and environment. If template parameter is not provided, the existing template is used. If template_files is not provided, the existing environment is used. Parameters specified in the parameters key will patch over the existing values in the current stack. Parameters omitted will keep the existing values.

files (Optional)

body

对象

Supplies the contents of files referenced in the template or the environment. Stack templates and resource templates can explicitly reference files by using the get_file intrinsic function. In addition, the environment parameter can contain implicit references to files.

The value is a JSON object, where each key is a relative or absolute URI which serves as the name of a file, and the associated value provides the contents of the file. The following code shows the general structure of this parameter.

{ ...
    "files": {
        "fileA.yaml": "Contents of the file",
        "file:///usr/fileB.template": "Contents of the file",
        "http://example.com/fileC.template": "Contents of the file"
    }
...
}

Additionally, some template authors encode their user data in a local file. The Orchestration client examines the template for the get_file intrinsic function and adds an entry to the files map with the path to the file as the name and the file contents as the value. So, a simple example looks like this

{
   "files": {
      "myfile": "#!/bin/bash\necho \"Hello world\" > /root/testfile.txt"
   },
   ...,
   "stack_name": "teststack",
   "template": {
      ...,
      "resources": {
         "my_server": {
            "type": "OS::Nova::Server",
            "properties": {
               ...,
               "user_data": {
                  "get_file": "myfile"
               }
            }
         }
      }
   },
   "timeout_mins": 60
}

Do not use this parameter to provide the content of the template located at the template_url address. Instead, use the template parameter to supply the template content as part of the request.

parameters (Optional)

body

对象

Supplies arguments for parameters defined in the stack template.

The value is a JSON object, where each key is the name of a parameter defined in the template and the associated value is the argument to use for that parameter when instantiating the template. The following code shows the general structure of this parameter. In the example, a and b would be the names of two parameters defined in the template.

{ ...
    "parameters": {
        "a": "Value",
        "b": "3"
    }
...
}

While the service accepts JSON numbers for parameters with the type number and JSON objects for parameters with the type json, all parameter values are converted to their string representation for storage in the created Stack. Clients are encouraged to send all parameter values using their string representation for consistency between requests and responses from the Orchestration service.

A value must be provided for each template parameter which does not specify a default value. However, this parameter is not allowed to contain JSON properties with names that do not match a parameter defined in the template.

The files parameter maps logical file names to file contents. Both the get_file intrinsic function and provider template functionality use this mapping. When you want to use a provider template, for example, the Orchestration service adds an entry to the files map by using

  • The URL of the provider template as the name.

  • The contents of that file as the value.

Additionally, some template authors encode their user data in a local file. The Orchestration client examines the template for the get_file intrinsic function and adds an entry to the files map with the path to the file as the name and the file contents as the value. So, a simple example looks like this

{
   "files": {
      "myfile": "#!/bin/bash\necho \"Hello world\" > /root/testfile.txt"
   },
   ...,
   "stack_name": "teststack",
   "template": {
      ...,
      "resources": {
         "my_server": {
            "type": "OS::Nova::Server",
            "properties": {
               ...,
               "user_data": {
                  "get_file": "myfile"
               }
            }
         }
      }
   },
   "timeout_mins": 60
}

tags (可选)

body

字符串

One or more simple string tags to associate with the stack. To associate multiple tags with a stack, separate the tags with commas. For example, tag1,tag2.

template (Optional)

body

对象

The stack template on which to perform the operation.

This parameter is always provided as a string in the JSON request body. The content of the string is a JSON- or YAML-formatted Orchestration template. For example

"template": {
    "heat_template_version": "2013-05-23",
    ...
}

This parameter is required only when you omit the template_url parameter. If you specify both parameters, this value overrides the template_url parameter value.

template_url (Optional)

body

字符串

A URI to the location containing the stack template on which to perform the operation. See the description of the template parameter for information about the expected template content located at the URI. This parameter is only required when you omit the template parameter. If you specify both parameters, this parameter is ignored.

timeout_mins (Optional)

body

整数

The timeout for stack creation in minutes.

converge (Optional)

body

布尔值

Set to true to force the stack to observe the reality before update.

请求示例

{
    "template": {
        "heat_template_version": "2013-05-23",
        "description": "Create a simple stack",
        "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"
                }
            }
        }
    },
    "parameters": {
        "flavor": "m1.small"
    }
}

响应参数

名称

入参

类型

描述

X-Openstack-Request-Id

标头

字符串

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

code

body

字符串

The response code to a resource find request. e.g. 302 Found.

message

body

字符串

The message in the response to a resource find request.

title

body

字符串

The title of the response to a resource find request. e.g. Found.

Response Example

{
    "code": "202 Accepted",
    "message": "The request is accepted for processing.<br /><br />\n\n\n",
    "title": "Accepted"
}
PATCH
/v1/{tenant_id}/stacks/{stack_name}/{stack_id}

Update stack (PATCH)

Updates a stack using the PATCH verb. The logic is identical to stack update with a PUT verb except that the existing parameter is always set to True.

Response Codes

成功

代码

原因

202 - Accepted

请求已被接受处理,但处理尚未完成。响应中包含一个“location”头部,其中包含一个链接以检查请求的进度。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

500 - 内部服务器错误

服务内部出现问题。 通常不应发生这种情况。 如果发生这种情况,则表示服务器遇到了一些严重问题。

Request Parameters

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

stack_name

路径

字符串

The name of a stack.

stack_id

路径

字符串

The UUID of the stack.

clear_parameters (Optional)

body

数组

A list of parameters, if specified, to be removed from the set of parameters of the current stack. The default values in the template will be used.

disable_rollback (Optional)

body

布尔值

Enables or disables deletion of all stack resources when stack creation fails. Set to true to keep all resources when stack creation fails. Set to false to delete all resources when stack creation fails.

environment (Optional)

body

对象

A JSON environment for the stack.

environment_files (Optional)

body

对象

An ordered list of names for environment files found in the files dict.

files_container (Optional)

body

字符串

Name of the container in swift that has child templates and environment files.

existing (Optional)

body

布尔值

This parameter can be specified but it will be ignored. When using the PATCH verb to update a stack,the orchestration service will try reuse the existing stack template, parameters and environment. If template parameter is not provided, the existing template is used. If template_files is not provided, the existing environment is used. Parameters specified in the parameters key will patch over the existing values in the current stack. Parameters omitted will keep the existing values.

files (Optional)

body

对象

Supplies the contents of files referenced in the template or the environment. Stack templates and resource templates can explicitly reference files by using the get_file intrinsic function. In addition, the environment parameter can contain implicit references to files.

The value is a JSON object, where each key is a relative or absolute URI which serves as the name of a file, and the associated value provides the contents of the file. The following code shows the general structure of this parameter.

{ ...
    "files": {
        "fileA.yaml": "Contents of the file",
        "file:///usr/fileB.template": "Contents of the file",
        "http://example.com/fileC.template": "Contents of the file"
    }
...
}

Additionally, some template authors encode their user data in a local file. The Orchestration client examines the template for the get_file intrinsic function and adds an entry to the files map with the path to the file as the name and the file contents as the value. So, a simple example looks like this

{
   "files": {
      "myfile": "#!/bin/bash\necho \"Hello world\" > /root/testfile.txt"
   },
   ...,
   "stack_name": "teststack",
   "template": {
      ...,
      "resources": {
         "my_server": {
            "type": "OS::Nova::Server",
            "properties": {
               ...,
               "user_data": {
                  "get_file": "myfile"
               }
            }
         }
      }
   },
   "timeout_mins": 60
}

Do not use this parameter to provide the content of the template located at the template_url address. Instead, use the template parameter to supply the template content as part of the request.

parameters (Optional)

body

对象

Supplies arguments for parameters defined in the stack template.

The value is a JSON object, where each key is the name of a parameter defined in the template and the associated value is the argument to use for that parameter when instantiating the template. The following code shows the general structure of this parameter. In the example, a and b would be the names of two parameters defined in the template.

{ ...
    "parameters": {
        "a": "Value",
        "b": "3"
    }
...
}

While the service accepts JSON numbers for parameters with the type number and JSON objects for parameters with the type json, all parameter values are converted to their string representation for storage in the created Stack. Clients are encouraged to send all parameter values using their string representation for consistency between requests and responses from the Orchestration service.

A value must be provided for each template parameter which does not specify a default value. However, this parameter is not allowed to contain JSON properties with names that do not match a parameter defined in the template.

The files parameter maps logical file names to file contents. Both the get_file intrinsic function and provider template functionality use this mapping. When you want to use a provider template, for example, the Orchestration service adds an entry to the files map by using

  • The URL of the provider template as the name.

  • The contents of that file as the value.

Additionally, some template authors encode their user data in a local file. The Orchestration client examines the template for the get_file intrinsic function and adds an entry to the files map with the path to the file as the name and the file contents as the value. So, a simple example looks like this

{
   "files": {
      "myfile": "#!/bin/bash\necho \"Hello world\" > /root/testfile.txt"
   },
   ...,
   "stack_name": "teststack",
   "template": {
      ...,
      "resources": {
         "my_server": {
            "type": "OS::Nova::Server",
            "properties": {
               ...,
               "user_data": {
                  "get_file": "myfile"
               }
            }
         }
      }
   },
   "timeout_mins": 60
}

tags (可选)

body

字符串

One or more simple string tags to associate with the stack. To associate multiple tags with a stack, separate the tags with commas. For example, tag1,tag2.

template (Optional)

body

对象

The stack template on which to perform the operation.

This parameter is always provided as a string in the JSON request body. The content of the string is a JSON- or YAML-formatted Orchestration template. For example

"template": {
    "heat_template_version": "2013-05-23",
    ...
}

This parameter is required only when you omit the template_url parameter. If you specify both parameters, this value overrides the template_url parameter value.

template_url (Optional)

body

字符串

A URI to the location containing the stack template on which to perform the operation. See the description of the template parameter for information about the expected template content located at the URI. This parameter is only required when you omit the template parameter. If you specify both parameters, this parameter is ignored.

timeout_mins (Optional)

body

整数

The timeout for stack creation in minutes.

converge (Optional)

body

布尔值

Set to true to force the stack to observe the reality before update.

Request Example

{
    "template": {
        "heat_template_version": "2013-05-23",
        "description": "Create a simple stack",
        "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"
                }
            }
        }
    },
    "parameters": {
        "flavor": "m1.small"
    }
}

响应参数

名称

入参

类型

描述

X-Openstack-Request-Id

标头

字符串

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

code

body

字符串

The response code to a resource find request. e.g. 302 Found.

message

body

字符串

The message in the response to a resource find request.

title

body

字符串

The title of the response to a resource find request. e.g. Found.

响应示例

{
    "code": "202 Accepted",
    "message": "The request is accepted for processing.<br /><br />\n\n\n",
    "title": "Accepted"
}
PUT
/v1/{tenant_id}/stacks/{stack_name}/{stack_id}/preview

Preview stack update

Previews an update for a stack.

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

500 - 内部服务器错误

服务内部出现问题。 通常不应发生这种情况。 如果发生这种情况,则表示服务器遇到了一些严重问题。

请求参数

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

stack_name

路径

字符串

The name of a stack.

stack_id

路径

字符串

The UUID of the stack.

clear_parameters (Optional)

body

数组

A list of parameters, if specified, to be removed from the set of parameters of the current stack. The default values in the template will be used.

disable_rollback (Optional)

body

布尔值

Enables or disables deletion of all stack resources when stack creation fails. Set to true to keep all resources when stack creation fails. Set to false to delete all resources when stack creation fails.

environment (Optional)

body

对象

A JSON environment for the stack.

environment_files (Optional)

body

对象

An ordered list of names for environment files found in the files dict.

files_container (Optional)

body

字符串

Name of the container in swift that has child templates and environment files.

existing (Optional)

body

布尔值

A boolean specifying whether the service is about to reuse the existing stack template, parameters and environment. If template parameter is not provided, the existing template is used. If template_files is not provided, the existing environment is used. Parameters specified in the parameters key will patch over the existing values in the current stack. Parameters omitted will keep the existing values.

files (Optional)

body

对象

Supplies the contents of files referenced in the template or the environment. Stack templates and resource templates can explicitly reference files by using the get_file intrinsic function. In addition, the environment parameter can contain implicit references to files.

The value is a JSON object, where each key is a relative or absolute URI which serves as the name of a file, and the associated value provides the contents of the file. The following code shows the general structure of this parameter.

{ ...
    "files": {
        "fileA.yaml": "Contents of the file",
        "file:///usr/fileB.template": "Contents of the file",
        "http://example.com/fileC.template": "Contents of the file"
    }
...
}

Additionally, some template authors encode their user data in a local file. The Orchestration client examines the template for the get_file intrinsic function and adds an entry to the files map with the path to the file as the name and the file contents as the value. So, a simple example looks like this

{
   "files": {
      "myfile": "#!/bin/bash\necho \"Hello world\" > /root/testfile.txt"
   },
   ...,
   "stack_name": "teststack",
   "template": {
      ...,
      "resources": {
         "my_server": {
            "type": "OS::Nova::Server",
            "properties": {
               ...,
               "user_data": {
                  "get_file": "myfile"
               }
            }
         }
      }
   },
   "timeout_mins": 60
}

Do not use this parameter to provide the content of the template located at the template_url address. Instead, use the template parameter to supply the template content as part of the request.

parameters (Optional)

body

对象

Supplies arguments for parameters defined in the stack template.

The value is a JSON object, where each key is the name of a parameter defined in the template and the associated value is the argument to use for that parameter when instantiating the template. The following code shows the general structure of this parameter. In the example, a and b would be the names of two parameters defined in the template.

{ ...
    "parameters": {
        "a": "Value",
        "b": "3"
    }
...
}

While the service accepts JSON numbers for parameters with the type number and JSON objects for parameters with the type json, all parameter values are converted to their string representation for storage in the created Stack. Clients are encouraged to send all parameter values using their string representation for consistency between requests and responses from the Orchestration service.

A value must be provided for each template parameter which does not specify a default value. However, this parameter is not allowed to contain JSON properties with names that do not match a parameter defined in the template.

The files parameter maps logical file names to file contents. Both the get_file intrinsic function and provider template functionality use this mapping. When you want to use a provider template, for example, the Orchestration service adds an entry to the files map by using

  • The URL of the provider template as the name.

  • The contents of that file as the value.

Additionally, some template authors encode their user data in a local file. The Orchestration client examines the template for the get_file intrinsic function and adds an entry to the files map with the path to the file as the name and the file contents as the value. So, a simple example looks like this

{
   "files": {
      "myfile": "#!/bin/bash\necho \"Hello world\" > /root/testfile.txt"
   },
   ...,
   "stack_name": "teststack",
   "template": {
      ...,
      "resources": {
         "my_server": {
            "type": "OS::Nova::Server",
            "properties": {
               ...,
               "user_data": {
                  "get_file": "myfile"
               }
            }
         }
      }
   },
   "timeout_mins": 60
}

show_nested (Optional)

body

布尔值

Set to true to include nested stacks in the preview result.

tags (可选)

body

字符串

One or more simple string tags to associate with the stack. To associate multiple tags with a stack, separate the tags with commas. For example, tag1,tag2.

template (Optional)

body

对象

The stack template on which to perform the operation.

This parameter is always provided as a string in the JSON request body. The content of the string is a JSON- or YAML-formatted Orchestration template. For example

"template": {
    "heat_template_version": "2013-05-23",
    ...
}

This parameter is required only when you omit the template_url parameter. If you specify both parameters, this value overrides the template_url parameter value.

template_url (Optional)

body

字符串

A URI to the location containing the stack template on which to perform the operation. See the description of the template parameter for information about the expected template content located at the URI. This parameter is only required when you omit the template parameter. If you specify both parameters, this parameter is ignored.

timeout_mins (Optional)

body

整数

The timeout for stack creation in minutes.

converge (Optional)

body

布尔值

Set to true to force the stack to observe the reality before update.

请求示例

{
    "template": {
        "heat_template_version": "2013-05-23",
        "description": "Create a simple stack",
        "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"
                }
            }
        }
    },
    "parameters": {
        "flavor": "m1.small"
    }
}

响应参数

名称

入参

类型

描述

X-Openstack-Request-Id

标头

字符串

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

resource_changes

body

对象

An map that describes what resources will be added, deleted, replaced, updated or remain unchanged.

added

body

数组

A list of resource objects that will be added if a stack update is performed.

deleted

body

数组

A list of resource objects that will be deleted if a stack update is performed.

replaced

body

数组

A list of resource objects that will be replaced if a stack update is performed.

unchanged

body

数组

A list of resource objects that will remain unchanged if a stack update is performed.

updated

body

数组

A list of resource objects that will have their properties updated in place if a stack update is performed.

响应示例

{
    "unchanged": [
        {
            "updated_time": "datetime",
            "resource_name": "",
            "physical_resource_id": "{resource id or ''}",
            "resource_action": "CREATE",
            "resource_status": "COMPLETE",
            "resource_status_reason": "",
            "resource_type": "restype",
            "stack_identity": "{stack_id}",
            "stack_name": "{stack_name}"
        }
    ],
    "updated": [
        {
            "updated_time": "datetime",
            "resource_name": "",
            "physical_resource_id": "{resource id or ''}",
            "resource_action": "CREATE",
            "resource_status": "COMPLETE",
            "resource_status_reason": "",
            "resource_type": "restype",
            "stack_identity": "{stack_id}",
            "stack_name": "{stack_name}"
        }
    ],
    "replaced": [
        {
            "updated_time": "datetime",
            "resource_name": "",
            "physical_resource_id": "{resource id or ''}",
            "resource_action": "CREATE",
            "resource_status": "COMPLETE",
            "resource_status_reason": "",
            "resource_type": "restype",
            "stack_identity": "{stack_id}",
            "stack_name": "{stack_name}"
        }
    ],
    "added": [
        {
            "updated_time": "datetime",
            "resource_name": "",
            "physical_resource_id": "{resource id or ''}",
            "resource_action": "CREATE",
            "resource_status": "COMPLETE",
            "resource_status_reason": "",
            "resource_type": "restype",
            "stack_identity": "{stack_id}",
            "stack_name": "{stack_name}"
        }
    ],
    "deleted": [
        {
            "updated_time": "datetime",
            "resource_name": "",
            "physical_resource_id": "{resource id or ''}",
            "resource_action": "CREATE",
            "resource_status": "COMPLETE",
            "resource_status_reason": "",
            "resource_type": "restype",
            "stack_identity": "{stack_id}",
            "stack_name": "{stack_name}"
        }
    ]
}
PATCH
/v1/{tenant_id}/stacks/{stack_name}/{stack_id}/preview

Preview stack update (PATCH)

Previews an update for a stack using the PATCH verb. The logic is the same as that of stack update preview with a PUT verb except that the existing parameter is always set to True.

Response Codes

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

500 - 内部服务器错误

服务内部出现问题。 通常不应发生这种情况。 如果发生这种情况,则表示服务器遇到了一些严重问题。

请求参数

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

stack_name

路径

字符串

The name of a stack.

stack_id

路径

字符串

The UUID of the stack.

clear_parameters (Optional)

body

数组

A list of parameters, if specified, to be removed from the set of parameters of the current stack. The default values in the template will be used.

disable_rollback (Optional)

body

布尔值

Enables or disables deletion of all stack resources when stack creation fails. Set to true to keep all resources when stack creation fails. Set to false to delete all resources when stack creation fails.

environment (Optional)

body

对象

A JSON environment for the stack.

environment_files (Optional)

body

对象

An ordered list of names for environment files found in the files dict.

files_container (Optional)

body

字符串

Name of the container in swift that has child templates and environment files.

existing (Optional)

body

布尔值

This parameter can be specified but it will be ignored. When using the PATCH verb to update a stack,the orchestration service will try reuse the existing stack template, parameters and environment. If template parameter is not provided, the existing template is used. If template_files is not provided, the existing environment is used. Parameters specified in the parameters key will patch over the existing values in the current stack. Parameters omitted will keep the existing values.

files (Optional)

body

对象

Supplies the contents of files referenced in the template or the environment. Stack templates and resource templates can explicitly reference files by using the get_file intrinsic function. In addition, the environment parameter can contain implicit references to files.

The value is a JSON object, where each key is a relative or absolute URI which serves as the name of a file, and the associated value provides the contents of the file. The following code shows the general structure of this parameter.

{ ...
    "files": {
        "fileA.yaml": "Contents of the file",
        "file:///usr/fileB.template": "Contents of the file",
        "http://example.com/fileC.template": "Contents of the file"
    }
...
}

Additionally, some template authors encode their user data in a local file. The Orchestration client examines the template for the get_file intrinsic function and adds an entry to the files map with the path to the file as the name and the file contents as the value. So, a simple example looks like this

{
   "files": {
      "myfile": "#!/bin/bash\necho \"Hello world\" > /root/testfile.txt"
   },
   ...,
   "stack_name": "teststack",
   "template": {
      ...,
      "resources": {
         "my_server": {
            "type": "OS::Nova::Server",
            "properties": {
               ...,
               "user_data": {
                  "get_file": "myfile"
               }
            }
         }
      }
   },
   "timeout_mins": 60
}

Do not use this parameter to provide the content of the template located at the template_url address. Instead, use the template parameter to supply the template content as part of the request.

parameters (Optional)

body

对象

Supplies arguments for parameters defined in the stack template.

The value is a JSON object, where each key is the name of a parameter defined in the template and the associated value is the argument to use for that parameter when instantiating the template. The following code shows the general structure of this parameter. In the example, a and b would be the names of two parameters defined in the template.

{ ...
    "parameters": {
        "a": "Value",
        "b": "3"
    }
...
}

While the service accepts JSON numbers for parameters with the type number and JSON objects for parameters with the type json, all parameter values are converted to their string representation for storage in the created Stack. Clients are encouraged to send all parameter values using their string representation for consistency between requests and responses from the Orchestration service.

A value must be provided for each template parameter which does not specify a default value. However, this parameter is not allowed to contain JSON properties with names that do not match a parameter defined in the template.

The files parameter maps logical file names to file contents. Both the get_file intrinsic function and provider template functionality use this mapping. When you want to use a provider template, for example, the Orchestration service adds an entry to the files map by using

  • The URL of the provider template as the name.

  • The contents of that file as the value.

Additionally, some template authors encode their user data in a local file. The Orchestration client examines the template for the get_file intrinsic function and adds an entry to the files map with the path to the file as the name and the file contents as the value. So, a simple example looks like this

{
   "files": {
      "myfile": "#!/bin/bash\necho \"Hello world\" > /root/testfile.txt"
   },
   ...,
   "stack_name": "teststack",
   "template": {
      ...,
      "resources": {
         "my_server": {
            "type": "OS::Nova::Server",
            "properties": {
               ...,
               "user_data": {
                  "get_file": "myfile"
               }
            }
         }
      }
   },
   "timeout_mins": 60
}

show_nested (Optional)

body

布尔值

Set to true to include nested stacks in the preview result.

tags (可选)

body

字符串

One or more simple string tags to associate with the stack. To associate multiple tags with a stack, separate the tags with commas. For example, tag1,tag2.

template (Optional)

body

对象

The stack template on which to perform the operation.

This parameter is always provided as a string in the JSON request body. The content of the string is a JSON- or YAML-formatted Orchestration template. For example

"template": {
    "heat_template_version": "2013-05-23",
    ...
}

This parameter is required only when you omit the template_url parameter. If you specify both parameters, this value overrides the template_url parameter value.

template_url (Optional)

body

字符串

A URI to the location containing the stack template on which to perform the operation. See the description of the template parameter for information about the expected template content located at the URI. This parameter is only required when you omit the template parameter. If you specify both parameters, this parameter is ignored.

timeout_mins (Optional)

body

整数

The timeout for stack creation in minutes.

converge (Optional)

body

布尔值

Set to true to force the stack to observe the reality before update.

Request Example

{
    "template": {
        "heat_template_version": "2013-05-23",
        "description": "Create a simple stack",
        "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"
                }
            }
        }
    },
    "parameters": {
        "flavor": "m1.small"
    }
}

响应参数

名称

入参

类型

描述

X-Openstack-Request-Id

标头

字符串

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

resource_changes

body

对象

An map that describes what resources will be added, deleted, replaced, updated or remain unchanged.

added

body

数组

A list of resource objects that will be added if a stack update is performed.

deleted

body

数组

A list of resource objects that will be deleted if a stack update is performed.

replaced

body

数组

A list of resource objects that will be replaced if a stack update is performed.

unchanged

body

数组

A list of resource objects that will remain unchanged if a stack update is performed.

updated

body

数组

A list of resource objects that will have their properties updated in place if a stack update is performed.

响应示例

{
    "unchanged": [
        {
            "updated_time": "datetime",
            "resource_name": "",
            "physical_resource_id": "{resource id or ''}",
            "resource_action": "CREATE",
            "resource_status": "COMPLETE",
            "resource_status_reason": "",
            "resource_type": "restype",
            "stack_identity": "{stack_id}",
            "stack_name": "{stack_name}"
        }
    ],
    "updated": [
        {
            "updated_time": "datetime",
            "resource_name": "",
            "physical_resource_id": "{resource id or ''}",
            "resource_action": "CREATE",
            "resource_status": "COMPLETE",
            "resource_status_reason": "",
            "resource_type": "restype",
            "stack_identity": "{stack_id}",
            "stack_name": "{stack_name}"
        }
    ],
    "replaced": [
        {
            "updated_time": "datetime",
            "resource_name": "",
            "physical_resource_id": "{resource id or ''}",
            "resource_action": "CREATE",
            "resource_status": "COMPLETE",
            "resource_status_reason": "",
            "resource_type": "restype",
            "stack_identity": "{stack_id}",
            "stack_name": "{stack_name}"
        }
    ],
    "added": [
        {
            "updated_time": "datetime",
            "resource_name": "",
            "physical_resource_id": "{resource id or ''}",
            "resource_action": "CREATE",
            "resource_status": "COMPLETE",
            "resource_status_reason": "",
            "resource_type": "restype",
            "stack_identity": "{stack_id}",
            "stack_name": "{stack_name}"
        }
    ],
    "deleted": [
        {
            "updated_time": "datetime",
            "resource_name": "",
            "physical_resource_id": "{resource id or ''}",
            "resource_action": "CREATE",
            "resource_status": "COMPLETE",
            "resource_status_reason": "",
            "resource_type": "restype",
            "stack_identity": "{stack_id}",
            "stack_name": "{stack_name}"
        }
    ]
}
DELETE
/v1/{tenant_id}/stacks/{stack_identity}

Find stack for deletion

Find the canonical URL for a stack for deletion. This request returns a status code of 302 pointing to the location where a DELETE request can be sent to request a stack deletion.

Response Codes

成功

代码

原因

302 - Found

The response is about a redirection hint. The header of the response usually contains a ‘location’ value where requesters can check to track the real location of the resource.

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

500 - 内部服务器错误

服务内部出现问题。 通常不应发生这种情况。 如果发生这种情况,则表示服务器遇到了一些严重问题。

Request Parameters

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

stack_identity

路径

字符串

The UUID or the name of a stack.

Response Parameters

名称

入参

类型

描述

X-Openstack-Request-Id

标头

字符串

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

location

标头

字符串

For asynchronous resource operations, the location header contains a URI that can be checked to track resource status changes.

code

body

字符串

The response code to a resource find request. e.g. 302 Found.

message

body

字符串

The message in the response to a resource find request.

title

body

字符串

The title of the response to a resource find request. e.g. Found.

响应示例

{
    "code": "302 Found",
    "message": "The resource was found at <a href=\"http://192.168.42.11:8004/v1/369166a68a3a49b78b4e138531556e55/stacks/s2/321c4eed-c87f-4cea-8288-9238f3b92e63\">http://192.168.42.11:8004/v1/369166a68a3a49b78b4e138531556e55/stacks/s2/321c4eed-c87f-4cea-8288-9238f3b92e63</a>;\nyou should be redirected automatically.\n\n",
    "title": "Found"
}
DELETE
/v1/{tenant_id}/stacks/{stack_name}/{stack_id}

Delete stack

Deletes a stack. If a stack has snapshots, those snapshots are deleted as well.

Response Codes

成功

代码

原因

204 - No Content

服务器已通过删除资源来满足请求。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

500 - 内部服务器错误

服务内部出现问题。 通常不应发生这种情况。 如果发生这种情况,则表示服务器遇到了一些严重问题。

Request Parameters

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

stack_name

路径

字符串

The name of a stack.

stack_id

路径

字符串

The UUID of the stack.

响应参数

此请求不在响应主体中返回任何内容。

DELETE
/v1/{tenant_id}/stacks/{stack_name}/{stack_id}/abandon

Abandon stack

Deletes a stack but leaves its resources intact, and returns data that describes the stack and its resources.

This is a preview feature which has to be explicitly enabled by setting the following option in the heat.conf file

[DEFAULT]
enable_stack_abandon = True

Response Codes

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

500 - 内部服务器错误

服务内部出现问题。 通常不应发生这种情况。 如果发生这种情况,则表示服务器遇到了一些严重问题。

Request Parameters

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

stack_name

路径

字符串

The name of a stack.

stack_id

路径

字符串

The UUID of the stack.

响应参数

名称

入参

类型

描述

动作

body

字符串

The current action on the stack.

environment

body

对象

A JSON environment for the stack.

files

body

对象

A map containing the name and content of files used by the stack.

id

body

字符串

The UUID of the stack.

stack_name

body

字符串

A name for the stack. The value must be unique within a project. The name must start with an ASCII letter and can contain ASCII letters, digits, underscores, periods, and hyphens. Specifically, the name must match the ^[a-zA-Z][a-zA-Z0-9_.-]{0,254}$ regular expression.

When you delete or abandon a stack, its name will not become available for reuse until the deletion completes successfully.

project_id

body

字符串

项目的 UUID。

resources

body

对象

The required sources for creating the stack template.

stack_user_project_id

body

字符串

The project UUID of the stack user.

status

body

字符串

The status of the stack.

tags

body

数组

The stack tags.

template

body

对象

The template used to create the stack.

响应示例

{
    "action": "CREATE",
    "environment": {},
    "files": {},
    "id": "16934ca3-40e0-4fb2-a289-a700662ec05a",
    "name": "g",
    "project_id": "369166a68a3a49b78b4e138531556e55",
    "resources": {
        "server": {
            "status": "COMPLETE",
            "name": "server",
            "resource_data": {},
            "resource_id": "39d5dad7-7d7a-4cc8-bd84-851e9e2ff4ea",
            "action": "CREATE",
            "type": "OS::Nova::Server",
            "metadata": {}
        }
    },
    "stack_user_project_id": "9bbd353467bc4f069a3692d223a48aac",
    "status": "COMPLETE",
    "tags": null,
    "template": {
        "outputs": {
            "instance_ip": {
                "value": {
                    "str_replace": {
                        "params": {
                            "username": "ec2-user",
                            "hostname": {
                                "get_attr": [
                                    "server",
                                    "first_address"
                                ]
                            }
                        },
                        "template": "ssh username@hostname"
                    }
                }
            }
        },
        "heat_template_version": "2013-05-23",
        "resources": {
            "server": {
                "type": "OS::Nova::Server",
                "properties": {
                    "key_name": {
                        "get_param": "key_name"
                    },
                    "image": {
                        "get_param": "image"
                    },
                    "flavor": {
                        "get_param": "flavor"
                    }
                }
            }
        },
        "parameters": {
            "key_name": {
                "default": "heat_key",
                "type": "string"
            },
            "image": {
                "default": "fedora-amd64",
                "type": "string"
            },
            "flavor": {
                "default": "m1.small",
                "type": "string"
            }
        }
    }
}
POST
/v1/{tenant_id}/stacks

Adopt stack

Creates a stack from existing resources.

This is a preview feature which has to be explicitly enabled by setting the following option in the heat.conf file

[DEFAULT]
enable_stack_adopt = True

响应代码

成功

代码

原因

201 - 已创建

资源已创建并准备好使用。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

409 - Conflict

此操作与此资源的另一个操作冲突。

500 - 内部服务器错误

服务内部出现问题。 通常不应发生这种情况。 如果发生这种情况,则表示服务器遇到了一些严重问题。

Request Parameters

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

adopt_stack_data

body

对象

Existing resources data to adopt a stack. Data returned by abandon stack could be provided as adopt_stack_data.

disable_rollback (Optional)

body

布尔值

Enables or disables deletion of all stack resources when stack creation fails. Set to true to keep all resources when stack creation fails. Set to false to delete all resources when stack creation fails.

environment (Optional)

body

对象

A JSON environment for the stack.

files (Optional)

body

对象

Supplies the contents of files referenced in the template or the environment. Stack templates and resource templates can explicitly reference files by using the get_file intrinsic function. In addition, the environment parameter can contain implicit references to files.

The value is a JSON object, where each key is a relative or absolute URI which serves as the name of a file, and the associated value provides the contents of the file. The following code shows the general structure of this parameter.

{ ...
    "files": {
        "fileA.yaml": "Contents of the file",
        "file:///usr/fileB.template": "Contents of the file",
        "http://example.com/fileC.template": "Contents of the file"
    }
...
}

Additionally, some template authors encode their user data in a local file. The Orchestration client examines the template for the get_file intrinsic function and adds an entry to the files map with the path to the file as the name and the file contents as the value. So, a simple example looks like this

{
   "files": {
      "myfile": "#!/bin/bash\necho \"Hello world\" > /root/testfile.txt"
   },
   ...,
   "stack_name": "teststack",
   "template": {
      ...,
      "resources": {
         "my_server": {
            "type": "OS::Nova::Server",
            "properties": {
               ...,
               "user_data": {
                  "get_file": "myfile"
               }
            }
         }
      }
   },
   "timeout_mins": 60
}

Do not use this parameter to provide the content of the template located at the template_url address. Instead, use the template parameter to supply the template content as part of the request.

parameters (Optional)

body

对象

Supplies arguments for parameters defined in the stack template.

The value is a JSON object, where each key is the name of a parameter defined in the template and the associated value is the argument to use for that parameter when instantiating the template. The following code shows the general structure of this parameter. In the example, a and b would be the names of two parameters defined in the template.

{ ...
    "parameters": {
        "a": "Value",
        "b": "3"
    }
...
}

While the service accepts JSON numbers for parameters with the type number and JSON objects for parameters with the type json, all parameter values are converted to their string representation for storage in the created Stack. Clients are encouraged to send all parameter values using their string representation for consistency between requests and responses from the Orchestration service.

A value must be provided for each template parameter which does not specify a default value. However, this parameter is not allowed to contain JSON properties with names that do not match a parameter defined in the template.

The files parameter maps logical file names to file contents. Both the get_file intrinsic function and provider template functionality use this mapping. When you want to use a provider template, for example, the Orchestration service adds an entry to the files map by using

  • The URL of the provider template as the name.

  • The contents of that file as the value.

Additionally, some template authors encode their user data in a local file. The Orchestration client examines the template for the get_file intrinsic function and adds an entry to the files map with the path to the file as the name and the file contents as the value. So, a simple example looks like this

{
   "files": {
      "myfile": "#!/bin/bash\necho \"Hello world\" > /root/testfile.txt"
   },
   ...,
   "stack_name": "teststack",
   "template": {
      ...,
      "resources": {
         "my_server": {
            "type": "OS::Nova::Server",
            "properties": {
               ...,
               "user_data": {
                  "get_file": "myfile"
               }
            }
         }
      }
   },
   "timeout_mins": 60
}

stack_name

body

字符串

A name for the stack. The value must be unique within a project. The name must start with an ASCII letter and can contain ASCII letters, digits, underscores, periods, and hyphens. Specifically, the name must match the ^[a-zA-Z][a-zA-Z0-9_.-]{0,254}$ regular expression.

When you delete or abandon a stack, its name will not become available for reuse until the deletion completes successfully.

timeout_mins (Optional)

body

整数

The timeout for stack creation in minutes.

Request Example

{
    "adopt_stack_data": {
        "action": "CREATE",
        "id": "bxxxxx4-0xx2-4xx1-axx6-exxxxxxxc",
        "name": "teststack",
        "resources": {
            "MyServer": {
                "action": "CREATE",
                "metadata": {},
                "name": "MyServer",
                "resource_data": {},
                "resource_id": "cxxxx3-dxx3-4xx-bxx2-3xxxxxxxxa",
                "status": "COMPLETE",
                "type": "OS::Trove::Instance"
            }
        },
        "status": "COMPLETE",
        "template": {
            "heat_template_version": "2013-05-23",
            "resources": {
                "MyServer": {
                    "type": "OS::Trove::Instance",
                    "properties": {
                        "flavor": "m1.small",
                        "size": 10
                    }
                }
            }
        }
    },
    "stack_name": "new_stack",
    "timeout_mins": 30
}

Response Parameters

名称

入参

类型

描述

location

标头

字符串

For asynchronous resource operations, the location header contains a URI that can be checked to track resource status changes.

X-Openstack-Request-Id

标头

字符串

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

stack

body

对象

The stack object.

id

body

字符串

The UUID of the stack.

links

body

数组

A list of URLs for the stack. Each URL is a JSON object with an href key indicating the URL and a rel key indicating its relationship to the stack in question. There may be multiple links returned. The self relationship identifies the URL of the stack itself.

响应示例

{
    "stack": {
        "id": "3095aefc-09fb-4bc7-b1f0-f21a304e864c",
        "links": [
            {
                "href": "http://192.168.123.200:8004/v1/eb1c63a4f77141548385f113a28f0f52/stacks/teststack/3095aefc-09fb-4bc7-b1f0-f21a304e864c",
                "rel": "self"
            }
        ]
    }
}
GET
/v1/{tenant_id}/stacks/{stack_name}/{stack_id}/export

Export stack

Gets the stack data in JSON format.

Response Codes

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

409 - Conflict

此操作与此资源的另一个操作冲突。

500 - 内部服务器错误

服务内部出现问题。 通常不应发生这种情况。 如果发生这种情况,则表示服务器遇到了一些严重问题。

Request Parameters

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

stack_name

路径

字符串

The name of a stack.

stack_id

路径

字符串

The UUID of the stack.

Response Parameters

The body of the response contains a map of file names and file contents.

名称

入参

类型

描述

X-Openstack-Request-Id

标头

字符串

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

动作

body

字符串

The last action executed on the stack.

environment

body

对象

A JSON environment for the stack.

files

body

对象

A map containing the name and content of files used by the stack.

id

body

字符串

The UUID of the stack.

name

body

字符串

A name for the stack. The value must be unique within a project. The name must start with an ASCII letter and can contain ASCII letters, digits, underscores, periods, and hyphens. Specifically, the name must match the ^[a-zA-Z][a-zA-Z0-9_.-]{0,254}$ regular expression.

When you delete or abandon a stack, its name will not become available for reuse until the deletion completes successfully.

project_id

body

字符串

项目的 UUID。

resources

body

数组

A map of resource names and their properties.

stack_user_project_id

body

字符串

The project UUID of the stack user.

status

body

字符串

The status of the stack.

tags

body

数组

The stack tags.

template

body

对象

The template used to create the stack.

Response Example

{
    "action": "SUSPEND",
    "environment": {
        "event_sinks": [],
        "parameter_defaults": {},
        "parameters": {},
        "resource_registry": {
            "resources": {}
        }
    },
    "files": {},
    "id": "da778f26-6d25-4634-9531-d438188e48fd",
    "name": "s1",
    "project_id": "369166a68a3a49b78b4e138531556e55",
    "resources": {
        "random": {
            "action": "SUSPEND",
            "metadata": {},
            "name": "random",
            "resource_data": {
                "value": "wCPWWoGJH5SZKtNFAgqGcbiWokCkRgam"
            },
            "resource_id": "s1-random-pzuzs6pbjhho",
            "status": "COMPLETE",
            "type": "OS::Heat::RandomString"
        }
    },
    "stack_user_project_id": "a4e6fd443f5b4d4694331ff441ad2397",
    "status": "COMPLETE",
    "tags": null,
    "template": {
        "heat_template_version": "2014-10-16",
        "outputs": {
            "result": {
                "value": {
                    "get_attr": [
                        "random",
                        "value"
                    ]
                }
            }
        },
        "parameters": {
            "str_length": {
                "default": 32,
                "type": "number"
            }
        },
        "resources": {
            "random": {
                "properties": {
                    "length": {
                        "get_param": "str_length"
                    }
                },
                "type": "OS::Heat::RandomString"
            }
        }
    }
}
GET
/v1/{tenant_id}/stacks/{stack_name}/{stack_id}/template

Get stack template

Gets a template for a stack.

Response Codes

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

500 - 内部服务器错误

服务内部出现问题。 通常不应发生这种情况。 如果发生这种情况,则表示服务器遇到了一些严重问题。

Request Parameters

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

stack_name

路径

字符串

The name of a stack.

stack_id

路径

字符串

The UUID of the stack.

Response Parameters

名称

入参

类型

描述

X-Openstack-Request-Id

标头

字符串

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

heat_template_version

body

字符串

The version of the orchestration HOT template.

outputs

body

对象

Key and value pairs that contain output data.

parameters

body

对象

Key and value pairs that contain the schemas of parameters acceptable by the template.

description

body

字符串

The description of the stack template.

resources

body

对象

Key and value pairs that contain definition of resources in the template.

Response Example

{
    "description": "Hello world HOT template that just defines a single server. Contains just base features to verify base HOT support.\n",
    "heat_template_version": "2013-05-23",
    "outputs": {
        "foo": {
            "description": "Show foo parameter value",
            "value": {
                "get_param": "foo"
            }
        }
    },
    "parameters": {
        "foo": {
            "default": "secret",
            "description": "Name of an existing key pair to use for the server",
            "hidden": true,
            "type": "string"
        }
    },
    "resources": {
        "random_key_name": {
            "properties": {
                "length": 8
            },
            "type": "OS::Heat::RandomString"
        }
    }
}
GET
/v1/{tenant_id}/stacks/{stack_name}/{stack_id}/environment

Get stack environment

Gets the environment for a stack.

Response Codes

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

500 - 内部服务器错误

服务内部出现问题。 通常不应发生这种情况。 如果发生这种情况,则表示服务器遇到了一些严重问题。

Request Parameters

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

stack_name

路径

字符串

The name of a stack.

stack_id

路径

字符串

The UUID of the stack.

响应参数

名称

入参

类型

描述

X-Openstack-Request-Id

标头

字符串

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

encrypted_param_names

body

数组

A list of parameter names whose values are encrypted.

event_sinks

body

数组

A list of event sinks.

parameter_defaults

body

对象

A map of parameters and their default values defined for the stack.

parameters (Optional)

body

对象

Supplies arguments for parameters defined in the stack template.

The value is a JSON object, where each key is the name of a parameter defined in the template and the associated value is the argument to use for that parameter when instantiating the template. The following code shows the general structure of this parameter. In the example, a and b would be the names of two parameters defined in the template.

{ ...
    "parameters": {
        "a": "Value",
        "b": "3"
    }
...
}

While the service accepts JSON numbers for parameters with the type number and JSON objects for parameters with the type json, all parameter values are converted to their string representation for storage in the created Stack. Clients are encouraged to send all parameter values using their string representation for consistency between requests and responses from the Orchestration service.

A value must be provided for each template parameter which does not specify a default value. However, this parameter is not allowed to contain JSON properties with names that do not match a parameter defined in the template.

The files parameter maps logical file names to file contents. Both the get_file intrinsic function and provider template functionality use this mapping. When you want to use a provider template, for example, the Orchestration service adds an entry to the files map by using

  • The URL of the provider template as the name.

  • The contents of that file as the value.

Additionally, some template authors encode their user data in a local file. The Orchestration client examines the template for the get_file intrinsic function and adds an entry to the files map with the path to the file as the name and the file contents as the value. So, a simple example looks like this

{
   "files": {
      "myfile": "#!/bin/bash\necho \"Hello world\" > /root/testfile.txt"
   },
   ...,
   "stack_name": "teststack",
   "template": {
      ...,
      "resources": {
         "my_server": {
            "type": "OS::Nova::Server",
            "properties": {
               ...,
               "user_data": {
                  "get_file": "myfile"
               }
            }
         }
      }
   },
   "timeout_mins": 60
}

resource_registry

body

对象

A map containing customized resource definitions. This map contains at least a dict of resources registered for the stack.

响应示例

{
    "encrypted_param_names": [],
    "event_sinks": [],
    "parameter_defaults": {},
    "parameters": {},
    "resource_registry": {
        "resources": {}
    }
}
GET
/v1/{tenant_id}/stacks/{stack_name}/{stack_id}/files

Get stack files

Gets the files associated with a stack.

Response Codes

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

500 - 内部服务器错误

服务内部出现问题。 通常不应发生这种情况。 如果发生这种情况,则表示服务器遇到了一些严重问题。

Request Parameters

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

stack_name

路径

字符串

The name of a stack.

stack_id

路径

字符串

The UUID of the stack.

响应参数

The body of the response contains a map of file names and file contents.

名称

入参

类型

描述

X-Openstack-Request-Id

标头

字符串

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

响应示例

{
    "file:///home/username/hello.sh": "#!/bin/sh\necho hello\n"
}

Stack resources

GET
/v1/{tenant_id}/stacks/{stack_identity}/resources

Find stack resources

Finds the canonical URL for a resource list of a stack.

The canonical URL is returned for only non-deleted stacks. To fetch the resource list for deleted stacks, use the following endpoint

/v1/{tenant_id}/stacks/{stack_name}/{stack_id}/resources

Response Codes

成功

代码

原因

302 - Found

The response is about a redirection hint. The header of the response usually contains a ‘location’ value where requesters can check to track the real location of the resource.

错误

代码

原因

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

Request Parameters

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

stack_identity

路径

字符串

The UUID or the name of a stack.

响应参数

名称

入参

类型

描述

X-Openstack-Request-Id

标头

字符串

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

location

标头

字符串

For asynchronous resource operations, the location header contains a URI that can be checked to track resource status changes.

响应示例

{
    "code": "302 Found",
    "message": "The resource was found at <a href=\"http://192.168.42.11:8004/v1/369166a68a3a49b78b4e138531556e55/stacks/s1/da778f26-6d25-4634-9531-d438188e48fd\">http://192.168.42.11:8004/v1/369166a68a3a49b78b4e138531556e55/stacks/s1/da778f26-6d25-4634-9531-d438188e48fd</a>;\nyou should be redirected automatically.\n\n",
    "title": "Found"
}
GET
/v1/{tenant_id}/stacks/{stack_name}/{stack_id}/resources

List stack resources

Lists resources in a stack based on filtering parameters like resource name, status, type, action, id and physical_resource_id. These parameters could be used multiple times.

Response Codes

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

Request Parameters

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

stack_name

路径

字符串

The name of a stack.

stack_id

路径

字符串

The UUID of the stack.

type (可选)

查询

字符串

Stack resource type. Valid resource types include OS::Cinder::Volume, OS::Nova::Server, OS::Neutron::Port and so on. This parameter can be specified more than once to filter results by multiple resource types.

status (可选)

查询

字符串

Stack resource status. Valid resource statuses are COMPLETE, FAILED and IN_PROGRESS. This can be specified more than once to filter the results by multiple resource statuses.

name (可选)

查询

字符串

Filters the result list by a resource name. You can use this filter multiple times to filter by multiple resource names.

action(可选)

查询

字符串

Stack resource action. Valid resource actions are ADOPT, CHECK, CREATE, DELETE, INIT, RESTORE, RESUME, ROLLBACK, SNAPSHOT, SUSPEND, and UPDATE.

id (可选)

查询

字符串

Filters the resource list by the logical ID of stack resources. Use this filter multiple times to filter by multiple resource IDs.

physical_resource_id (Optional)

查询

字符串

Filters the resource list by the ID of physical resource represented by a stack resource. Use this filter multiple times to filter by multiple physical resource IDs.

nested_depth (Optional)

查询

整数

Includes resources from nested stacks up to the nested_depth levels of recursion.

with_detail (Optional)

查询

布尔值

Enables detailed resource information for each resource in list of resources.

响应参数

名称

入参

类型

描述

X-Openstack-Request-Id

标头

字符串

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

resources

body

数组

A list of resource objects.

creation_time

body

字符串

资源被创建的日期和时间。日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2015-08-27T09:49:58-05:00

如果包含 ±hh:mm 值,则为 UTC 的时区偏移量。

links

body

数组

A list of URLs for the stack. Each URL is a JSON object with an href key indicating the URL and a rel key indicating its relationship to the stack in question. There may be multiple links returned. The self relationship identifies the URL of the stack itself.

logical_resource_id

body

字符串

The ID of the logical stack resource.

physical_resource_id

body

字符串

The ID of the stack physical resource.

required_by

body

数组

The list of resources that require this stack resource.

resource_name

body

字符串

资源的名称。

resource_status

body

字符串

资源的当前状态。

resource_status_reason

body

字符串

The reason for the current stack resource state.

resource_type

body

字符串

The type name of the resource.

updated_time

body

字符串

The date and time when the object was updated. The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2015-08-27T09:49:58-05:00

如果包含 ±hh:mm 值,则为 UTC 的时区偏移量。

响应示例

{
    "resources": [
        {
            "creation_time": "2015-06-25T14:59:53",
            "links": [
                {
                    "href": "http://hostname/v1/1234/stacks/mystack/629a32d0-ac4f-4f63-b58d-f0d047b1ba4c/resources/random_key_name",
                    "rel": "self"
                },
                {
                    "href": "http://hostname/v1/1234/stacks/mystack/629a32d0-ac4f-4f63-b58d-f0d047b1ba4c",
                    "rel": "stack"
                }
            ],
            "logical_resource_id": "random_key_name",
            "physical_resource_id": "mystack-random_key_name-pmjmy5pks735",
            "required_by": [],
            "resource_name": "random_key_name",
            "resource_status": "CREATE_COMPLETE",
            "resource_status_reason": "state changed",
            "resource_type": "OS::Heat::RandomString",
            "updated_time": "2015-06-25T14:59:53"
        }
    ]
}
GET
/v1/{tenant_id}/stacks/{stack_name}/{stack_id}/resources/{resource_name}

Show resource data

Shows data for a resource.

Response Codes

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

Request Parameters

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

stack_name

路径

字符串

The name of a stack.

stack_id

路径

字符串

The UUID of the stack.

resource_name

路径

字符串

The name of a resource in the stack.

with_attr (Optional)

查询

布尔值

Includes detailed resource information for the resource.

Response Parameters

名称

入参

类型

描述

X-Openstack-Request-Id

标头

字符串

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

resource

body

对象

Key and value pairs that contain stack resource properties.

属性

body

对象

Key and value pairs that contain resource attributes.

creation_time

body

字符串

资源被创建的日期和时间。日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2015-08-27T09:49:58-05:00

如果包含 ±hh:mm 值,则为 UTC 的时区偏移量。

description

body

字符串

The description of the stack resource.

links

body

数组

A list of URLs for the resource. Each URL is a JSON object with an href key indicating the URL and a rel key indicating its relationship to the resource in question. There may be multiple links returned. The self relationship identifies the URL of the resource itself.

logical_resource_id

body

字符串

The ID of the logical stack resource.

physical_resource_id

body

字符串

The ID of the stack physical resource.

required_by

body

数组

The list of resources that require this stack resource.

resource_name

body

字符串

资源的名称。

resource_status

body

字符串

资源的当前状态。

resource_status_reason

body

字符串

The reason for the current stack resource state.

resource_type

body

字符串

The type name of the resource.

updated_time

body

字符串

The date and time when the object was updated. The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2015-08-27T09:49:58-05:00

如果包含 ±hh:mm 值,则为 UTC 的时区偏移量。

响应示例

{
    "resource": {
        "attributes": {
            "value": "I9S20uIp"
        },
        "creation_time": "2015-06-25T14:59:53",
        "description": "",
        "links": [
            {
                "href": "http://hostname/v1/1234/stacks/mystack/629a32d0-ac4f-4f63-b58d-f0d047b1ba4c/resources/random_key_name",
                "rel": "self"
            },
            {
                "href": "http://hostname/v1/1234/stacks/mystack/629a32d0-ac4f-4f63-b58d-f0d047b1ba4c",
                "rel": "stack"
            }
        ],
        "logical_resource_id": "random_key_name",
        "physical_resource_id": "mystack-random_key_name-pmjmy5pks735",
        "required_by": [],
        "resource_name": "random_key_name",
        "resource_status": "CREATE_COMPLETE",
        "resource_status_reason": "state changed",
        "resource_type": "OS::Heat::RandomString",
        "updated_time": "2015-06-25T14:59:53"
    }
}
GET
/v1/{tenant_id}/stacks/{stack_name}/{stack_id}/resources/{resource_name}/metadata

显示资源元数据

Shows metadata for a resource.

Response Codes

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

Request Parameters

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

stack_name

路径

字符串

The name of a stack.

stack_id

路径

字符串

The UUID of the stack.

resource_name

路径

字符串

The name of a resource in the stack.

响应参数

名称

入参

类型

描述

X-Openstack-Request-Id

标头

字符串

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

metadata

body

对象

The metadata of a resource.

Response Example

{
    "metadata": {
        "some_key": "some_value",
        "some_other_key": "some_other_value"
    }
}
POST
/v1/{tenant_id}/stacks/{stack_name}/{stack_id}/resources/{resource_name}/signal

Send a signal to a resource

Sends a signal to a resource.

Response Codes

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

The target resource doesn’t support receiving a signal.

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

Request Parameters

The contents of the request body depends on the resource to which you send a signal.

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

stack_name

路径

字符串

The name of a stack.

stack_id

路径

字符串

The UUID of the stack.

resource_name

路径

字符串

The name of a resource in the stack.

Response Example

此操作不返回响应体。

PATCH
/v1/{tenant_id}/stacks/{stack_name}/{stack_id}/resources/{resource_name_or_physical_id}

Mark a resource as unhealthy

Mark the specified resource in the stack as unhealthy.

Response Codes

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

Request Parameters

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

stack_name

路径

字符串

The name of a stack.

stack_id

路径

字符串

The UUID of the stack.

resource_name_or_physical_id

路径

字符串

The name of a resource in the stack, or the ID of its underlying physical resource.

mark_unhealthy

body

布尔值

A boolean indicating whether the target resource should be marked as unhealthy.

resource_status_reason (Optional)

body

字符串

The reason for the current stack resource state.

响应示例

此操作不返回响应体。

Stack Outputs

GET
/v1/{tenant_id}/stacks/{stack_name}/{stack_id}/outputs

List outputs

Lists outputs for a stack.

Response Codes

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

500 - 内部服务器错误

服务内部出现问题。 通常不应发生这种情况。 如果发生这种情况,则表示服务器遇到了一些严重问题。

Request Parameters

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

stack_name

路径

字符串

The name of a stack.

stack_id

路径

字符串

The UUID of the stack.

响应参数

名称

入参

类型

描述

X-Openstack-Request-Id

标头

字符串

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

outputs

body

数组

A list of stack outputs.

output_key

body

字符串

The name of a stack output.

description

body

字符串

A textual description of a stack output.

响应示例

{
    "outputs": [
        {
            "output_key": "output name",
            "description": "output description"
        }
    ]
}
GET
/v1/{tenant_id}/stacks/{stack_name}/{stack_id}/outputs/{output_key}

Show output

Shows details for a stack output.

Response Codes

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

500 - 内部服务器错误

服务内部出现问题。 通常不应发生这种情况。 如果发生这种情况,则表示服务器遇到了一些严重问题。

Request Parameters

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

stack_name

路径

字符串

The name of a stack.

stack_id

路径

字符串

The UUID of the stack.

output_key

路径

字符串

The key of a stack output.

响应参数

名称

入参

类型

描述

X-Openstack-Request-Id

标头

字符串

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

output

body

对象

An output record for the specified key.

output_key

body

字符串

The name of a stack output.

output_value

body

字符串

The value of a stack output.

description

body

字符串

A textual description of a stack output.

output_error (Optional)

body

字符串

The error in a stack output. This key only appears when an output has problem in resolving its value.

响应示例

{
    "output": {
        "output_key": "output_name",
        "output_value": "output_value",
        "description": "output description",
        "output_error": "error message"
    }
}

Stack Snapshots

POST
/v1/{tenant_id}/stacks/{stack_name}/{stack_id}/snapshots

Snapshot a stack

Takes a snapshot of all resources in a stack. All snapshots are deleted when the stack is deleted.

Response Codes

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

500 - 内部服务器错误

服务内部出现问题。 通常不应发生这种情况。 如果发生这种情况,则表示服务器遇到了一些严重问题。

Request Parameters

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

stack_name

路径

字符串

The name of a stack.

stack_id

路径

字符串

The UUID of the stack.

name

body

字符串

The name of the snapshot.

请求示例

{
    "name": "vol_snapshot"
}

响应参数

名称

入参

类型

描述

X-Openstack-Request-Id

标头

字符串

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

creation_time

body

字符串

资源被创建的日期和时间。日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2015-08-27T09:49:58-05:00

如果包含 ±hh:mm 值,则为 UTC 的时区偏移量。

data

body

对象

The snapshot data.

id

body

字符串

快照的 UUID。

name

body

字符串

The name of the snapshot.

status

body

字符串

The status of the snapshot.

status_reason

body

字符串

The reason for the current snapshot status.

Response Example

{
    "id": "13c3a4b5-0585-440e-85a4-6f96b20e7a78",
    "name": "vol_snapshot",
    "status": "IN_PROGRESS",
    "status_reason": null,
    "data": null,
    "creation_time": "2015-09-01T20:57:55Z"
}
GET
/v1/{tenant_id}/stacks/{stack_name}/{stack_id}/snapshots

列出快照

Lists snapshots for a stack.

Response Codes

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

Request Parameters

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

stack_name

路径

字符串

The name of a stack.

stack_id

路径

字符串

The UUID of the stack.

响应参数

名称

入参

类型

描述

X-Openstack-Request-Id

标头

字符串

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

快照

body

数组

A list of snapshots and their properties.

creation_time

body

字符串

资源被创建的日期和时间。日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2015-08-27T09:49:58-05:00

如果包含 ±hh:mm 值,则为 UTC 的时区偏移量。

data

body

对象

The snapshot data.

id

body

字符串

快照的 UUID。

name

body

字符串

The name of the snapshot.

status

body

字符串

The status of the snapshot.

status_reason

body

字符串

The reason for the current snapshot status.

Response Example

{
    "snapshots": [
        {
            "id": "7c4e1ef4-bf1b-41ab-a0c8-ce01f4ffdfa1",
            "name": "vol_snapshot",
            "status": "IN_PROGRESS",
            "status_reason": null,
            "creation_time": "2015-08-04T20:57:55Z",
            "data": null
        }
    ]
}
GET
/v1/{tenant_id}/stacks/{stack_name}/{stack_id}/snapshots/{snapshot_id}

Show snapshot

显示快照的详情。

Response Codes

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

Request Parameters

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

stack_name

路径

字符串

The name of a stack.

stack_id

路径

字符串

The UUID of the stack.

snapshot_id

路径

字符串

快照的 UUID。

Response Parameters

名称

入参

类型

描述

X-Openstack-Request-Id

标头

字符串

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

snapshot

body

对象

Key and value pairs that contain snapshot properties.

creation_time

body

字符串

资源被创建的日期和时间。日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2015-08-27T09:49:58-05:00

如果包含 ±hh:mm 值,则为 UTC 的时区偏移量。

data

body

对象

The snapshot data.

id

body

字符串

快照的 UUID。

name

body

字符串

The name of the snapshot.

status

body

字符串

The status of the snapshot.

status_reason

body

字符串

The reason for the current snapshot status.

响应示例

{
    "snapshot": {
        "id": "7c4e1ef4-bf1b-41ab-a0c8-ce01f4ffdfa1",
        "name": "vol_snapshot",
        "status": "COMPLETE",
        "status_reason": "Stack SNAPSHOT completed successfully",
        "creation_time": "2015-08-04T20:57:55Z",
        "data": {
            "status": "COMPLETE",
            "name": "stack_vol1",
            "stack_user_project_id": "fffa11067b1c48129ddfb78fba2bf09f",
            "environment": {
                "parameters": {},
                "resource_registry": {
                    "resources": {}
                }
            },
            "template": {
                "heat_template_version": "2013-05-23",
                "resources": {
                    "volume": {
                        "type": "OS::Cinder::Volume",
                        "properties": {
                            "size": 1
                        }
                    }
                }
            },
            "action": "SNAPSHOT",
            "project_id": "ecdb08032cd042179692a1b148f6565e",
            "id": "656452c2-e151-40da-8704-c844e69b485c",
            "resources": {
                "volume": {
                    "status": "COMPLETE",
                    "name": "volume",
                    "resource_data": {
                        "backup_id": "99108cf8-398f-461b-a043-bdceb7c9f572"
                    },
                    "resource_id": "3ab8cf79-807b-4c40-b743-0655f91e072f",
                    "action": "SNAPSHOT",
                    "type": "OS::Cinder::Volume",
                    "metadata": {}
                }
            }
        }
    }
}
POST
/v1/{tenant_id}/stacks/{stack_name}/{stack_id}/snapshots/{snapshot_id}/restore

Restore snapshot

Restores a stack snapshot.

You can restore only active stacks from a snapshot. You must recreate deleted stacks.

Response Codes

成功

代码

原因

202 - Accepted

请求已被接受处理,但处理尚未完成。响应中包含一个“location”头部,其中包含一个链接以检查请求的进度。

错误

代码

原因

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

Request Parameters

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

stack_name

路径

字符串

The name of a stack.

stack_id

路径

字符串

The UUID of the stack.

snapshot_id

路径

字符串

快照的 UUID。

响应参数

名称

入参

类型

描述

X-Openstack-Request-Id

标头

字符串

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

code

body

字符串

HTTP status code for a restore request. Usually 202 Accepted.

message

body

字符串

The message in the response to a stack restore request.

title

body

字符串

The title of the response to a stack restore request. e.g. Accepted.

响应示例

{
    "code": "202 Accepted",
    "message": "The request is accepted for processing.<br /><br />\n\n\n",
    "title": "Accepted"
}
DELETE
/v1/{tenant_id}/stacks/{stack_name}/{stack_id}/snapshots/{snapshot_id}

删除快照

Deletes a stack snapshot.

Response Codes

成功

代码

原因

204 - No Content

服务器已通过删除资源来满足请求。

错误

代码

原因

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

500 - 内部服务器错误

服务内部出现问题。 通常不应发生这种情况。 如果发生这种情况,则表示服务器遇到了一些严重问题。

Request Parameters

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

stack_name

路径

字符串

The name of a stack.

stack_id

路径

字符串

The UUID of the stack.

snapshot_id

路径

字符串

快照的 UUID。

Response Parameters

名称

入参

类型

描述

X-Openstack-Request-Id

标头

字符串

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

Response Example

The response to this API does not have a body.

Stack actions

Performs non-lifecycle operations on the stack. Specify the action in the request body.

POST
/v1/{tenant_id}/stacks/{stack_name}/{stack_id}/actions

Suspend stack

Suspends a stack.

Response Codes

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

Request Parameters

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

stack_name

路径

字符串

The name of a stack.

stack_id

路径

字符串

The UUID of the stack.

挂起

body

字符串

Specify the suspend action in the request body.

Request Example

{
    "suspend": null
}

Response Parameters

名称

入参

类型

描述

X-Openstack-Request-Id

标头

字符串

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

Response Example

此操作不返回响应体。

POST
/v1/{tenant_id}/stacks/{stack_name}/{stack_id}/actions

Resume stack

Resumes a suspended stack.

Response Codes

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

Request Parameters

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

stack_name

路径

字符串

The name of a stack.

stack_id

路径

字符串

The UUID of the stack.

resume

body

字符串

Specify the resume action in the request body.

Request Example

{
    "resume": null
}

Response Parameters

名称

入参

类型

描述

X-Openstack-Request-Id

标头

字符串

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

Response Example

此操作不返回响应体。

POST
/v1/{tenant_id}/stacks/{stack_name}/{stack_id}/actions

Cancel stack update

Cancels a currently running update of a stack.

Response Codes

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

Request Parameters

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

stack_name

路径

字符串

The name of a stack.

stack_id

路径

字符串

The UUID of the stack.

cancel_update

body

字符串

Specify the cancel_update action in the request body.

Request Example

{
    "cancel_update": null
}

Response Parameters

名称

入参

类型

描述

X-Openstack-Request-Id

标头

字符串

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

响应示例

此操作不返回响应体。

POST
/v1/{tenant_id}/stacks/{stack_name}/{stack_id}/actions

Cancel stack create/update without rollback

Cancels a currently running create/update of a stack without rollback.

Response Codes

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

Request Parameters

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

stack_name

路径

字符串

The name of a stack.

stack_id

路径

字符串

The UUID of the stack.

cancel_without_rollback

body

字符串

Specify the cancel_without_rollback action in the request body..

请求示例

{
    "cancel_without_rollback": null
}

Response Parameters

名称

入参

类型

描述

X-Openstack-Request-Id

标头

字符串

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

Response Example

此操作不返回响应体。

POST
/v1/{tenant_id}/stacks/{stack_name}/{stack_id}/actions

Check stack resources

Checks whether the resources are in expected states for a stack.

Response Codes

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

Request Parameters

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

stack_name

路径

字符串

The name of a stack.

stack_id

路径

字符串

The UUID of the stack.

检查

body

字符串

Specify the check action in the request body.

Request Example

{
    "check": null
}

Response Parameters

名称

入参

类型

描述

X-Openstack-Request-Id

标头

字符串

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

Response Example

此操作不返回响应体。

活动

The orchestration service provides APIs to check the events occurred on a stack or a specific resource in a stack.

GET
/v1/{tenant_id}/stacks/{stack_name}/{stack_id}/events

List stack events

Lists events for a stack.

Response Codes

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

Request Parameters

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

stack_name

路径

字符串

The name of a stack.

stack_id

路径

字符串

The UUID of the stack.

resource_action (Optional)

查询

字符串

Stack resource action. Valid resource actions are ADOPT, CHECK, CREATE, DELETE, INIT, RESTORE, RESUME, ROLLBACK, SNAPSHOT, SUSPEND, and UPDATE.

resource_status (Optional)

查询

字符串

Stack resource status. Valid resource statuses are COMPLETE, FAILED and IN_PROGRESS. This can be specified more than once to filter the results by multiple resource statuses.

resource_name (Optional)

查询

字符串

Filters the result list by a resource name. You can use this filter multiple times to filter by multiple resource names.

resource_type (可选)

查询

字符串

Stack resource type. Valid resource types include OS::Cinder::Volume, OS::Nova::Server, OS::Neutron::Port and so on. This parameter can be specified more than once to filter results by multiple resource types.

limit (可选)

查询

整数

请求项目页面大小。返回最多限制值数量的项目。使用 limit 参数进行初始限制请求,并在后续限制请求中使用响应中最后一个已查看项目的 ID 作为 marker 参数值。

marker (可选)

查询

字符串

最后一个已查看项目的 ID。使用 limit 参数进行初始限制请求,并在后续限制请求中使用响应中最后一个已查看项目的 ID 作为 marker 参数值。

sort_keys (Optional)

查询

字符串

Sorts the result list by keys specified in this parameter.

sort_dir (可选)

查询

字符串

The sort direction of the list. A valid value is asc (ascending) or desc (descending).

nested_depth (Optional)

查询

整数

Includes resources from nested stacks up to the nested_depth levels of recursion.

响应参数

名称

入参

类型

描述

X-Openstack-Request-Id

标头

字符串

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

event_time

body

字符串

The date and time when the event was created. The date and time stamp format is ISO 8601: CCYY-MM-DDThh:mm:ss, for example, 2015-08-27T09:49:58.

id

body

字符串

The UUID of the event object.

links

body

数组

A list of URLs for the event. Each URL is a JSON object with an href key indicating the URL and a rel key indicating its relationship to the event in question. There may be multiple links returned. The self relationship identifies the URL of the event itself.

logical_resource_id

body

字符串

The ID of the logical stack resource.

physical_resource_id

body

字符串

The ID of the stack physical resource.

resource_name

body

字符串

资源的名称。

resource_status

body

字符串

资源的当前状态。

resource_status_reason

body

字符串

The reason for the current stack resource state.

响应示例

{
    "events": [
        {
            "event_time": "2014-07-23T08:14:47Z",
            "id": "474bfdf0-a450-46ec-a78a-0c7faa404073",
            "links": [
                {
                    "href": "http://192.168.123.200:8004/v1/dc4b074874244f7693dd65583733a758/stacks/aws_port/db467ed1-50b5-4a3e-aeb1-396ff1d151c5/resources/port/events/474bfdf0-a450-46ec-a78a-0c7faa404073",
                    "rel": "self"
                },
                {
                    "href": "http://192.168.123.200:8004/v1/dc4b074874244f7693dd65583733a758/stacks/aws_port/db467ed1-50b5-4a3e-aeb1-396ff1d151c5/resources/port",
                    "rel": "resource"
                },
                {
                    "href": "http://192.168.123.200:8004/v1/dc4b074874244f7693dd65583733a758/stacks/aws_port/db467ed1-50b5-4a3e-aeb1-396ff1d151c5",
                    "rel": "stack"
                }
            ],
            "logical_resource_id": "port",
            "physical_resource_id": null,
            "resource_name": "port",
            "resource_status": "CREATE_FAILED",
            "resource_status_reason": "NotFound: Subnet f8a699d0-3537-429e-87a5-6b5a8d0c2bf0 could not be found"
        },
        {
            "event_time": "2014-07-23T08:14:47Z",
            "id": "66fa95b6-e6f8-4f05-b1af-e828f5aba04c",
            "links": [
                {
                    "href": "http://192.168.123.200:8004/v1/dc4b074874244f7693dd65583733a758/stacks/aws_port/db467ed1-50b5-4a3e-aeb1-396ff1d151c5/resources/port/events/66fa95b6-e6f8-4f05-b1af-e828f5aba04c",
                    "rel": "self"
                },
                {
                    "href": "http://192.168.123.200:8004/v1/dc4b074874244f7693dd65583733a758/stacks/aws_port/db467ed1-50b5-4a3e-aeb1-396ff1d151c5/resources/port",
                    "rel": "resource"
                },
                {
                    "href": "http://192.168.123.200:8004/v1/dc4b074874244f7693dd65583733a758/stacks/aws_port/db467ed1-50b5-4a3e-aeb1-396ff1d151c5",
                    "rel": "stack"
                }
            ],
            "logical_resource_id": "port",
            "physical_resource_id": null,
            "resource_name": "port",
            "resource_status": "CREATE_IN_PROGRESS",
            "resource_status_reason": "state changed"
        }
    ]
}
GET
/v1/{tenant_id}/stacks/{stack_name}/events

Find stack events

Finds the canonical URL for the event list of a stack.

Response Codes

成功

代码

原因

302 - Found

The response is about a redirection hint. The header of the response usually contains a ‘location’ value where requesters can check to track the real location of the resource.

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

500 - 内部服务器错误

服务内部出现问题。 通常不应发生这种情况。 如果发生这种情况,则表示服务器遇到了一些严重问题。

Request Parameters

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

stack_name

路径

字符串

The name of a stack.

响应参数

名称

入参

类型

描述

X-Openstack-Request-Id

标头

字符串

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

location

标头

字符串

For asynchronous resource operations, the location header contains a URI that can be checked to track resource status changes.

code

body

字符串

The response code to a resource find request. e.g. 302 Found.

message

body

字符串

The message in the response to a resource find request.

title

body

字符串

The title of the response to a resource find request. e.g. Found.

响应示例

{
    "code": "302 Found",
    "message": "The resource was found at <a href=\"http://192.168.42.11:8004/v1/369166a68a3a49b78b4e138531556e55/stacks/s1/da778f26-6d25-4634-9531-d438188e48fd/events?sort_dir=asc\">http://192.168.42.11:8004/v1/369166a68a3a49b78b4e138531556e55/stacks/s1/da778f26-6d25-4634-9531-d438188e48fd/events?sort_dir=asc</a>;\nyou should be redirected automatically.\n\n",
    "title": "Found"
}
GET
/v1/{tenant_id}/stacks/{stack_name}/{stack_id}/resources/{resource_name}/events

List resource events

Lists events for a stack resource.

Response Codes

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

Request Parameters

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

stack_name

路径

字符串

The name of a stack.

stack_id

路径

字符串

The UUID of the stack.

resource_name

路径

字符串

The name of a resource in the stack.

resource_action (Optional)

查询

字符串

Stack resource action. Valid resource actions are ADOPT, CHECK, CREATE, DELETE, INIT, RESTORE, RESUME, ROLLBACK, SNAPSHOT, SUSPEND, and UPDATE.

resource_status (Optional)

查询

字符串

Stack resource status. Valid resource statuses are COMPLETE, FAILED and IN_PROGRESS. This can be specified more than once to filter the results by multiple resource statuses.

resource_name (Optional)

查询

字符串

Filters the result list by a resource name. You can use this filter multiple times to filter by multiple resource names.

resource_type (可选)

查询

字符串

Stack resource type. Valid resource types include OS::Cinder::Volume, OS::Nova::Server, OS::Neutron::Port and so on. This parameter can be specified more than once to filter results by multiple resource types.

limit (可选)

查询

整数

请求项目页面大小。返回最多限制值数量的项目。使用 limit 参数进行初始限制请求,并在后续限制请求中使用响应中最后一个已查看项目的 ID 作为 marker 参数值。

marker (可选)

查询

字符串

最后一个已查看项目的 ID。使用 limit 参数进行初始限制请求,并在后续限制请求中使用响应中最后一个已查看项目的 ID 作为 marker 参数值。

sort_keys (Optional)

查询

字符串

Sorts the result list by keys specified in this parameter.

sort_dir (可选)

查询

字符串

The sort direction of the list. A valid value is asc (ascending) or desc (descending).

nested_depth (Optional)

查询

整数

Includes resources from nested stacks up to the nested_depth levels of recursion.

Response Example

{
    "events": [
        {
            "event_time": "2014-07-23T08:14:47Z",
            "id": "474bfdf0-a450-46ec-a78a-0c7faa404073",
            "links": [
                {
                    "href": "http://192.168.123.200:8004/v1/dc4b074874244f7693dd65583733a758/stacks/aws_port/db467ed1-50b5-4a3e-aeb1-396ff1d151c5/resources/port/events/474bfdf0-a450-46ec-a78a-0c7faa404073",
                    "rel": "self"
                },
                {
                    "href": "http://192.168.123.200:8004/v1/dc4b074874244f7693dd65583733a758/stacks/aws_port/db467ed1-50b5-4a3e-aeb1-396ff1d151c5/resources/port",
                    "rel": "resource"
                },
                {
                    "href": "http://192.168.123.200:8004/v1/dc4b074874244f7693dd65583733a758/stacks/aws_port/db467ed1-50b5-4a3e-aeb1-396ff1d151c5",
                    "rel": "stack"
                }
            ],
            "logical_resource_id": "port",
            "physical_resource_id": null,
            "resource_name": "port",
            "resource_status": "CREATE_FAILED",
            "resource_status_reason": "NotFound: Subnet f8a699d0-3537-429e-87a5-6b5a8d0c2bf0 could not be found"
        },
        {
            "event_time": "2014-07-23T08:14:47Z",
            "id": "66fa95b6-e6f8-4f05-b1af-e828f5aba04c",
            "links": [
                {
                    "href": "http://192.168.123.200:8004/v1/dc4b074874244f7693dd65583733a758/stacks/aws_port/db467ed1-50b5-4a3e-aeb1-396ff1d151c5/resources/port/events/66fa95b6-e6f8-4f05-b1af-e828f5aba04c",
                    "rel": "self"
                },
                {
                    "href": "http://192.168.123.200:8004/v1/dc4b074874244f7693dd65583733a758/stacks/aws_port/db467ed1-50b5-4a3e-aeb1-396ff1d151c5/resources/port",
                    "rel": "resource"
                },
                {
                    "href": "http://192.168.123.200:8004/v1/dc4b074874244f7693dd65583733a758/stacks/aws_port/db467ed1-50b5-4a3e-aeb1-396ff1d151c5",
                    "rel": "stack"
                }
            ],
            "logical_resource_id": "port",
            "physical_resource_id": null,
            "resource_name": "port",
            "resource_status": "CREATE_IN_PROGRESS",
            "resource_status_reason": "state changed"
        }
    ]
}
GET
/v1/{tenant_id}/stacks/{stack_name}/{stack_id}/resources/{resource_name}/events/{event_id}

Show event details

Shows details for an event.

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

500 - 内部服务器错误

服务内部出现问题。 通常不应发生这种情况。 如果发生这种情况,则表示服务器遇到了一些严重问题。

Request Parameters

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

stack_name

路径

字符串

The name of a stack.

stack_id

路径

字符串

The UUID of the stack.

resource_name

路径

字符串

The name of a resource in the stack.

event_id

路径

字符串

The UUID of the event that is related to the resource in the stack.

Response Parameters

名称

入参

类型

描述

X-Openstack-Request-Id

标头

字符串

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

事件

body

对象

An map containing the name and values of event properties.

event_time

body

字符串

The date and time when the event was created. The date and time stamp format is ISO 8601: CCYY-MM-DDThh:mm:ss, for example, 2015-08-27T09:49:58.

id

body

字符串

The UUID of the event object.

links

body

数组

A list of URLs for the event. Each URL is a JSON object with an href key indicating the URL and a rel key indicating its relationship to the event in question. There may be multiple links returned. The self relationship identifies the URL of the event itself.

logical_resource_id

body

字符串

The ID of the logical stack resource.

physical_resource_id

body

字符串

The ID of the stack physical resource.

resource_name

body

字符串

资源的名称。

resource_properties

body

对象

A map containing the properties of the resource associated with the event.

resource_status

body

字符串

资源的当前状态。

resource_status_reason

body

字符串

The reason for the current stack resource state.

resource_type

body

字符串

The type name of the resource.

Response Example

{
    "event": {
        "event_time": "2015-06-25T14:59:53",
        "id": "8db23e2e-72b2-47a2-9ed9-b52417f56e50",
        "links": [
            {
                "href": "http://hostname/v1/1234/stacks/mystack/56789/resources/random_key_name/events/8db23e2e-72b2-47a2-9ed9-b52417f56e50",
                "rel": "self"
            },
            {
                "href": "http://hostname/v1/1234/stacks/mystack/56789/resources/random_key_name",
                "rel": "resource"
            },
            {
                "href": "http://hostname/v1/1234/stacks/mystack/56789",
                "rel": "stack"
            }
        ],
        "logical_resource_id": "random_key_name",
        "physical_resource_id": null,
        "resource_name": "random_key_name",
        "resource_properties": {
            "character_classes": null,
            "character_sequences": null,
            "length": 8,
            "salt": null,
            "sequence": null
        },
        "resource_status": "CREATE_IN_PROGRESS",
        "resource_status_reason": "state changed",
        "resource_type": "OS::Heat::RandomString"
    }
}

Templates

GET
/v1/{tenant_id}/template_versions

List template versions

Lists all available template versions.

Response Codes

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

500 - 内部服务器错误

服务内部出现问题。 通常不应发生这种情况。 如果发生这种情况,则表示服务器遇到了一些严重问题。

Request Parameters

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

Response Parameters

名称

入参

类型

描述

X-Openstack-Request_id

标头

字符串

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

template_versions

body

数组

A list of template version object each describes the type name and version information for a template version.

alias

body

数组

The alias of a template version. For newer template versions supported, the orchestration service is moving away from template versioning using release date (which is hard to remember). Newer versions are named after the OpenStack release code name. For example, heat_template_version.newton.

type

body

字符串

The type of the template version which can be cfn or hot.

版本

body

字符串

The version string of the template format.

Response Example

{
    "template_versions": [
        {
            "aliases": [],
            "version": "AWSTemplateFormatVersion.2010-09-09",
            "type": "cfn"
        },
        {
            "aliases": [],
            "version": "HeatTemplateFormatVersion.2012-12-12",
            "type": "cfn"
        },
        {
            "aliases": [],
            "version": "heat_template_version.2013-05-23",
            "type": "hot"
        },
        {
            "aliases": [],
            "version": "heat_template_version.2014-10-16",
            "type": "hot"
        },
        {
            "aliases": [],
            "version": "heat_template_version.2015-04-30",
            "type": "hot"
        },
        {
            "aliases": [],
            "version": "heat_template_version.2015-10-15",
            "type": "hot"
        },
        {
            "aliases": [],
            "version": "heat_template_version.2016-04-08",
            "type": "hot"
        },
        {
            "aliases": ["heat_template_version.newton"],
            "version": "heat_template_version.2016-10-14",
            "type": "hot"
        },
        {
            "aliases": ["heat_template_version.ocata"],
            "version": "heat_template_version.2017-02-24",
            "type": "hot"
        }
    ]
}
GET
/v1/{tenant_id}/template_versions/{template_version}/functions

List template functions

Lists all available functions for a template version.

Response Codes

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

500 - 内部服务器错误

服务内部出现问题。 通常不应发生这种情况。 如果发生这种情况,则表示服务器遇到了一些严重问题。

Request Parameters

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

template_version

路径

字符串

The version of the heat template.

响应参数

名称

入参

类型

描述

X-Openstack-Request-Id

标头

字符串

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

template_functions

body

数组

A list of template function descriptors.

description

body

字符串

The textual description about the usage of the template function.

functions

body

字符串

The name of a function supported by the specified template version.

Response Example

{
    "template_functions": [
        {
            "functions": "Fn::Select",
            "description": "A function for selecting an item from a list or map."
        },
        {
            "functions": "repeat",
            "description": "A function for iterating over a list of items."
        },
        {
            "functions": "resource_facade",
            "description": "A function for retrieving data in a parent provider template."
        },
        {
            "functions": "list_join",
            "description": "A function for joining strings."
        },
        {
            "functions": "str_replace",
            "description": "A function for performing string substitutions."
        },
        {
            "functions": "get_attr",
            "description": "A function for resolving resource attributes."
        },
        {
            "functions": "get_param",
            "description": "A function for resolving parameter references."
        },
        {
            "functions": "get_file",
            "description": "A function for including a file inline."
        },
        {
            "functions": "digest",
            "description": "A function for performing digest operations."
        },
        {
            "functions": "get_resource",
            "description": "A function for resolving resource references."
        }
    ]
}
POST
/v1/{tenant_id}/validate

Validate template

Validates a template.

Response Codes

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

500 - 内部服务器错误

服务内部出现问题。 通常不应发生这种情况。 如果发生这种情况,则表示服务器遇到了一些严重问题。

Request Parameters

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

environment (Optional)

body

对象

A JSON environment for the stack.

environment_files (Optional)

body

对象

An ordered list of names for environment files found in the files dict.

files (Optional)

body

对象

Supplies the contents of files referenced in the template or the environment. Stack templates and resource templates can explicitly reference files by using the get_file intrinsic function. In addition, the environment parameter can contain implicit references to files.

The value is a JSON object, where each key is a relative or absolute URI which serves as the name of a file, and the associated value provides the contents of the file. The following code shows the general structure of this parameter.

{ ...
    "files": {
        "fileA.yaml": "Contents of the file",
        "file:///usr/fileB.template": "Contents of the file",
        "http://example.com/fileC.template": "Contents of the file"
    }
...
}

Additionally, some template authors encode their user data in a local file. The Orchestration client examines the template for the get_file intrinsic function and adds an entry to the files map with the path to the file as the name and the file contents as the value. So, a simple example looks like this

{
   "files": {
      "myfile": "#!/bin/bash\necho \"Hello world\" > /root/testfile.txt"
   },
   ...,
   "stack_name": "teststack",
   "template": {
      ...,
      "resources": {
         "my_server": {
            "type": "OS::Nova::Server",
            "properties": {
               ...,
               "user_data": {
                  "get_file": "myfile"
               }
            }
         }
      }
   },
   "timeout_mins": 60
}

Do not use this parameter to provide the content of the template located at the template_url address. Instead, use the template parameter to supply the template content as part of the request.

ignore_errors (Optional)

查询

字符串

List of comma separated error codes to ignore.

show_nested (Optional)

查询

布尔值

Set to true to include nested stacks in the list.

template (Optional)

body

对象

The stack template on which to perform the operation.

This parameter is always provided as a string in the JSON request body. The content of the string is a JSON- or YAML-formatted Orchestration template. For example

"template": {
    "heat_template_version": "2013-05-23",
    ...
}

This parameter is required only when you omit the template_url parameter. If you specify both parameters, this value overrides the template_url parameter value.

template_url (Optional)

body

字符串

A URI to the location containing the stack template on which to perform the operation. See the description of the template parameter for information about the expected template content located at the URI. This parameter is only required when you omit the template parameter. If you specify both parameters, this parameter is ignored.

Request Example

{
    "template_url": "/PATH_TO_HEAT_TEMPLATES/WordPress_Single_Instance.template"
}

响应参数

名称

入参

类型

描述

X-Openstack-Request-Id

标头

字符串

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

描述

body

字符串

The description specified in the template.

ParameterGroups (Optional)

body

数组

A list of parameter groups. Each group contains a list of parameter names.

参数

body

对象

Parameter schema in CFN format.

Environment (Optional)

body

对象

Environment for the stack, where multiple environment files are provided this will be the merged result.

响应示例

{
    "Description": "A template that provides a single server instance.",
    "Parameters": {
        "server-size": {
            "default": "1GB Standard Instance",
            "description": "Server size",
            "type": "String",
            "constraints": [
                {
                    "allowed_values": [
                        "512MB Standard Instance",
                        "1GB Standard Instance",
                        "4GB Standard Instance",
                        "8GB Standard Instance"
                    ],
                    "description": "Must be a valid server size."
                }
            ]
        },
        "key_name": {
            "description": "Keypair name for SSH access to the server",
            "required": true,
            "type": "String"
        },
        "server_name": {
            "default": "My server",
            "description": "My server",
            "type": "String"
        }
    },
    "ParameterGroups": [
        {
            "label": "Parameter groups",
            "description": "My parameter groups",
            "parameters": [
                "param_name-1",
                "param_name-2"
            ]
        }
    ],
    "Environment": {
        "event_sinks": [],
        "parameter_defaults": {},
        "parameters": {},
        "resource_registry": {
            "resources": {}
        }
    }
}

Software configuration

POST
/v1/{tenant_id}/software_configs

Create configuration

Creates a software configuration.

Response Codes

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

Request Parameters

名称

入参

类型

描述

inputs (Optional)

body

数组

Schema that represents the inputs that this software configuration expects.

group (Optional)

body

字符串

Namespace that groups this software configuration by when it is delivered to a server. This setting might simply define which configuration tool performs the configuration.

name

body

字符串

The name of the software configuration.

outputs (Optional)

body

数组

Schema that represents the outputs that this software configuration produces.

config (Optional)

body

字符串

Configuration script or manifest that defines which configuration is performed.

options (可选)

body

字符串

Map that contains options that are specific to the configuration management tool that this resource uses.

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

请求示例

{
    "inputs": [
        {
            "default": null,
            "type": "String",
            "name": "foo",
            "description": null
        },
        {
            "default": null,
            "type": "String",
            "name": "bar",
            "description": null
        }
    ],
    "group": "script",
    "name": "a-config-we5zpvyu7b5o",
    "outputs": [
        {
            "type": "String",
            "name": "result",
            "error_output": false,
            "description": null
        }
    ],
    "config": "#!/bin/sh -x\necho \"Writing to /tmp/$bar\"\necho $foo > /tmp/$bar\necho -n \"The file /tmp/$bar contains `cat /tmp/$bar` for server $deploy_server_id during $deploy_action\" > $heat_outputs_path.result\necho \"Written to /tmp/$bar\"\necho \"Output to stderr\" 1>&2",
    "options": null
}

Response Parameters

名称

入参

类型

描述

id

body

字符串

The UUID of the configuration.

inputs (Optional)

body

数组

Schema that represents the inputs that this software configuration expects.

group (Optional)

body

字符串

Namespace that groups this software configuration by when it is delivered to a server. This setting might simply define which configuration tool performs the configuration.

name

body

字符串

The name of the software configuration.

outputs (Optional)

body

数组

Schema that represents the outputs that this software configuration produces.

creation_time

body

字符串

资源被创建的日期和时间。日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2015-08-27T09:49:58-05:00

如果包含 ±hh:mm 值,则为 UTC 的时区偏移量。

updated_time

body

字符串

The date and time when the object was updated. The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2015-08-27T09:49:58-05:00

如果包含 ±hh:mm 值,则为 UTC 的时区偏移量。

config (Optional)

body

字符串

Configuration script or manifest that defines which configuration is performed.

options (可选)

body

字符串

Map that contains options that are specific to the configuration management tool that this resource uses.

software_config

body

对象

The software_config object.

响应示例

{
    "software_config": {
        "creation_time": "2015-01-31T15:12:36Z",
        "inputs": [
            {
                "default": null,
                "type": "String",
                "name": "foo",
                "description": null
            },
            {
                "default": null,
                "type": "String",
                "name": "bar",
                "description": null
            }
        ],
        "group": "script",
        "name": "a-config-we5zpvyu7b5o",
        "outputs": [
            {
                "type": "String",
                "name": "result",
                "error_output": false,
                "description": null
            }
        ],
        "options": null,
        "config": "#!/bin/sh -x\necho \"Writing to /tmp/$bar\"\necho $foo > /tmp/$bar\necho -n \"The file /tmp/$bar contains `cat /tmp/$bar` for server $deploy_server_id during $deploy_action\" > $heat_outputs_path.result\necho \"Written to /tmp/$bar\"\necho \"Output to stderr\" 1>&2",
        "id": "ddee7aca-aa32-4335-8265-d436b20db4f1"
    }
}
GET
/v1/{tenant_id}/software_configs

List configs

Lists all available software configurations.

Response Codes

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

500 - 内部服务器错误

服务内部出现问题。 通常不应发生这种情况。 如果发生这种情况,则表示服务器遇到了一些严重问题。

Request Parameters

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

limit (可选)

查询

整数

请求项目页面大小。返回最多限制值数量的项目。使用 limit 参数进行初始限制请求,并在后续限制请求中使用响应中最后一个已查看项目的 ID 作为 marker 参数值。

marker (可选)

查询

字符串

最后一个已查看项目的 ID。使用 limit 参数进行初始限制请求,并在后续限制请求中使用响应中最后一个已查看项目的 ID 作为 marker 参数值。

Response Parameters

名称

入参

类型

描述

creation_time

body

字符串

资源被创建的日期和时间。日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2015-08-27T09:49:58-05:00

如果包含 ±hh:mm 值,则为 UTC 的时区偏移量。

group (Optional)

body

字符串

Namespace that groups this software configuration by when it is delivered to a server. This setting might simply define which configuration tool performs the configuration.

id

body

字符串

The UUID of the configuration.

name

body

字符串

The name of the software configuration.

software_configs

body

数组

A list of software_config objects.

Response Example

{
    "software_configs": [{
        "group": "script",
        "name": "a-config-we5zpvyu7b5o",
        "creation_time": "2015-01-31T15:12:36Z",
        "id": "ddee7aca-aa32-4335-8265-d436b20db4f1",
    }]
}
GET
/v1/{tenant_id}/software_configs/{config_id}

Show configuration details

Shows details for a software configuration.

Response Codes

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

Request Parameters

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

config_id

路径

字符串

The UUID of the configuration.

Response Parameters

名称

入参

类型

描述

config (Optional)

body

字符串

Configuration script or manifest that defines which configuration is performed.

creation_time

body

字符串

资源被创建的日期和时间。日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2015-08-27T09:49:58-05:00

如果包含 ±hh:mm 值,则为 UTC 的时区偏移量。

group (Optional)

body

字符串

Namespace that groups this software configuration by when it is delivered to a server. This setting might simply define which configuration tool performs the configuration.

id

body

字符串

The UUID of the configuration.

inputs (Optional)

body

数组

Schema that represents the inputs that this software configuration expects.

name

body

字符串

The name of the software configuration.

options (可选)

body

字符串

Map that contains options that are specific to the configuration management tool that this resource uses.

outputs (Optional)

body

数组

Schema that represents the outputs that this software configuration produces.

software_config

body

对象

The software_config object.

Response Example

{
    "software_config": {
        "inputs": [
            {
                "default": null,
                "type": "String",
                "name": "foo",
                "description": null
            },
            {
                "default": null,
                "type": "String",
                "name": "bar",
                "description": null
            }
        ],
        "group": "script",
        "name": "a-config-we5zpvyu7b5o",
        "outputs": [
            {
                "type": "String",
                "name": "result",
                "error_output": false,
                "description": null
            }
        ],
        "creation_time": "2015-01-31T15:12:36Z",
        "id": "ddee7aca-aa32-4335-8265-d436b20db4f1",
        "config": "#!/bin/sh -x\necho \"Writing to /tmp/$bar\"\necho $foo > /tmp/$bar\necho -n \"The file /tmp/$bar contains `cat /tmp/$bar` for server $deploy_server_id during $deploy_action\" > $heat_outputs_path.result\necho \"Written to /tmp/$bar\"\necho \"Output to stderr\" 1>&2",
        "options": null
    }
}
DELETE
/v1/{tenant_id}/software_configs/{config_id}

Delete config

Deletes a software configuration.

Response Codes

成功

代码

原因

204 - No Content

服务器已通过删除资源来满足请求。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

Request Parameters

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

config_id

路径

字符串

The UUID of the configuration.

POST
/v1/{tenant_id}/software_deployments

Create deployment

Creates a software deployment.

Response Codes

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

500 - 内部服务器错误

服务内部出现问题。 通常不应发生这种情况。 如果发生这种情况,则表示服务器遇到了一些严重问题。

Request Parameters

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

action(可选)

body

字符串

The stack action that triggers this deployment resource.

config_id

body

字符串

The UUID of the software configuration resource that runs when applying to the server.

input_values (Optional)

body

对象

A dict comprises of input data as key-value pairs.

server_id

body

字符串

The UUID of the compute server to which the configuration applies.

stack_user_project_id (Optional)

body

字符串

Authentication project ID, which can also perform operations on this deployment.

status (可选)

body

字符串

Current status of the deployment. A valid value is COMPLETE, IN_PROGRESS, or FAILED.

status_reason (Optional)

body

字符串

The reason for the current deployment status.

Request Example

{
    "status": "IN_PROGRESS",
    "server_id": "ec14c864-096e-4e27-bb8a-2c2b4dc6f3f5",
    "config_id": "8da95794-2ad9-4979-8ae5-739ce314c5cd",
    "stack_user_project_id": "c024bfada67845ddb17d2b0c0be8cd79",
    "action": "CREATE",
    "status_reason": "Deploy data available"
}

Response Parameters

名称

入参

类型

描述

action(可选)

body

字符串

The stack action that triggers this deployment resource.

config_id

body

字符串

The UUID of the software configuration resource that runs when applying to the server.

creation_time

body

字符串

资源被创建的日期和时间。日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2015-08-27T09:49:58-05:00

如果包含 ±hh:mm 值,则为 UTC 的时区偏移量。

id

body

字符串

The UUID of the software deployment.

input_values (Optional)

body

对象

A dict comprises of input data as key-value pairs.

output_values

body

对象

A dict comprised of the output data from a software deployment.

server_id

body

字符串

The UUID of the compute server to which the configuration applies.

software_deployment

body

对象

The software_deployment object.

status (可选)

body

字符串

Current status of the deployment. A valid value is COMPLETE, IN_PROGRESS, or FAILED.

status_reason (Optional)

body

字符串

The reason for the current deployment status.

updated_time (Optional)

body

字符串

The date and time when the software deployment was updated.

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2015-08-27T09:49:58-05:00

如果包含 ±hh:mm 值,则为 UTC 的时区偏移量。

如果未设置 updated_at 日期和时间戳,则其值为 null

Response Example

{
    "software_deployment": {
        "status": "IN_PROGRESS",
        "server_id": "ec14c864-096e-4e27-bb8a-2c2b4dc6f3f5",
        "config_id": "8da95794-2ad9-4979-8ae5-739ce314c5cd",
        "output_values": null,
        "input_values": null,
        "action": "CREATE",
        "status_reason": "Deploy data available",
        "id": "ef422fa5-719a-419e-a10c-72e3a367b0b8",
        "creation_time": "2015-01-31T15:12:36Z",
        "updated_time": "2015-01-31T15:18:21Z"
    }
}
GET
/v1/{tenant_id}/software_deployments

List deployments

Lists all available software deployments.

Response Codes

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

500 - 内部服务器错误

服务内部出现问题。 通常不应发生这种情况。 如果发生这种情况,则表示服务器遇到了一些严重问题。

Request Parameters

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

server_id (Optional)

查询

字符串

The UUID of the target server.

响应参数

名称

入参

类型

描述

action(可选)

body

字符串

The stack action that triggers this deployment resource.

config_id

body

字符串

The UUID of the software configuration resource that runs when applying to the server.

creation_time

body

字符串

资源被创建的日期和时间。日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2015-08-27T09:49:58-05:00

如果包含 ±hh:mm 值,则为 UTC 的时区偏移量。

id

body

字符串

The UUID of the software deployment.

input_values (Optional)

body

对象

A dict comprises of input data as key-value pairs.

output_values

body

对象

A dict comprised of the output data from a software deployment.

server_id

body

字符串

The UUID of the compute server to which the configuration applies.

software_deployments

body

数组

A list of software_deployment objects.

status (可选)

body

字符串

Current status of the deployment. A valid value is COMPLETE, IN_PROGRESS, or FAILED.

status_reason (Optional)

body

字符串

The reason for the current deployment status.

updated_time (Optional)

body

字符串

The date and time when the software deployment was updated.

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2015-08-27T09:49:58-05:00

如果包含 ±hh:mm 值,则为 UTC 的时区偏移量。

如果未设置 updated_at 日期和时间戳,则其值为 null

Response Example

{
    "software_deployments": [
        {
            "status": "COMPLETE",
            "server_id": "ec14c864-096e-4e27-bb8a-2c2b4dc6f3f5",
            "config_id": "8da95794-2ad9-4979-8ae5-739ce314c5cd",
            "output_values": {
                "deploy_stdout": "Writing to /tmp/barmy\nWritten to /tmp/barmy\n",
                "deploy_stderr": "+ echo Writing to /tmp/barmy\n+ echo fu\n+ cat /tmp/barmy\n+ echo -n The file /tmp/barmy contains fu for server ec14c864-096e-4e27-bb8a-2c2b4dc6f3f5 during CREATE\n+ echo Written to /tmp/barmy\n+ echo Output to stderr\nOutput to stderr\n",
                "deploy_status_code": 0,
                "result": "The file /tmp/barmy contains fu for server ec14c864-096e-4e27-bb8a-2c2b4dc6f3f5 during CREATE"
            },
            "input_values": null,
            "action": "CREATE",
            "status_reason": "Outputs received",
            "id": "ef422fa5-719a-419e-a10c-72e3a367b0b8",
            "creation_time": "2015-01-31T15:12:36Z",
            "updated_time": "2015-01-31T15:18:21Z"
        }
    ]
}
GET
/v1/{tenant_id}/software_deployments/{deployment_id}

Show deployment details

Shows details for a software deployment.

Response Codes

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

500 - 内部服务器错误

服务内部出现问题。 通常不应发生这种情况。 如果发生这种情况,则表示服务器遇到了一些严重问题。

Request Parameters

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

deployment_id

路径

字符串

The UUID of the deployment.

Response Parameters

名称

入参

类型

描述

action(可选)

body

字符串

The stack action that triggers this deployment resource.

config_id

body

字符串

The UUID of the software configuration resource that runs when applying to the server.

creation_time

body

字符串

资源被创建的日期和时间。日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2015-08-27T09:49:58-05:00

如果包含 ±hh:mm 值,则为 UTC 的时区偏移量。

id

body

字符串

The UUID of the software deployment.

input_values (Optional)

body

对象

A dict comprises of input data as key-value pairs.

output_values

body

对象

A dict comprised of the output data from a software deployment.

server_id

body

字符串

The UUID of the compute server to which the configuration applies.

software_deployment

body

对象

The software_deployment object.

status (可选)

body

字符串

Current status of the deployment. A valid value is COMPLETE, IN_PROGRESS, or FAILED.

status_reason (Optional)

body

字符串

The reason for the current deployment status.

updated_time (Optional)

body

字符串

The date and time when the software deployment was updated.

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2015-08-27T09:49:58-05:00

如果包含 ±hh:mm 值,则为 UTC 的时区偏移量。

如果未设置 updated_at 日期和时间戳,则其值为 null

Response Example

{
    "software_deployment": {
        "status": "IN_PROGRESS",
        "server_id": "ec14c864-096e-4e27-bb8a-2c2b4dc6f3f5",
        "config_id": "3d5ec2a8-7004-43b6-a7f6-542bdbe9d434",
        "output_values": null,
        "input_values": null,
        "action": "CREATE",
        "status_reason": "Deploy data available",
        "id": "06e87bcc-33a2-4bce-aebd-533e698282d3",
        "creation_time": "2015-01-31T15:12:36Z",
        "updated_time": "2015-01-31T15:18:21Z"
    }
}
PUT
/v1/{tenant_id}/software_deployments/{deployment_id}

Update deployment

Updates a software deployment.

Response Codes

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

500 - 内部服务器错误

服务内部出现问题。 通常不应发生这种情况。 如果发生这种情况,则表示服务器遇到了一些严重问题。

Request Parameters

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

deployment_id

路径

字符串

The UUID of the deployment.

action(可选)

body

字符串

The stack action that triggers this deployment resource.

config_id

body

字符串

The UUID of the software configuration resource that runs when applying to the server.

input_values (Optional)

body

对象

A dict comprises of input data as key-value pairs.

output_values

body

对象

A dict comprised of the output data from a software deployment.

status (可选)

body

字符串

Current status of the deployment. A valid value is COMPLETE, IN_PROGRESS, or FAILED.

status_reason (Optional)

body

字符串

The reason for the current deployment status.

Request Example

{
    "status": "COMPLETE",
    "output_values": {
        "deploy_stdout": "Writing to /tmp/baaaaa\nWritten to /tmp/baaaaa\n",
        "deploy_stderr": "+ echo Writing to /tmp/baaaaa\n+ echo fooooo\n+ cat /tmp/baaaaa\n+ echo -n The file /tmp/baaaaa contains fooooo for server ec14c864-096e-4e27-bb8a-2c2b4dc6f3f5 during CREATE\n+ echo Written to /tmp/baaaaa\n+ echo Output to stderr\nOutput to stderr\n",
        "deploy_status_code": 0,
        "result": "The file /tmp/baaaaa contains fooooo for server ec14c864-096e-4e27-bb8a-2c2b4dc6f3f5 during CREATE"
    },
    "status_reason": "Outputs received"
}

响应参数

名称

入参

类型

描述

action(可选)

body

字符串

The stack action that triggers this deployment resource.

config_id

body

字符串

The UUID of the software configuration resource that runs when applying to the server.

creation_time

body

字符串

资源被创建的日期和时间。日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2015-08-27T09:49:58-05:00

如果包含 ±hh:mm 值,则为 UTC 的时区偏移量。

id

body

字符串

The UUID of the software deployment.

input_values (Optional)

body

对象

A dict comprises of input data as key-value pairs.

output_values

body

对象

A dict comprised of the output data from a software deployment.

server_id

body

字符串

The UUID of the compute server to which the configuration applies.

software_deployments

body

数组

A list of software_deployment objects.

status (可选)

body

字符串

Current status of the deployment. A valid value is COMPLETE, IN_PROGRESS, or FAILED.

status_reason (Optional)

body

字符串

The reason for the current deployment status.

updated_time (Optional)

body

字符串

The date and time when the software deployment was updated.

日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2015-08-27T09:49:58-05:00

如果包含 ±hh:mm 值,则为 UTC 的时区偏移量。

如果未设置 updated_at 日期和时间戳,则其值为 null

Response Example

{
    "software_deployment": {
        "status": "COMPLETE",
        "server_id": "ec14c864-096e-4e27-bb8a-2c2b4dc6f3f5",
        "config_id": "3d5ec2a8-7004-43b6-a7f6-542bdbe9d434",
        "output_values": {
            "deploy_stdout": "Writing to /tmp/baaaaa\nWritten to /tmp/baaaaa\n",
            "deploy_stderr": "+ echo Writing to /tmp/baaaaa\n+ echo fooooo\n+ cat /tmp/baaaaa\n+ echo -n The file /tmp/baaaaa contains fooooo for server ec14c864-096e-4e27-bb8a-2c2b4dc6f3f5 during CREATE\n+ echo Written to /tmp/baaaaa\n+ echo Output to stderr\nOutput to stderr\n",
            "deploy_status_code": 0,
            "result": "The file /tmp/baaaaa contains fooooo for server ec14c864-096e-4e27-bb8a-2c2b4dc6f3f5 during CREATE"
        },
        "input_values": null,
        "action": "CREATE",
        "status_reason": "Outputs received",
        "id": "06e87bcc-33a2-4bce-aebd-533e698282d3",
        "creation_time": "2015-01-31T15:12:36Z",
        "updated_time": "2015-01-31T15:18:21Z"
    }
}
DELETE
/v1/{tenant_id}/software_deployments/{deployment_id}

Delete deployment

Deletes a software deployment.

Response Codes

成功

代码

原因

204 - No Content

服务器已通过删除资源来满足请求。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

500 - 内部服务器错误

服务内部出现问题。 通常不应发生这种情况。 如果发生这种情况,则表示服务器遇到了一些严重问题。

Request Parameters

名称

入参

类型

描述

deployment_id

路径

字符串

The UUID of the deployment.

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

GET
/v1/{tenant_id}/software_deployments/metadata/{server_id}

Show server configuration metadata

Shows the deployment configuration metadata for a server.

Use the group property to specify the configuration hook to which the pass the metadata item.

Response Codes

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

500 - 内部服务器错误

服务内部出现问题。 通常不应发生这种情况。 如果发生这种情况,则表示服务器遇到了一些严重问题。

Request Parameters

名称

入参

类型

描述

server_id

路径

字符串

The UUID of the server for which to fetch server configuration metadata.

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

Response Parameters

名称

入参

类型

描述

config (Optional)

body

字符串

Configuration script or manifest that defines which configuration is performed.

creation_time

body

字符串

资源被创建的日期和时间。日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2015-08-27T09:49:58-05:00

如果包含 ±hh:mm 值,则为 UTC 的时区偏移量。

group (Optional)

body

字符串

Namespace that groups this software configuration by when it is delivered to a server. This setting might simply define which configuration tool performs the configuration.

id

body

字符串

The UUID of the configuration.

inputs (Optional)

body

数组

Schema that represents the inputs that this software configuration expects.

metadata

body

数组

The metadata about a software deployment.

name

body

字符串

The name of the software configuration.

options (可选)

body

字符串

Map that contains options that are specific to the configuration management tool that this resource uses.

outputs (Optional)

body

数组

Schema that represents the outputs that this software configuration produces.

updated_time

body

字符串

The date and time when the object was updated. The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2015-08-27T09:49:58-05:00

如果包含 ±hh:mm 值,则为 UTC 的时区偏移量。

Response Example

{
    "metadata": [
        {
            "inputs": [
                {
                    "default": null,
                    "type": "String",
                    "name": "foo",
                    "value": "fooooo",
                    "description": null
                },
                {
                    "default": null,
                    "type": "String",
                    "name": "bar",
                    "value": "baaaaa",
                    "description": null
                },
                {
                    "type": "String",
                    "name": "deploy_server_id",
                    "value": "ec14c864-096e-4e27-bb8a-2c2b4dc6f3f5",
                    "description": "ID of the server being deployed to"
                },
                {
                    "type": "String",
                    "name": "deploy_action",
                    "value": "CREATE",
                    "description": "Name of the current action being deployed"
                },
                {
                    "type": "String",
                    "name": "deploy_stack_id",
                    "value": "a/9bd57090-8954-48ab-bab9-adf9e1ac70fc",
                    "description": "ID of the stack this deployment belongs to"
                },
                {
                    "type": "String",
                    "name": "deploy_resource_name",
                    "value": "deployment",
                    "description": "Name of this deployment resource in the stack"
                },
                {
                    "type": "String",
                    "name": "deploy_signal_id",
                    "value": "http://192.168.20.103:8000/v1/signal/arn%3Aopenstack%3Aheat%3A%3Ae2a84fbdaeb047ae8da4b503f3b69f1f%3Astacks%2Fa%2F9bd57090-8954-48ab-bab9-adf9e1ac70fc%2Fresources%2Fdeployment?Timestamp=2014-03-19T20%3A30%3A59Z&SignatureMethod=HmacSHA256&AWSAccessKeyId=ca3571413e4a49998d580215517b3685&SignatureVersion=2&Signature=w6Iu%2BNbg86mqwSOUf1GLuKPO7KaD82PiGpL4ig9Q1l4%3D",
                    "description": "ID of signal to use for signalling output values"
                }
            ],
            "group": "script",
            "name": "a-config-we5zpvyu7b5o",
            "outputs": [
                {
                    "type": "String",
                    "name": "result",
                    "error_output": false,
                    "description": null
                }
            ],
            "options": null,
            "creation_time": "2015-01-31T15:12:36Z",
            "updated_time": "2015-01-31T15:18:21Z",
            "config": "#!/bin/sh -x\necho \"Writing to /tmp/$bar\"\necho $foo > /tmp/$bar\necho -n \"The file /tmp/$bar contains `cat /tmp/$bar` for server $deploy_server_id during $deploy_action\" > $heat_outputs_path.result\necho \"Written to /tmp/$bar\"\necho \"Output to stderr\" 1>&2",
            "id": "3d5ec2a8-7004-43b6-a7f6-542bdbe9d434"
        },
        {
            "inputs": [
                {
                    "default": null,
                    "type": "String",
                    "name": "foo",
                    "value": "fu",
                    "description": null
                },
                {
                    "default": null,
                    "type": "String",
                    "name": "bar",
                    "value": "barmy",
                    "description": null
                },
                {
                    "type": "String",
                    "name": "deploy_server_id",
                    "value": "ec14c864-096e-4e27-bb8a-2c2b4dc6f3f5",
                    "description": "ID of the server being deployed to"
                },
                {
                    "type": "String",
                    "name": "deploy_action",
                    "value": "CREATE",
                    "description": "Name of the current action being deployed"
                },
                {
                    "type": "String",
                    "name": "deploy_stack_id",
                    "value": "a/9bd57090-8954-48ab-bab9-adf9e1ac70fc",
                    "description": "ID of the stack this deployment belongs to"
                },
                {
                    "type": "String",
                    "name": "deploy_resource_name",
                    "value": "other_deployment",
                    "description": "Name of this deployment resource in the stack"
                },
                {
                    "type": "String",
                    "name": "deploy_signal_id",
                    "value": "http://192.168.20.103:8000/v1/signal/arn%3Aopenstack%3Aheat%3A%3Ae2a84fbdaeb047ae8da4b503f3b69f1f%3Astacks%2Fa%2F9bd57090-8954-48ab-bab9-adf9e1ac70fc%2Fresources%2Fother_deployment?Timestamp=2014-03-19T20%3A30%3A59Z&SignatureMethod=HmacSHA256&AWSAccessKeyId=7b761482f8254946bcd3d5ccb36fe939&SignatureVersion=2&Signature=giMfv%2BhrAw6y%2FCMKQIQz2IhO5PkAj5%2BfP5YsL6rul3o%3D",
                    "description": "ID of signal to use for signalling output values"
                }
            ],
            "group": "script",
            "name": "a-config-we5zpvyu7b5o",
            "outputs": [
                {
                    "type": "String",
                    "name": "result",
                    "error_output": false,
                    "description": null
                }
            ],
            "options": null,
            "creation_time": "2015-01-31T16:14:13Z",
            "updated_time": "2015-01-31T16:18:19Z",
            "config": "#!/bin/sh -x\necho \"Writing to /tmp/$bar\"\necho $foo > /tmp/$bar\necho -n \"The file /tmp/$bar contains `cat /tmp/$bar` for server $deploy_server_id during $deploy_action\" > $heat_outputs_path.result\necho \"Written to /tmp/$bar\"\necho \"Output to stderr\" 1>&2",
            "id": "8da95794-2ad9-4979-8ae5-739ce314c5cd"
        }
    ]
}

Resource Types

GET
/v1/{tenant_id}/resource_types

List resource types

Lists all supported template resource types.

Response Codes

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

Request Parameters

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

name (可选)

查询

字符串

Filters the response by a resource type name. You can set this value to a regular expression. Use this filter multiple times to filter by multiple names.

support_status (Optional)

查询

字符串

Filters the response by resource types by a support status. Valid support status values are UNKNOWN, SUPPORTED, DEPRECATED, UNSUPPORTED, and HIDDEN.

version (Optional)

查询

字符串

Filters the list of resource types by heat version. For example, 2016.1 or 5.0.0.

with_description (Optional)

查询

布尔值

Either display resource type’s description or not.

Response Parameters

Note that the format of the response from this API varies when different query parameters are specified. The default response has the following format

名称

入参

类型

描述

X-Openstack-Request-Id

标头

字符串

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

resource_types

body

数组

A list of resource type names.

When with_description is specified, the response has the following format

名称

入参

类型

描述

X-Openstack-Request-Id

标头

字符串

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

resource_types

body

数组

A list of objects each of which provides the resource type name and a textual description about the type.

resource_type

body

字符串

The type name of the resource.

description

body

字符串

The textual description of the resource type.

Response Example

The following is an example of the simple response

{
    "resource_types": [
        "AWS::EC2::Instance",
        "OS::Heat::ScalingPolicy",
        "AWS::CloudFormation::Stack"
    ]
}

The following is an example of the response when with_description is specified

{
    "resource_types": [
        {
            "description": "No description given",
            "resource_type": "AWS::EC2::Instance"
        },
        {
            "description": "Resource for defining which resources can be accessed by users.\n\nNOTE: Now this resource is actually associated with an AWS user resource,\nnot any OS:: resource though it is registered under the OS namespace below.\n\nResource for defining resources that users are allowed to access by the\nDescribeStackResource API.\n",
            "resource_type": "OS::Heat::AccessPolicy"
        },
        {
            "description": "A resource to manage scaling of `OS::Heat::AutoScalingGroup`.\n\n**Note** while it may incidentally support\n`AWS::AutoScaling::AutoScalingGroup` for now, please do not use it for that\npurpose and use `AWS::AutoScaling::ScalingPolicy` instead.\n\nResource to manage scaling for `OS::Heat::AutoScalingGroup`, i.e. define\nwhich metric should be scaled and scaling adjustment, set cooldown etc.\n",
            "resource_type": "OS::Heat::ScalingPolicy"
        },
        {
            "description": "Represents a child stack to allow composition of templates.",
            "resource_type": "AWS::CloudFormation::Stack"
        },
        {
            "description": "Heat Template Resource for Keystone Group.\n\nGroups are a container representing a collection of users. A group itself\nmust be owned by a specific domain, and hence all group names are not\nglobally unique, but only unique to their domain.\n",
            "resource_type": "OS::Keystone::Group"
        }
    ]
}
GET
/v1/{tenant_id}/resource_types/{type_name}/template

Show resource type template

Shows the template representation for a resource type.

The returned template contains a single resource type. Each resource property is mapped to a template parameter and each resource attribute is mapped to a template output.

You can use these templates as a starting place for creating customized, template-based resources or as examples of using the particular resource in another template.

Response Codes

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

Request Parameters

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

type_name

路径

字符串

The name of a resource type.

template_type (Optional)

查询

字符串

Specify the resource template type. The valid types are: cfn, hot.

Response Parameters

The format of the response varies when template_type is set to different values. When it is set to cfn or omitted, the response has the following format

名称

入参

类型

描述

X-Openstack-Request-Id

标头

字符串

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

描述

body

字符串

The description specified in the template.

输出

body

对象

Key and value pairs that contain output data for a CFN template.

HeatTemplateFormatVersion

body

字符串

The version of the orchestration CFN template.

参数

body

对象

Parameter schema in CFN format.

资源

body

对象

A map containging all resource definitions for the resource template.

When the template_type is explicitly set to hot, the response has the following format

名称

入参

类型

描述

X-Openstack-Request-Id

标头

字符串

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

heat_template_version

body

字符串

The version of the orchestration HOT template.

description

body

字符串

The description of the stack template.

outputs

body

对象

Key and value pairs that contain output data.

parameters

body

对象

Key and value pairs that contain the schemas of parameters acceptable by the template.

resources

body

对象

Key and value pairs that contain definition of resources in the template.

Response Example

The following is a sample of the response when template_type is set to cfn or omitted

{
    "HeatTemplateFormatVersion": "2012-12-12",
    "Description": "Initial template of KeyPair",
    "Parameters": {
        "public_key": {
            "Type": "String",
            "Description": "The optional public key. This allows users to supply the public key from a pre-existing key pair. If not supplied, a new key pair will be generated."
        },
        "save_private_key": {
            "Default": false,
            "Type": "Boolean",
            "Description": "True if the system should remember a generated private key; False otherwise.",
            "AllowedValues": [
                "True",
                "true",
                "False",
                "false"
            ]
        },
        "type": {
            "Type": "String",
            "Description": "Keypair type. Supported since Nova api version 2.2.",
            "AllowedValues": [
                "ssh",
                "x509"
            ]
        },
        "user": {
            "Type": "String",
            "Description": "ID or name of user to whom to add key-pair. The usage of this property is limited to being used by administrators only. Supported since Nova api version 2.10."
        },
        "name": {
            "MinLength": 1,
            "Type": "String",
            "Description": "The name of the key pair.",
            "MaxLength": 255
        }
    },
    "Resources": {
        "KeyPair": {
            "Type": "OS::Nova::KeyPair",
            "Properties": {
                "public_key": {
                    "Ref": "public_key"
                },
                "save_private_key": {
                    "Ref": "save_private_key"
                },
                "type": {
                    "Ref": "type"
                },
                "user": {
                    "Ref": "user"
                },
                "name": {
                    "Ref": "name"
                }
            }
        }
    },
    "Outputs": {
        "public_key": {
            "Description": "The public key.",
            "Value": {
                "Fn::GetAtt": [
                    "KeyPair",
                    "public_key"
                ]
            }
        },
        "private_key": {
            "Description": "The private key if it has been saved.",
            "Value": {
                "Fn::GetAtt": [
                    "KeyPair",
                    "private_key"
                ]
            }
        },
        "OS::stack_id": {
            "Value": {
                "Ref": "KeyPair"
            }
        },
        "show": {
            "Description": "Detailed information about resource.",
            "Value": {
                "Fn::GetAtt": [
                    "KeyPair",
                    "show"
                ]
            }
        }
    }
}

The following is a sample of the response when template_type is explicitly set to hot

{
    "heat_template_version": "2016-10-14",
    "description": "Initial template of KeyPair",
    "parameters": {
        "public_key": {
            "type": "string",
            "description": "The optional public key. This allows users to supply the public key from a pre-existing key pair. If not supplied, a new key pair will be generated."
        },
        "save_private_key": {
            "default": false,
            "type": "boolean",
            "description": "True if the system should remember a generated private key; False otherwise."
        },
        "type": {
            "type": "string",
            "description": "Keypair type. Supported since Nova api version 2.2.",
            "constraints": [
                {
                    "allowed_values": [
                        "ssh",
                        "x509"
                    ]
                }
            ]
        },
        "user": {
            "type": "string",
            "description": "ID or name of user to whom to add key-pair. The usage of this property is limited to being used by administrators only. Supported since Nova api version 2.10.",
            "constraints": [
                {}
            ]
        },
        "name": {
            "type": "string",
            "description": "The name of the key pair.",
            "constraints": [
                {
                    "length": {
                        "max": 255,
                        "min": 1
                    }
                }
            ]
        }
    },
    "resources": {
        "KeyPair": {
            "type": "OS::Nova::KeyPair",
            "properties": {
                "public_key": {
                    "get_param": "public_key"
                },
                "save_private_key": {
                    "get_param": "save_private_key"
                },
                "type": {
                    "get_param": "type"
                },
                "user": {
                    "get_param": "user"
                },
                "name": {
                    "get_param": "name"
                }
            }
        }
    },
    "outputs": {
        "public_key": {
            "description": "The public key.",
            "value": {
                "get_attr": [
                    "KeyPair",
                    "public_key"
                ]
            }
        },
        "private_key": {
            "description": "The private key if it has been saved.",
            "value": {
                "get_attr": [
                    "KeyPair",
                    "private_key"
                ]
            }
        },
        "OS::stack_id": {
            "value": {
                "get_resource": "KeyPair"
            }
        },
        "show": {
            "description": "Detailed information about resource.",
            "value": {
                "get_attr": [
                    "KeyPair",
                    "show"
                ]
            }
        }
    }
}
GET
/v1/{tenant_id}/resource_types/{type_name}

Show resource type schema

Shows the interface schema for a resource type.

A schema describes the properties that can be set on the resource, their types, constraints, descriptions, and default values. Additionally, the response shows the resource attributes and their descriptions.

Response Codes

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

404 - Not Found

找不到请求的资源。

Request Parameters

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

type_name

路径

字符串

The name of a resource type.

Response Parameters

名称

入参

类型

描述

X-Openstack-Request-Id

标头

字符串

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

属性

body

对象

Key and value pairs that contain resource attributes.

properties

body

对象

The properties of the resource. Includes description, type, and so on.

resource_type

body

字符串

The type name of the resource.

support_status

body

对象

关于资源类型当前支持状态的信息。

响应示例

{
    "attributes": {
        "an_attribute": {
            "description": "A runtime value of the resource.",
            "type": "string"
        }
    },
    "properties": {
        "a_property": {
            "constraints": [
                {
                    "description": "Must be between 1 and 255 characters",
                    "length": {
                        "max": 255,
                        "min": 1
                    }
                }
            ],
            "description": "A resource property description.",
            "required": true,
            "type": "string",
            "update_allowed": false,
            "immutable": false
        }
    },
    "resource_type": "OS::Heat::AResourceName",
    "support_status": {
        "message": "A status message",
        "status": "SUPPORTED",
        "version": "10.0.0"
    }
}

管理服务

GET
/v1/{tenant_id}/services

显示编排引擎状态

允许管理员用户查看所有编排引擎的详细信息。

编排引擎的详细信息包括引擎 ID、二进制文件、主题名称、主机、报告间隔、上次更新时间、健康状态和主机名。

响应码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

403 - 禁止

策略不允许当前用户执行此操作。

503 - 服务不可用

服务不可用。这通常是由服务配置错误引起的,导致服务无法成功启动。

故障排除

  • 503 错误代码表示 heat 引擎未运行。请运行 heat-manage service list 命令或联系您的云提供商,以确定 heat 引擎未运行的原因。

请求参数

名称

入参

类型

描述

tenant_id

路径

字符串

租户的 UUID。租户也称为项目。

响应参数

名称

入参

类型

描述

X-Openstack-Request-Id

标头

字符串

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

services

body

数组

heat 引擎列表。

binary

body

字符串

heat 引擎的二进制可执行文件名称。

created_at

body

字符串

服务引擎创建的日期和时间。

deleted_at

body

字符串

服务引擎删除的日期和时间。

engine_id

body

字符串

引擎服务的 UUID。

host

body

字符串

服务引擎正在或曾经运行的主机。

hostname

body

字符串

服务引擎的主机名。

id

body

字符串

heat 引擎服务记录的 UUID。请注意,每个服务引擎在服务注册表中可能有多条记录。

report_interval

body

整数

轮询间隔(秒)。API 在此间隔报告事件,直到 heat 引擎创建完成。

status

body

字符串

heat 引擎的状态。

topic

body

字符串

heat 引擎的消息主题。

updated_at

body

字符串

服务引擎更新的日期和时间。

响应示例

{
    "services": [
        {
            "binary": "heat-engine",
            "created_at": "2015-02-03T05:55:59.000000",
            "deleted_at": null,
            "engine_id": "9d9242c3-4b9e-45e1-9e74-7615fbf20e5d",
            "host": "engine-1",
            "hostname": "mrkanag",
            "id": "e1908f44-42f9-483f-b778-bc814072c33d",
            "report_interval": 60,
            "status": "up",
            "topic": "engine",
            "updated_at": "2015-02-03T05:57:59.000000"
        },
        {
            "binary": "heat-engine",
            "created_at": "2015-02-03T06:03:14.000000",
            "deleted_at": null,
            "engine_id": "2d2434bf-adb6-4453-9c6b-b22fb8bd2306",
            "host": "engine",
            "hostname": "mrkanag",
            "id": "582b5657-6db7-48ad-8483-0096350faa21",
            "report_interval": 60,
            "status": "down",
            "topic": "engine",
            "updated_at": "2015-02-03T06:09:55.000000"
        }
    ]
}