更新时间: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

流程列表查询成功。

相关文档