更新时间:2022-06-15 GMT+08:00
分享

校验流程

功能介绍

校验流程合法性。

URI

POST /v1/workflows/validate

请求消息

请求参数

请求参数如表1所示。

表1 请求参数

参数

是否必选

参数类型

描述

workflow_content

是

表2

需要校验的流程内容。

表2 workflow_content

参数

是否必选

参数类型

描述

inputs

是

表3

流程输入,子元素为输入参数/输入参数属性键值对。

metadata

否

表4

流程中各Job关系定义。

version

是

String

模板版本号。

volumes

是

表5

存储卷。

workflow

是

workflow

流程中每个Job的具体内容。

表3 inputs

参数

是否必选

参数类型

描述

输入参数名

是

表6

输入参数/输入参数属性键值对,key为输入参数名,value结构见表7 输入参数value。

表4 metadata

参数

是否必选

参数类型

描述

Designer

是

表7

每个Job的设计器属性。

relationships

是

表12

各Job依赖关系。

version

是

String

模板版本号。

表5 volumes

参数

是否必选

参数类型

描述

用户自定义卷名称

否

表16

挂载卷的情况,具体结构见表17 卷信息

表6 输入参数value

参数

是否必选

参数类型

描述

default

是

String

默认值

description

是

String

描述信息

type

是

String

参数类型。支持选项:

  • string,类型为字符串。
  • number,类型为数字。
  • bool,类型为布尔值。
  • array,类型为数组。
表7 Designer

参数

是否必选

参数类型

描述

Job

是

Map

每个Job的属性,包括任务属性和连线属性,具体结构见表8 任务元素属性和表11 连线元素属性

表8 任务元素属性

参数

是否必选

参数类型

描述

position

是

表9

元素的锚点坐标。

relateto

否

List

以该Job为起点的依赖关系。

size

是

表10

元素的大小。

z

是

Integer

元素的z坐标。

表9 position

参数

是否必选

参数类型

描述

x

是

Integer

锚点x坐标。

y

是

Integer

锚点y坐标。

表10 size

参数

是否必选

参数类型

描述

width

是

Integer

元素宽度。

height

是

Integer

元素高度。

表11 连线元素属性

参数

是否必选

参数类型

描述

source

是

表12

连线起点元素。

target

是

表12

连线终点元素。

z

是

Integer

元素的z坐标。

表12 端点元素

参数

是否必选

参数类型

描述

id

是

String

端点元素的id

表13 relationships

参数

是否必选

参数类型

描述

Job

是

表14

该Job的依赖和被依赖关系,map中只有一个以“references”为key的键值对,references的具体结构见表15 references。

表14 references

参数

是否必选

参数类型

描述

depends

否

List

该Job所依赖的Job列表,List中每个元素的结构见表16 depends。

relateto

否

List

依赖该Job的Job列表,List中每个元素为Job ID。

表15 depends

参数

是否必选

参数类型

描述

target

是

String

所依赖的任务名,请确保指定的任务名必须存在。

type

是

Enum

依赖方式,可取值为:

  • whole,整体依赖,此为默认值。
  • iterate,迭代式依赖。

例如,如果步骤一和步骤二都并发执行100个容器。

  • 设置whole则表示步骤一全部执行结束后,才能开始执行步骤二。
  • 设置iterate则表示,步骤一的1号执行完成,就可以开始执行步骤二的1号,并行执行,可以提高整体的并发效率。
表16 卷信息

参数

是否必选

参数类型

描述

mount_from

是

Map

挂载卷的来源,Map子元素为以“pvc”为key的键值对,value可使用inputs或系统默认的输入值。

mount_path

是

String

卷挂载到的路径。

表17 Job具体内容

参数

是否必选

参数类型

描述

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"
    }
  }

状态码

  • 正常

    状态码如表18所示。

表18 状态码

状态码

描述

200

流程列表查询成功。

相关文档