校验流程
功能介绍
校验流程合法性。
URI
POST /v1/workflows/validate
请求消息
请求参数
请求参数如表1所示。
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
inputs | 是 | 流程输入,子元素为输入参数/输入参数属性键值对。 | |
metadata | 否 | 流程中各Job关系定义。 | |
version | 是 | String | 模板版本号。 |
volumes | 是 | 存储卷。 | |
workflow | 是 | 流程中每个Job的具体内容。 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
default | 是 | String | 默认值 |
description | 是 | String | 描述信息 |
type | 是 | String | 参数类型。支持选项:
|
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
Job | 是 | 该Job的依赖和被依赖关系,map中只有一个以“references”为key的键值对,references的具体结构见表15 references。 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
depends | 否 | List | 该Job所依赖的Job列表,List中每个元素的结构见表16 depends。 |
relateto | 否 | List | 依赖该Job的Job列表,List中每个元素为Job ID。 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
target | 是 | String | 所依赖的任务名,请确保指定的任务名必须存在。 |
type | 是 | Enum | 依赖方式,可取值为:
例如,如果步骤一和步骤二都并发执行100个容器。
|
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
mount_from | 是 | Map | 挂载卷的来源,Map子元素为以“pvc”为key的键值对,value可使用inputs或系统默认的输入值。 |
mount_path | 是 | String | 卷挂载到的路径。 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
commands | 是 | List | Job所要执行的命令,List每个元素代表一条命令 |
depends | 是 | List | 所依赖的Job和依赖类型,具体结构见表16 depends |
metadata | 是 | Map | Job元信息,Map子元素为以“Designer”为key的Map,该嵌套的Map中只有一个以“id”为key的Map,value为Job ID |
resources | 是 | Map | Job资源申请量,两个子元素分别为“cpu”和“memory” |
tool | 是 | String | Job所要用到的工具 |
type | 是 | Enum | Job投递的环境类型。["GCS.job"] |
请求示例
POST /v1/workflows/validate HTTP/1.1
Host:Host Server
Content-Type:application/json
{
"workflow_content": {
"version": "genecontainer_0_1",
"inputs": {
"prepare-command": {
"default": "echo job-prepare",
"description": "执行在所有命令之前的命令",
"type": "string",
"label": "basic"
},
"count": {
"default": 1,
"description": "执行的job个数",
"type": "number",
"label": "basic"
}
},
"workflow": {
"task": {
"type": "GCS.Job",
"tool": "nginx:latest",
"commands_iter": {
"command": "${prepare-command}; echo ${1};",
"vars_iter": ["range(0, ${count})"]
}
}
}
}
} 响应消息
响应参数
响应中含有多个流程结构,结构请参见流程语法说明。
响应示例
{
"version": "genecontainer_0_1",
"inputs": {
"count": {
"default": 1,
"description": "执行的job个数",
"type": "number",
"label": "basic"
},
"prepare-command": {
"default": "echo job-prepare",
"description": "执行在所有命令之前的命令",
"type": "string",
"label": "basic"
}
},
"workflow": {
"task": {
"type": "GCS.Job",
"tool": "nginx:latest",
"image": "nginx:1.14",
"commands_iter": {
"command": "${prepare-command}; echo ${1};",
"vars_iter": [
"range(0, ${count})"
]
},
"depends": null
}
},
"volumes": null,
"outputs": null,
"tools": {
"nginx:latest": {
"type": "container",
"name": "nginx",
"version": "latest",
"image": "nginx:1.14",
"cpu": "2C",
"memory": "8G",
"command": "",
"description": "",
"scope": "domain"
}
} 
