/
batch_client.js
233 lines (232 loc) · 8.69 KB
/
batch_client.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Client = void 0;
/* eslint-disable @typescript-eslint/no-unused-vars */
/*
* Copyright (c) 2018 THL A29 Limited, a Tencent company. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
const abstract_client_1 = require("../../../common/abstract_client");
/**
* batch client
* @class
*/
class Client extends abstract_client_1.AbstractClient {
constructor(clientConfig) {
super("batch.tencentcloudapi.com", "2017-03-12", clientConfig);
}
/**
* 用于查询计算环境的详细信息
*/
async DescribeComputeEnv(req, cb) {
return this.request("DescribeComputeEnv", req, cb);
}
/**
* 用于创建任务模板
*/
async CreateTaskTemplate(req, cb) {
return this.request("CreateTaskTemplate", req, cb);
}
/**
* 创建黑石计算环境
*/
async CreateCpmComputeEnv(req, cb) {
return this.request("CreateCpmComputeEnv", req, cb);
}
/**
* 用于销毁计算节点。
对于状态为CREATED、CREATION_FAILED、RUNNING和ABNORMAL的节点,允许销毁处理。
*/
async TerminateComputeNode(req, cb) {
return this.request("TerminateComputeNode", req, cb);
}
/**
* 用于查询若干个作业的概览信息
*/
async DescribeJobs(req, cb) {
return this.request("DescribeJobs", req, cb);
}
/**
* 查看可用的CVM机型配置信息
*/
async DescribeAvailableCvmInstanceTypes(req, cb) {
return this.request("DescribeAvailableCvmInstanceTypes", req, cb);
}
/**
* 此接口可将已存在实例添加到计算环境中。
实例需要满足如下条件:<br/>
1.实例不在批量计算系统中。<br/>
2.实例状态要求处于运行中。<br/>
3.支持预付费实例,按小时后付费实例,专享子机实例。不支持竞价实例。<br/>
此接口会将加入到计算环境中的实例重设UserData和重装操作系统。
*/
async AttachInstances(req, cb) {
return this.request("AttachInstances", req, cb);
}
/**
* 用于创建计算环境
*/
async CreateComputeEnv(req, cb) {
return this.request("CreateComputeEnv", req, cb);
}
/**
* 用于删除计算环境
*/
async DeleteComputeEnv(req, cb) {
return this.request("DeleteComputeEnv", req, cb);
}
/**
* 将添加到计算环境中的实例从计算环境中移出。若是由批量计算自动创建的计算节点实例则不允许移出。
*/
async DetachInstances(req, cb) {
return this.request("DetachInstances", req, cb);
}
/**
* 用于获取任务多个实例标准输出和标准错误日志。
*/
async DescribeTaskLogs(req, cb) {
return this.request("DescribeTaskLogs", req, cb);
}
/**
* 用于终止作业。
当作业处于“SUBMITTED”状态时,禁止终止操作;当作业处于“SUCCEED”状态时,终止操作不会生效。
终止作业是一个异步过程。整个终止过程的耗时和任务总数成正比。终止的效果相当于所含的所有任务实例进行TerminateTaskInstance操作。具体效果和用法可参考TerminateTaskInstance。
*/
async TerminateJob(req, cb) {
return this.request("TerminateJob", req, cb);
}
/**
* 用于查询指定任务的详细信息,包括任务内部的任务实例信息。
*/
async DescribeTask(req, cb) {
return this.request("DescribeTask", req, cb);
}
/**
* 获取批量计算可用区机型配置信息
*/
async DescribeCvmZoneInstanceConfigInfos(req, cb) {
return this.request("DescribeCvmZoneInstanceConfigInfos", req, cb);
}
/**
* 用于查看一个作业的详细信息,包括内部任务(Task)和依赖(Dependence)信息。
*/
async DescribeJob(req, cb) {
return this.request("DescribeJob", req, cb);
}
/**
* 用于提交一个作业
*/
async SubmitJob(req, cb) {
return this.request("SubmitJob", req, cb);
}
/**
* 用于批量销毁计算节点,不允许重复销毁同一个节点。
*/
async TerminateComputeNodes(req, cb) {
return this.request("TerminateComputeNodes", req, cb);
}
/**
* 用于查询任务模板信息
*/
async DescribeTaskTemplates(req, cb) {
return this.request("DescribeTaskTemplates", req, cb);
}
/**
* 目前对CVM现有实例族分类,每一类包含若干实例族。该接口用于查询实例分类信息。
*/
async DescribeInstanceCategories(req, cb) {
return this.request("DescribeInstanceCategories", req, cb);
}
/**
* 用于删除任务模板信息
*/
async DeleteTaskTemplates(req, cb) {
return this.request("DeleteTaskTemplates", req, cb);
}
/**
* 用于终止任务实例。
对于状态已经为“SUCCEED”和“FAILED”的任务实例,不做处理。
对于状态为“SUBMITTED”、“PENDING”、“RUNNABLE”的任务实例,状态将置为“FAILED”状态。
对于状态为“STARTING”、“RUNNING”、“FAILED_INTERRUPTED”的任务实例,分区两种情况:如果未显示指定计算环境,会先销毁CVM服务器,然后将状态置为“FAILED”,具有一定耗时;如果指定了计算环境EnvId,任务实例状态置为“FAILED”,并重启执行该任务的CVM服务器,具有一定的耗时。
对于状态为“FAILED_INTERRUPTED”的任务实例,终止操作实际成功之后,相关资源和配额才会释放。
*/
async TerminateTaskInstance(req, cb) {
return this.request("TerminateTaskInstance", req, cb);
}
/**
* 用于修改计算环境属性
*/
async ModifyComputeEnv(req, cb) {
return this.request("ModifyComputeEnv", req, cb);
}
/**
* 用于查询指定作业的提交信息,其返回内容包括 JobId 和 SubmitJob 接口中作为输入参数的作业提交信息
*/
async DescribeJobSubmitInfo(req, cb) {
return this.request("DescribeJobSubmitInfo", req, cb);
}
/**
* 查看计算环境的创建信息。
*/
async DescribeComputeEnvCreateInfo(req, cb) {
return this.request("DescribeComputeEnvCreateInfo", req, cb);
}
/**
* 用于查询计算环境的活动信息
*/
async DescribeComputeEnvActivities(req, cb) {
return this.request("DescribeComputeEnvActivities", req, cb);
}
/**
* 用于查看计算环境创建信息列表,包括名称、描述、类型、环境参数、通知及期望节点数等。
*/
async DescribeComputeEnvCreateInfos(req, cb) {
return this.request("DescribeComputeEnvCreateInfos", req, cb);
}
/**
* 用于删除作业记录。
删除作业的效果相当于删除作业相关的所有信息。删除成功后,作业相关的所有信息都无法查询。
待删除的作业必须处于完结状态,且其内部包含的所有任务实例也必须处于完结状态,否则会禁止操作。完结状态,是指处于 SUCCEED 或 FAILED 状态。
*/
async DeleteJob(req, cb) {
return this.request("DeleteJob", req, cb);
}
/**
* 创建黑石计算环境时,查询批量计算环境支持的黑石操作系统信息
*/
async DescribeCpmOsInfo(req, cb) {
return this.request("DescribeCpmOsInfo", req, cb);
}
/**
* 用于查看计算环境列表
*/
async DescribeComputeEnvs(req, cb) {
return this.request("DescribeComputeEnvs", req, cb);
}
/**
* 用于修改任务模板
*/
async ModifyTaskTemplate(req, cb) {
return this.request("ModifyTaskTemplate", req, cb);
}
/**
* 用于重试作业中失败的任务实例。
当且仅当作业处于“FAILED”状态,支持重试操作。重试操作成功后,作业会按照“DAG”中指定的任务依赖关系,依次重试各个任务中失败的任务实例。任务实例的历史信息将被重置,如同首次运行一样,参与后续的调度和执行。
*/
async RetryJobs(req, cb) {
return this.request("RetryJobs", req, cb);
}
}
exports.Client = Client;