3.1 初始化客户端
3.1.1 初始化 GCS 对象
GCSClient()
功能描述
创建GCSClient实例。向GCS发送任一请求之前,必须先创建一个GCSClient实例。初 始化的实例中参数值为空,需要通过3.1.2 用户名/密码方式初始化入参或3.1.3 AK/SK 方式初始化入参初始化入参,然后才能通过实例调用GCS提供的其它接口。
输入参数
无
返回值
返回一个GCSClient实例,通过该实例调用GCS提供的接口。
示例
from gcs import GCSClient gcs = GCSClient()
功能描述
使用用户名/密码方式初始化GCSClient中的基础参数,与AK/SK方式二选一即可,为了 更安全的使用,推荐使用AK/SK的方式。
输入参数
参数 是否
必选
参数 类型
参数描述
username 是 String 华为云用户名,如果没有用户名,请填写账 号名。
password 是 String 华为云密码。
project_id 是 String 项目ID domain_name 是 String 华为云账号名
region 否 String 华为云region,默认为北京四"cn-north-4"。
当前GCS支持的Region如下。
● 北京一:cn-north-1
● 北京四:cn-north-4
● 上海二:cn-east-2 project_name 否 String 如有自建项目请填写。
默认值等同于region,无需填写。
项目名称,请参见API凭证。
返回值
无
示例
from gcs import GCSClient gcs = GCSClient()
gcs.set_user_auth_param(username, password, project_id, domain_nam)
3.1.3 AK/SK 方式初始化入参
set_aksk_auth_param(ak, sk, project_id, region, project_name)
功能描述
ak 是 String 用户的Access Key ID,即访问密钥ID,是与 私有访问密钥关联的唯一标识符。访问密钥 ID和私有访问密钥一起使用,对请求进行加 密签名。获取方法请参见访问密钥。
sk 是 String 用户的Secret Access Key,获取方法请参见 访问密钥。
project_id 是 String 项目ID
region 否 String 华为云region,默认为北京四"cn-north-4"
当前GCS支持的Region如下。
● 北京一:cn-north-1
● 北京四:cn-north-4
● 上海二:cn-east-2 project_name 否 String 如有自建项目请填写。
默认值等同于region,无需填写 项目名称,请参见API凭证。
返回值
无
示例
from gcs import GCSClient gcs = GCSClient()
gcs.set_aksk_auth_param(ak, sk, project_id)
3.2 环境
3.2.1 查询 environment 列表
get_environments()
功能描述
查询环境列表。
返回值
响应中含有多个环境结构,每个结构如表3-1所示。
表
3-1 返回值参数
参数 参数类型 描述
guid String 环境ID。
project_id String 环境所属项目ID。
domain_id String 环境所属租户ID。
name String 环境名称。
description String 环境描述。
status String 环境运行状态,分别为:
● Running:运行中
● Abnormal:异常
● Creating:创建中
● Deleting:删除中
● CreatedFailed:创建失败
● DeletedFailed:删除失败 create_at String 环境创建时间。
update_at String 环境更新时间。
cluster_id String 环境所属集群ID。
cluster_name String 环境所属集群名称。
cpu int 环境CPU核数。
memory int 环境内存量。
source String 部署环境的方式,支持如下四种环境。
● cce:云容器引擎
● cci:云容器实例 stack_id String 堆栈ID。
is_gene_cluster bool 是否为部署环境时新创建的集群。
default_env bool 是否为默认环境。
order_id String 若集群为包周期方式购买,order_id展示 购买订单号。
参数 参数类型 描述
cluster_info String 若部署环境的方式为"cce",cluster_info 展示集群信息;若部署环境的方式为
"cci",返回体不存在cluster_info字段。
enterprise_project JSONObj
ec 企业项目,详见表表3-2
表
3-2 enterprise_project
参数 参数类型 描述
id String 企业项目id
name String 企业项目的名称
3.2.2 查询 environment
get_environment(environment_id)
功能描述
查看特定环境详细信息。
输入参数
参数 是否
必选
参数 类型
参数描述
environment_id 是 String 需要查询的环境ID,即get_environments获 得的guid。
返回值
响应中含指定环境的结构,结构如表3-1所示。
3.3 流程
3.3.1 创建 workflow
create_workflow(name, vendor, description, file_obj, epid='0')
功能描述
创建自定义流程,方便后续测序使用。
name 是 String 流程名称,最大长度为40,以小写字母开 头,允许出现中划线(-)、小写字母和数字,
且必须以小写字母或数字结尾。
vendor 是 String 流程上传者,输入字符最大长度为64,中文 算单个字符,不能包含<>()#%&/字符,如果 为空字符串“”,则默认值为租户名称。
description 是 String 流程描述,输入字符最大长度为255,中文算 单个字符,不能包含<>#%&字符,如果为空 字符串“”,则流程描述为空。
file_obj 是 String 流程模板文件的路径,流程模板文件写作请 参考《流程语法参考》。
epid 否 String 流程的企业项目id,默认为“0”,表示 default的企业项目
返回值
参数 参数
类型
参数描述
id Strin
g 流程ID。
3.3.2 删除 workflow
delete_workflow(workflow_id)
功能描述
删除已上传的自定义流程。
输入参数
参数 是否
必选 参数
类型 参数描述
workflow_id 是 String 需要删除的流程id,可以为
create_workflow接口的返回值。
返回值
返回内容为空。
3.3.3 更新 workflow
update_workflow(workflow_id, file_obj=None, vendor=None, description=None)
功能描述
更新自定义流程。
输入参数
参数 是否
必选
参数 类型
参数描述
workflow_id 是 String 流程Id,可以为create_workflow接口的返 回值。
vendor 否 String 流程上传者,如果未填写,默认值为租户名 称。
description 否 String 流程描述,如果未填写,则流程描述文件为 空。
file_obj 否 String 流程文件。
返回值
参数 参数
类型
参数描述
id Strin
g 流程ID。
3.3.4 下载 workflow
download_workflow(workflow_id)
功能描述
下载流程文件。
workflow_id 是 String 流程id,可以为create_workflow接口的返 回值。
返回值
参数 参数
类型 参数描述
无 []byt
e 流程模板文件内容,按照byte数组进行返回,从 Response.Context中读取。
3.3.5 查询 workflow 列表
get_workflows()
功能描述
查询流程列表。
输入参数
无
返回值
响应中含有多个流程的结构,结构如表3-3所示。
表
3-3 workflow 结构
参数 参数
类型
参数描述
id Strin
g 流程ID。
name Strin
g 流程名称。
description Strin
g 流程描述。
vendor Strin
g 流程发布者。
参数 参数 类型
参数描述
scope Strin
g 流程范围。
project_id Strin
g 流程所属项目ID。
domain_id Strin
g 流程所属租户ID。
domain Strin
g 流程所属租户名称。
create_at Strin
g 流程创建时间。
update_at Strin
g 流程更新时间。
workflow_url Strin
g 流程模板文件在OBS桶中的url存储地址,用于下载对 应的流程文件。
logo Strin
g 流程logo。
image Strin
g 流程拓扑图。
enterprise_project JSO NObjec
企业项目,详见表表3-4
表
3-4 enterprise_project
参数 参数类型 描述
id String 企业项目id
name String 企业项目的名称
3.3.6 查询 workflow
get_workflow(workflow_id)
功能描述
查询流程详情。
workflow_id 是 String 流程Id,可以为create_workflow接口的返
id Strin
g 流程ID。
name Strin
g 流程名称。
description Strin
g 流程描述。
vendor Strin
g 流程发布者。
scope Strin
g 流程范围。
project_id Strin
g 流程所属项目ID。
domain_id Strin
g 流程所属租户ID。
domain Strin
g 流程所属租户名称。
create_at Strin
g 流程创建时间。
update_at Strin
g 流程更新时间。
workflow_url Strin
g 流程模板文件在OBS桶中的url存储地址,用于下载对 应的流程文件。
logo Strin
g 流程logo。
参数 参数 类型
参数描述
enterprise_project JSO NObjec
企业项目,详见表表3-6
表
3-6 enterprise_project
参数 参数类型 描述
id String 企业项目id
name String 企业项目的名称
3.3.7 查询 workflow 输入
id 是 String 流程ID,可以为create_workflow接口的返 回值。
返回值
参数 参数类型 参数描述
inputs JSONObj ect,表 3-7
流程输入信息。
表
3-7 input 定义
参数 参数类型 参数描述
default number、array、
String、bool 输入参数默认值。
示。
description String 参数描述。
type String 参数类型,包括number、
array、String、bool。
label String 参数标签。
3.3.8 查询 workflow 工具
get_workflow_tools(workflow_id)
功能描述
查询该流程里包含的工具列表。
输入参数
参数 是否
必选 参数
类型 参数描述
workflow_id 是 String 流程ID,可以为create_workflow接口的返 回值。
返回值
参数 参数
类型
参数描述
tools JSO
NObjec,
见表3-8
流程工具信息列表。
表
3-8 工具描述
参数 参数
类型
参数描述
type Strin
g 类型,分为container(容器)、spark。
参数 参数 类型
参数描述
name Strin
g 工具名称。
version Strin
g 工具版本号。
image Strin
g 镜像地址。
cpu Strin
g CPU推荐值。
memory Strin
g 内存推荐值。
command Strin
g 推荐执行命令。
description Strin
g 工具描述。
scope Strin
g 使用范围,分为public(公开的)、private(私有 的)。
3.4 GCS 流程执行
3.4.1 创建 execution
create_execution(name, workflow_id, sfs_pvc_name, cluster_id="", priority=0, inputs_json={}, namespace="", timeout=720, description="", email=[], sms=[], events=["exec_failed", "exec_succeeded"], email_message="", email_subject="", email_display_name="", sms_message="", image_pull_policy="IfNotPresent", job_retry_count=3, target="cci", epid="0")
功能描述
name 是 String 执行名称,输入字符最大长度为64字节,以 小写字母开头,允许出现中划线(-)、数字和 小写字母,且必须以小写字母或数字结尾。
cluster_id 否 String 集群ID,通过get_environments或者 get_environment(environment_id)获取。
默认为空,创建基于CCE的execution时必 选。
sfs_pvc_name 是 String 高速共享存储PVC名称。
● 环境为CCI时,请打开CCI控制台,在左侧 导航选择“存储管理>文件存储卷”,选 择环境所设置的命名空间,通过“文件存 储名”即可获取到“卷名”,即PVC名 称。
● 环境为CCE时,请在基因容器控制台按下 图方法获取。
priority 否 Int64 execution创建操作优先级,取值范围[0,999]
(包括0和999),0表示优先级最低,999表 示优先级最高,默认值为0。
namespace 否 String 若target为“cce”,该字段表示云容器引擎
(CCE)中已存在的命名空间,如果为空,则 默认为default;若target为“cci”,该字段 表示云容器实例(CCI)中已存在的命名空间 且为必填字段。
description 否 String 执行结果的描述,如果为空,则执行结果的 描述为空。
inputs_json 否 Map 流程输入参数,当为空时,使用流程文件的 inputs中定义的默认值,否则替换流程文件中 的inputs值,例如{"key1":"value1",
"key2":"value2"}。
timeout 否 Int64 超时时间,单位为分钟,如果不填,则默认 是720分钟。
参数 是否
● exec_failed:execution执行失败时发送通 知。
● exec_succeeded:execution执行成功时发 送通知。
email_message 否 String 自定义邮件模板,默认为空,最大长度为360 个字符。支持guid/name/status三个默认参 数,例如:"这是一条简单的模板,execution 的ID为{guid},execution的名称为{name},当 前的状态为{status}“。
email_subject 否 String 自定义邮件主题,默认为空。
email_display_nam
e 否 String 自定义邮件发送者,默认为空。建议设置为
具有意义的发送者,不采用默认值。
sms_message 否 String 自定义短信模板,默认为空。最大长度为360 个字符。支持guid/name/status三个默认参 数,例如:"这是一条简单的模板,execution 的ID为{guid},execution的名称为{name},当 前的状态为{status}“。
image_pull_policy 否 String 镜像拉取策略,可选值为:
● IfNotPresent:本地镜像不存在时,从镜 像库重新拉取镜像。
● Always:总是从镜像库重新拉取镜像。
● Never:不管镜像存不存在,都不从镜像 库重新拉取镜像。
job_retry_count 否 Int64 Job失败时的重试次数,默认3次
target 否 String execution运行环境的类型,默认为“cci”,
可选值为:
● cci:创建基于CCI的execution。
● cce:创建基于CCE的execution。
epid 否 String execution的企业项目id,默认为“0”,表示 default的企业项目
id Strin
g 执行ID。
3.4.2 删除 execution
delete_execution(execution_id)
execution_id 是 String 执行结果ID,为create_execution接口的返 回值。
返回值
返回内容为空
3.4.3 查询 execution
get_execution(execution_id)
execution_id 是 String 执行ID,可以为create_execution接口的返 回值。
返回值
响应中含有一个execution结构,建议通过response.json()方式获取返回值,结构如表 3-10所示。
表
3-10 返回值
参数 参数
类型
参数描述
execution JSO NObject
execution基本属性,详见表3-12。
object JSO
NObject
k8s execution部分,详见表3 K8s execution结构。
status JSO
NObject
节点状态,详见表3-20, 如果为空,则不返回。
enterprise_project JSO NObjec
企业项目,详见表表3-11
表
3-11 enterprise_project
参数 参数类型 描述
id String 企业项目id
name String 企业项目的名称
表
3-12 Execution 基本属性
参数 参数类型 描述
guid String execution guid。
name String execution名称。
namespace String execution所属命名空间。
cluster_name String execution所属集群名称。
cluster_id String execution所属集群ID。
project_id String execution所属项目ID。
domain_id String execution所属租户ID。
description String execution描述。
● Running:处理中
● Cancelling:取消中
● ForceCancelling:强制取消中
● Retrying:重试中
● Succeeded:执行成功
● Failed:执行失败
● Cancelled:取消 workflow_id String 创建execution的流程ID。
● Cancelled:取消 workflow_id String 创建execution的流程ID。