首批通过分布式安全可靠测评,为关键业务系统打造
批量新增主机
更新时间:2023-08-10 11:45:58
功能说明
批量添加主机信息。
调用说明
接口约束
调用者需要具备 HOST_MANAGER 权限。
请求路径
POST /api/v2/compute/hosts/batchCreate
请求参数
| 参数 | 类型 | 必选 | 示例值 | 描述 |
|---|---|---|---|---|
| hostBasicDataList | ObjectArray | 是 | -- | HostBasicData 数组,主机基本信息 |
| sshPort | Integer | 是 | 22 | 主机 SSH 端口 |
| kind | String | 是 | DEDICATED_PHYSICAL_MACHINE | 主机类型,有如下两种: * DEDICATED_PHYSICAL_MACHINE:物理机 * DEDICATED_CONTAINER:容器 |
| publishPorts | StringArray | 否 | 8080:8080,8090,8090 | 端口映射,当 kind 是容器是需要配置容器与物理机的端口映射关系。 |
| idcId | Long | 是 | 100 | 机房 ID |
| typeId | Long | 是 | 1001 | 机型 ID |
| credentialId | Long | 是 | 1001 | 凭据 ID,凭据是 SSH 用来访问主机的信息。 |
| alias | String | 否 | 机器1 | 主机的别名,只有添加单台是才可以设置别名。 |
| description | String | 否 | 测试机器 | 主机描述信息 |
HostBasicData 的数据结构
| 参数 | 类型 | 必选 | 示例值 | 描述 |
|---|---|---|---|---|
| innerIpAddress | String | 是 | xxx.xxx.xxx.xxx | 主机 IP 地址 |
| serialNumber | String | 否 | 6CU4120W67 | 主机序列号 |
返回结果
| 参数 | 类型 | 说明 |
|---|---|---|
| data | Object | 请求的数据 |
| ├─ contents | Array | TaskInstance 的数组,详细数据结构见下表 |
| successful | Boolean | 请求是否成功 |
| timestamp | Datetime | 服务端完成请求的时间戳 |
| duration | Integer | 服务端处理请求的时间(毫秒) |
| status | Integer | 符合 HTTP Status 规范的编码 |
| traceId | String | 请求的 Trace ID,用于排查问题 |
| server | String | 响应请求的应用服务的地址 |
TaskInstance 的数据结构
| 参数 | 类型 | 说明 |
|---|---|---|
| id | Long | 软件包 ID |
| name | String | 软件包名称 |
| clusterId | Long | 集群 ID |
| tenantId | Long | 租户 ID |
| hostId | Long | 主机 ID |
| type | String | 任务类型,有如下可选值: * MANUAL:手动发起的运维任务 * SYS_ONECE:系统执行的单次任务 * SCHEDULED:非内置的定时执行任务 * SYS_SCHEDULED:系统内置定时执行任务 |
| status | Integer | 任务执行状态,有如下可选值: * RUNNING:执行中 * FAILED:执行失败 * SUCCESSFUL:执行成功 |
| creator | String | 任务创建者用户名 |
| operation | String | 任务操作,有如下集中操作: * EXECUTE:正常执行 * RETRY:重试 * ROLLBACK:回滚 * SKIP:跳过 * CANCEL:取消 |
| executor | String | 任务执行节点地址 |
| createTime | String | 任务创建时间 |
| startTime | String | 任务开始时间 |
| finishTime | String | 任务结束时间 |
| prohibitRollback | Boolean | 是否允许回滚 |
| subtasks | ObjectArray | SubtaskInstance 数组,子任务汇总信息 |
SubtaskInstance 的数据结构
| 参数 | 类型 | 说明 |
|---|---|---|
| id | Long | 子任务实例 ID |
| name | String | 子任务名称 |
| seriesId | Long | 子任务序列 ID |
| description | String | 子任务描述信息 |
| timeout | Integer | 子任务超时时间,单位秒 |
| status | String | 子任务状态,有如下几种状态: * PENDING:初始态,等待上游节点执行完成 * READY:准备中,依赖节点已经执行完成,等待执行 * RUNNING:执行中 * CANCELING:取消中 * FAILED:终态,执行失败 * SUCCESSFUL:终态:执行成功 |
| operation | String | 子任务操作,有如下集中操作: * EXECUTE:正常执行 * RETRY:重试 * ROLLBACK:回滚 * SKIP:跳过 * CANCEL:取消 |
| executor | String | 子任务执行节点信息 |
| runTime | Integer | 子任务执行次数 |
| createTime | String | 子任务创建时间 |
| startTime | String | 子任务开始时间 |
| finishTime | String | 子任务结束时间 |
| nodeType | String | 节点类型,如 JAVA_TASK |
| paralleIdx | Integer | 并行子任务索引值,-1 为非并行子任务 |
| upstreams | LongArray | 上游子任务 ID 列表 |
| downstream | LongArray | 下游子任务 ID 列表 |
| prohibitRollback | Boolean | 子任务是否支持回滚 |
示例
请求示例
POST /api/v2/compute/hosts/batchCreate
curl --user <username>:<password> -X POST 'http://<IP>:<PORT>/api/v2/compute/hosts/batchCreate' \
-H 'Content-Type: application/json' \
--data-raw '{"hostBasicDataList":[{"innerIpAddress":"xxx.xxx.xxx.xxx"}],"sshPort":22,"typeId":1,"idcId":1000002,"kind":"DEDICATED_PHYSICAL_MACHINE","credentialId":2000001}' \
返回示例
{
"data": {
"contents": [
{
"creator": "admin",
"executor": "xx.xx.xx.xx",
"hostId": 4000002,
"id": 35006655,
"name": "Prepare host",
"operation": "EXECUTE",
"startTime": "2021-08-25T19:48:49.604+08:00",
"status": "RUNNING",
"subtasks": [
{
"description": "Update host status",
"downstreams": [],
"id": 13006993,
"name": "Update host status",
"nodeType": "JAVA_TASK",
"operation": "EXECUTE",
"parallelIdx": -1,
"prohibitRollback": false,
"runTime": 1,
"seriesId": 4,
"status": "PENDING",
"timeout": 1800,
"upstreams": [
13006994
]
},
{
"description": "Uninstall legacy ocp agent",
"downstreams": [
13006994
],
"id": 13006990,
"name": "Uninstall legacy ocp agent",
"nodeType": "JAVA_TASK",
"operation": "EXECUTE",
"parallelIdx": -1,
"prohibitRollback": false,
"runTime": 1,
"seriesId": 2,
"status": "PENDING",
"timeout": 600,
"upstreams": [
13006991
]
},
{
"description": "Pre check for create host",
"downstreams": [
13006991
],
"id": 13006992,
"name": "Pre check for create host",
"nodeType": "JAVA_TASK",
"operation": "EXECUTE",
"parallelIdx": -1,
"prohibitRollback": false,
"runTime": 1,
"seriesId": 1,
"status": "READY",
"timeout": 1800,
"upstreams": []
},
{
"description": "Install ocp agent",
"downstreams": [
13006993
],
"id": 13006994,
"name": "Install ocp agent",
"nodeType": "JAVA_TASK",
"operation": "EXECUTE",
"parallelIdx": -1,
"prohibitRollback": false,
"runTime": 1,
"seriesId": 0,
"status": "PENDING",
"timeout": 5400,
"upstreams": [
13006990
]
},
{
"description": "Uninstall legacy obagent",
"downstreams": [
13006990
],
"id": 13006991,
"name": "Uninstall legacy obagent",
"nodeType": "JAVA_TASK",
"operation": "EXECUTE",
"parallelIdx": -1,
"prohibitRollback": false,
"runTime": 1,
"seriesId": 3,
"status": "PENDING",
"timeout": 2100,
"upstreams": [
13006992
]
}
],
"type": "MANUAL"
}
]
},
"duration": 1118,
"server": "a83ad33525",
"status": 200,
"successful": true,
"timestamp": "2021-08-25T19:48:49.639+08:00",
"traceId": "93c00223847c4e0a"
}