用于创建堆栈。
- 模板:定义了堆栈的骨架,决定了堆栈内部节点的构造以及节点间的关系,以及每个节点的属性的值或来源。
- 输入参数:是模板内节点属性值的来源之一,定义在模板的inputs字段下,由模板内的get_input函数触发。
POST /v2/stacks
-
请求参数
表 1 请求参数
堆栈名称。限制同表2的name字段。
堆栈描述。限制同表2的description字段。
该参数内每个key-value结构对应inputs下名为key的字段,标明输入值为value。
堆栈标签,内部每个key-value表示一个标签。key/value两个字段长度均为[1, 64],且满足正则表达式^[a-zA-Z0-9_]+[-.a-zA-Z0-9_]*$。
堆栈创建后自动执行安装生命周期的配置。限制同表2。
表 2 生命周期配置
说明: inputs_json参数中输入虚机应用对应属性时,如果不在url字段或name字段中填入合法url,则会通过name/version/repository字段访问SWR进行模糊查找。在软件仓库内文件较多的情况下时间效率不高。可行的解决方案是填入url避免模糊查找,或将name/version/repository填写详细,减少查找范围。
- 推荐的做法:url: http://SWR.url/xxx/file.tgz
- 较好的做法:name: file.tgz version: v1 repository: myProject
- 效率较低的做法: name: file.tgz
-
请求示例
{ "name": "aos-lm-verydows-t1", "template_id": "b417b635-6ab2-1fed-b593-b129a9923ba2", "project_id": "10556c2112784111b8bf10512591189e", "cluster_id": "46c547ca-e96c-11e7-98b9-0255ac102005", "inputs_json": { "ecsng-image": "192.168.3.88:20202/default/verydows-ecsng:2.1.1", "mysql-image": "192.168.3.88:20202/tangtao/verydows-mysql:5.6.35", "redis-image": "192.168.3.88:20202/default/verydows-redis:4.0.2_passwd", "verydows-image": "192.168.3.88:20202/default/verydows:2.3.1", "verydows-install-image": "192.168.3.88:20202/default/verydows:2.3.1", "mysql-name": "verydows-mysql-t1" } }
-
响应参数
响应参数是一个堆栈结构或返回消息结构。
- 创建成功时返回堆栈结构。
- 创建失败时返回错误响应结构。
其中,堆栈结构如表3 响应参数所示, 返回错误响应结构如表5所示。
表 3 响应参数
-
响应成功示例
{ "force": true, "guid": "d956ea24-e979-11e7-9764-0255ac103504", "namespace": "default", "project_id": "c261c106051448479eb7c66549866011", "cluster_name": "test-not-delete", "cluster_id": "46c547ca-e96c-11e7-98b9-0255ac102005", "domain_id": "ef09dd6cc93f4653b5557181b802ee71", "name": "aos-lm-verydows-t1", "description": "", "status": "", "template_id": "b417b635-6ab2-1fed-b593-b129a9923ba2", "previous_template_id": "", "template_name": "verydows", "healthy": true, "healthy_message": "", "inputs_json": "{\"ecsng-container-port\":80,\"ecsng-image\":\"192.168.3.88:20202/default/verydows-ecsng:2.1.1\",\"imagePullPolicy\":\"IfNotPresent\",\"mysql-container-port\":3306,\"mysql-database\":\"verydows\",\"mysql-image\":\"192.168.3.88:20202/tangtao/verydows-mysql:5.6.35\",\"mysql-name\":\"verydows-mysql-t1\",\"mysql-password\":\"******\",\"mysql-port\":13306,\"mysql-root-password\":\"******\",\"mysql-user\":\"verydows\",\"redis-container-port\":6379,\"redis-image\":\"192.168.3.88:20202/default/verydows-redis:4.0.2_passwd\",\"redis-password\":\"******\",\"redis-port\":16379,\"verydows-container-port\":80,\"verydows-http-host\":\"\",\"verydows-image\":\"192.168.3.88:20202/default/verydows:2.3.1\",\"verydows-install-image\":\"192.168.3.88:20202/default/verydows:2.3.1\",\"verydows-port\":8088}", "previous_inputs_json": "", "create_at": "", "update_at": "", "labels": "", "template_version": "2.0.1", "dsl_version": "huaweicloud_tosca_version_1_0" }
-
响应失败示例
{ "message": "The request body is invalid, please check. Error: The stack name is already existed.", "code": "02030008", "extend": "" }