5.host-module.md•16.6 kB
# 主机管理API文档
---
## 1. 区域管理
### 1.1 新增区域
**功能说明**
添加主机区域信息。
**接口约束**
需要 `HOST_MANAGER` 权限。
**请求路径**
`POST /api/v2/compute/regions`
**请求参数**
| 参数 | 类型 | 必选 | 示例值 | 描述 |
|--------------|----------|------|--------------|--------------------|
| name | String | 是 | Beijing | 区域名称 |
| description | String | 否 | 北京地区 | 区域描述信息 |
**返回结果**
```json
{
"data": {
"id": Integer,
"name": String,
"description": String,
"createTime": String,
"updateTime": String
},
"successful": Boolean,
"timestamp": Datetime,
"duration": Integer,
"status": Integer,
"traceId": String,
"server": String
}
```
**区域数据结构**
| 参数 | 类型 | 描述 |
|--------------|----------|--------------------|
| id | Integer | 区域ID |
| name | String | 区域名称 |
| description | String | 区域描述信息 |
| createTime | String | 创建时间 |
| updateTime | String | 修改时间 |
**示例**
```bash
curl --user <username>:<password> -X POST 'http://<IP>:<PORT>/api/v2/compute/regions' \
-H 'Content-Type: application/json' \
--data-raw '{"name":"shanghai","description":"上海"}'
```
---
### 1.2 查询区域列表
**功能说明**
查询区域信息列表。
**接口约束**
需要 `HOST_VIEWER` 权限。
**请求路径**
`GET /api/v2/compute/regions`
**请求参数**
| 参数 | 类型 | 必选 | 示例值 | 描述 |
|------|----------|------|--------|----------------------|
| page | Integer | 否 | 1 | 分页页码(从1开始) |
| size | Integer | 否 | 10 | 分页大小(默认10) |
| sort | String | 否 | id,asc | 排序规则 |
**返回结果**
```json
{
"data": {
"contents": [Region对象],
"page": {
"totalElements": Integer,
"totalPages": Integer,
"number": Integer,
"size": Integer
}
},
"successful": Boolean,
"timestamp": Datetime,
"duration": Integer,
"status": Integer,
"traceId": String,
"server": String
}
```
---
### 1.3 查询区域详细信息
**功能说明**
根据区域ID查询区域信息。
**接口约束**
需要 `HOST_VIEWER` 权限。
**请求路径**
`GET /api/v2/compute/regions/{regionId}`
**请求参数**
| 参数 | 类型 | 必选 | 示例值 | 描述 |
|--------------|----------|------|--------|--------------------|
| regionId | Integer | 是 | 100 | 区域ID |
**返回结果**
```json
{
"data": Region对象,
"successful": Boolean,
"timestamp": Datetime,
"duration": Integer,
"status": Integer,
"traceId": String,
"server": String
}
```
---
### 1.4 删除区域信息
**功能说明**
删除区域信息。
**接口约束**
需要 `HOST_MANAGER` 权限。
**请求路径**
`DELETE /api/v2/compute/regions/{regionId}`
**请求参数**
| 参数 | 类型 | 必选 | 示例值 | 描述 |
|--------------|----------|------|--------|--------------------|
| regionId | Long | 是 | 100 | 区域ID |
**返回结果**
```json
{
"successful": Boolean,
"timestamp": Datetime,
"duration": Integer,
"status": Integer,
"traceId": String,
"server": String
}
```
---
## 2. 机型管理
### 2.1 新增机型
**功能说明**
添加主机机型信息。
**接口约束**
需要 `HOST_MANAGER` 权限。
**请求路径**
`POST /api/v2/compute/hostTypes`
**请求参数**
| 参数 | 类型 | 必选 | 示例值 | 描述 |
|--------------|----------|------|--------------|--------------------|
| name | String | 是 | small | 机型名称 |
| description | String | 否 | 2core 16GB | 机型描述信息 |
**返回结果**
```json
{
"data": HostType对象,
"successful": Boolean,
"timestamp": Datetime,
"duration": Integer,
"status": Integer,
"traceId": String,
"server": String
}
```
**机型数据结构**
| 参数 | 类型 | 描述 |
|--------------|----------|--------------------|
| id | Long | 机型ID |
| name | String | 机型名称 |
| description | String | 描述信息 |
| createTime | String | 创建时间 |
| updateTime | String | 修改时间 |
---
### 2.2 查询机型列表
**功能说明**
查询机型信息列表。
**接口约束**
需要 `HOST_VIEWER` 权限。
**请求路径**
`GET /api/v2/compute/hostTypes`
**请求参数**
| 参数 | 类型 | 必选 | 示例值 | 描述 |
|------|----------|------|--------|----------------------|
| page | Integer | 否 | 1 | 分页页码(从1开始) |
| size | Integer | 否 | 10 | 分页大小(默认10) |
| sort | String | 否 | id,asc | 排序规则 |
**返回结果**
```json
{
"data": {
"contents": [HostType对象],
"page": 分页信息
},
"successful": Boolean,
"timestamp": Datetime,
"duration": Integer,
"status": Integer,
"traceId": String,
"server": String
}
```
---
### 2.3 查询机型详细信息
**功能说明**
根据机型ID查询机型信息。
**接口约束**
需要 `HOST_VIEWER` 权限。
**请求路径**
`GET /api/v2/compute/hostTypes/{hostTypeId}`
**请求参数**
| 参数 | 类型 | 必选 | 示例值 | 描述 |
|--------------|----------|------|--------|--------------------|
| hostTypeId | Integer | 是 | 100 | 机型ID |
**返回结果**
```json
{
"data": HostType对象,
"successful": Boolean,
"timestamp": Datetime,
"duration": Integer,
"status": Integer,
"traceId": String,
"server": String
}
```
---
### 2.4 删除机型信息
**功能说明**
删除机型信息。
**接口约束**
需要 `HOST_MANAGER` 权限。
**请求路径**
`DELETE /api/v2/compute/hostTypes/{hostTypeId}`
**请求参数**
| 参数 | 类型 | 必选 | 示例值 | 描述 |
|--------------|----------|------|--------|--------------------|
| hostTypeId | Long | 是 | 100 | 机型ID |
**返回结果**
```json
{
"successful": Boolean,
"timestamp": Datetime,
"duration": Integer,
"status": Integer,
"traceId": String,
"server": String
}
```
---
## 3. 机房管理
### 3.1 新增机房
**功能说明**
添加主机机房信息。
**接口约束**
需要 `HOST_MANAGER` 权限。
**请求路径**
`POST /api/v2/compute/idcs`
**请求参数**
| 参数 | 类型 | 必选 | 示例值 | 描述 |
|--------------|----------|------|--------------|--------------------|
| name | String | 是 | idc-bj | 机房名称 |
| description | String | 否 | 北京机房 | 机房描述信息 |
| regionId | Long | 是 | 100 | 关联的区域ID |
**返回结果**
```json
{
"data": Idc对象,
"successful": Boolean,
"timestamp": Datetime,
"duration": Integer,
"status": Integer,
"traceId": String,
"server": String
}
```
**机房数据结构**
| 参数 | 类型 | 描述 |
|--------------|----------|--------------------|
| id | Long | 机房ID |
| name | String | 机房名称 |
| description | String | 描述信息 |
| regionId | Long | 关联区域ID |
| regionName | String | 关联区域名称 |
| createTime | String | 创建时间 |
| updateTime | String | 修改时间 |
---
### 3.2 查询机房列表
**功能说明**
查询机房信息列表。
**接口约束**
需要 `HOST_VIEWER` 权限。
**请求路径**
`GET /api/v2/compute/idcs`
**请求参数**
| 参数 | 类型 | 必选 | 示例值 | 描述 |
|------|----------|------|--------|----------------------|
| page | Integer | 否 | 1 | 分页页码(从1开始) |
| size | Integer | 否 | 10 | 分页大小(默认10) |
| sort | String | 否 | id,asc | 排序规则 |
**返回结果**
```json
{
"data": {
"contents": [Idc对象],
"page": 分页信息
},
"successful": Boolean,
"timestamp": Datetime,
"duration": Integer,
"status": Integer,
"traceId": String,
"server": String
}
```
---
### 3.3 查询机房详细信息
**功能说明**
根据机房ID查询机房信息。
**接口约束**
需要 `HOST_VIEWER` 权限。
**请求路径**
`GET /api/v2/compute/idcs/{idcId}`
**请求参数**
| 参数 | 类型 | 必选 | 示例值 | 描述 |
|--------------|----------|------|--------|--------------------|
| idcId | Integer | 是 | 100 | 机房ID |
**返回结果**
```json
{
"data": Idc对象,
"successful": Boolean,
"timestamp": Datetime,
"duration": Integer,
"status": Integer,
"traceId": String,
"server": String
}
```
---
### 3.4 删除机房信息
**功能说明**
删除机房信息。
**接口约束**
需要 `HOST_MANAGER` 权限。
**请求路径**
`DELETE /api/v2/compute/idcs/{idcId}`
**请求参数**
| 参数 | 类型 | 必选 | 示例值 | 描述 |
|--------------|----------|------|--------|--------------------|
| idcId | Long | 是 | 100 | 机房ID |
**返回结果**
```json
{
"successful": Boolean,
"timestamp": Datetime,
"duration": Integer,
"status": Integer,
"traceId": String,
"server": String
}
```
---
## 4. 主机管理
### 4.1 批量新增主机
**功能说明**
批量添加主机信息。
**接口约束**
需要 `HOST_MANAGER` 权限。
**请求路径**
`POST /api/v2/compute/hosts/batchCreate`
**请求参数**
| 参数 | 类型 | 必选 | 示例值 | 描述 |
|------------------|--------------|------|------------------------------------------------------------------------|----------------------------------------------------------------------|
| hostBasicDataList| ObjectArray | 是 | `[{"innerIpAddress": "xxx.xxx.xxx.xxx"}]` | 主机基本信息列表 |
| sshPort | Integer | 是 | 22 | SSH端口 |
| kind | String | 是 | DEDICATED_PHYSICAL_MACHINE | 主机类型(物理机或容器) |
| publishPorts | StringArray | 否 | `["8080:8080", "8090"]` | 端口映射(容器类型必填) |
| idcId | Long | 是 | 100 | 机房ID |
| typeId | Long | 是 | 1001 | 机型ID |
| credentialId | Long | 是 | 1001 | 凭据ID(SSH认证信息) |
| alias | String | 否 | 机器1 | 主机别名 |
| description | String | 否 | 测试机器 | 描述信息 |
**返回结果**
```json
{
"data": {
"contents": [TaskInstance对象]
},
"successful": Boolean,
"timestamp": Datetime,
"duration": Integer,
"status": Integer,
"traceId": String,
"server": String
}
```
---
### 4.2 批量删除主机
**功能说明**
批量删除主机信息。
**接口约束**
需要 `HOST_MANAGER` 权限。
**请求路径**
`POST /api/v2/compute/hosts/batchDelete`
**请求参数**
| 参数 | 类型 | 必选 | 示例值 | 描述 |
|--------------|----------|------|--------------|--------------------|
| hostIdList | Long[] | 是 | [1001,1002] | 主机ID列表 |
**返回结果**
```json
{
"successful": Boolean,
"timestamp": Datetime,
"duration": Integer,
"status": Integer,
"traceId": String,
"server": String
}
```
---
### 4.3 查询主机列表
**功能说明**
查询主机信息列表。
**接口约束**
需要 `HOST_VIEWER` 权限。
**请求路径**
`GET /api/v2/compute/hosts`
**请求参数**
| 参数 | 类型 | 必选 | 示例值 | 描述 |
|------------------|--------------|------|------------------------------------------------------------------------|----------------------------------------------------------------------|
| status | String[] | 否 | ["ONLINE", "NEW"] | 主机状态过滤(如:ONLINE, NEW等) |
| keyword | String | 否 | cluster1 | 关键字搜索(主机名、IP、服务信息) |
| includedServiceType | String[] | 否 | ["OB_CLUSTER", "OB_PROXY"] | 包含的服务类型 |
| excludedServiceType | String[] | 否 | ["OB_CLUSTER", "OB_PROXY"] | 排除的服务类型 |
| page | Integer | 否 | 1 | 分页页码(从1开始) |
| size | Integer | 否 | 10 | 分页大小(默认10) |
| sort | String | 否 | "id,asc" | 排序规则(如:id,asc) |
**返回结果**
```json
{
"data": {
"contents": [Host对象],
"page": 分页信息
},
"successful": Boolean,
"timestamp": Datetime,
"duration": Integer,
"status": Integer,
"traceId": String,
"server": String
}
```
---
### 4.4 查询主机详细信息
**功能说明**
根据主机ID查询主机详细信息。
**接口约束**
需要 `HOST_VIEWER` 权限。
**请求路径**
`GET /api/v2/compute/hosts/{hostId}`
**请求参数**
| 参数 | 类型 | 必选 | 示例值 | 描述 |
|--------------|----------|------|--------|--------------------|
| hostId | Long | 是 | 100 | 主机ID |
**返回结果**
```json
{
"data": Host对象,
"successful": Boolean,
"timestamp": Datetime,
"duration": Integer,
"status": Integer,
"traceId": String,
"server": String
}
```
---
### 4.5 删除主机
**功能说明**
删除主机信息。
**接口约束**
需要 `HOST_MANAGER` 权限。
**请求路径**
`DELETE /api/v2/compute/hosts/{hostId}`
**请求参数**
| 参数 | 类型 | 必选 | 示例值 | 描述 |
|--------------|----------|------|--------|--------------------|
| hostId | Long | 是 | 100 | 主机ID |
**返回结果**
```json
{
"successful": Boolean,
"timestamp": Datetime,
"duration": Integer,
"status": Integer,
"traceId": String,
"server": String
}
```