一、 策略调度相关接口
1. 发起策略调度
发起策略调度动作,瞬时返回执行状态,耗时操作后台异步写入数据到redis存储,提供额外接口进行状态的查询
方法
POST
路径
http://baseUrl/v1/cloud/policySchedule
参数
名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
idc | string | 是 | null | 可选值:hb30/hb21/hn51... |
innerVlan | int | 是 | null | 目标虚机内网vlanId |
publicVlan | int | 否 | null | 目标虚机公网vlanId,无公网不填 |
businessZone | string | 是 | "backEnd" | 前后端等业务区隔,可选值: "frontEnd" "backEnd" |
platformCode | string | 是 | null | 大业务名(平台代码) |
serviceCode | string | 否 | null | 小业务名(服务代码)没有可不填 |
sourceName | string | 是 | null | 克隆原始虚机的IP地址或者镜像的名称,如果是镜像名称,可选值: 1. centos6 2. centos7 3. win2k12 4. win2k16 5. win2k12App 6. win2k12Game 超出可选值范围将触发错误 |
vCenter | string | 是 | null | 执行策略调度的vCenter环境,可选值: 1. production 2. testing 超出可选值范围将触发错误 |
cpuCores | int | 是 | 0 | 目标虚机cpu核心数 |
memorySize | int | 是 | 0 | 目标虚机cpu内存M数 |
secondDiskSize | int | 否 | 0 | 目标虚机第二存储G数,没有第二存储不填 |
ownerID | string | 是 | null | 责任人ID |
users | string[] | 否 | null | 使用者的ID列表,数组 |
comment | string | 否 | null | 备注 |
orderID | string | 是 | null | 工单ID |
count | int | 是 | 1 | 虚机数量 |
isSSD | bool | 是 | false | 是否ssd |
操作系统和vCenter下镜像的映射关系
os | image |
---|---|
centos6 | TMP_CentOS69_Base${IDC}_ |
centos7 | TMP_CentOS74_Base${IDC}_ |
w2k12 | TMP_W2K12R2_EN_STA_V11${IDC}_ |
w2k12game | TMP_W2K12R2_EN_STA_GAME_V11${IDC}_ |
w2k12app | TMP_W2K12R2_EN_STA_APP_V11${IDC}_ |
w2k16 | TMP_W2K16_EN_STA${IDC}_ |
{
}
返回
// 操作成功
{
"ok": true,
"msg": "成功",
"data": []
}
// 操作失败
{
"ok": false,
"msg": "原因XXX"
}
2. 请求更新策略调度的缓存
审核者手动更新指定的策略调度的缓存结果中的特定条目
方法
POST
路径
http://baseUrl/v1/cloud/policyScheduleResult/update
请求参数
{
"orderID": "7QuihebDamyud",
"recorders": [
{
"number": 3,
"hostIP": "hostName-1",
"dataStoreName": "dataStoreName1"
},
{
"number": 5,
"hostIP": "hostName-2",
"dataStoreName": "dataStoreName2"
},
{
"number": 7,
"hostIP": "hostName-1",
"dataStoreName": "dataStoreName1"
},
{
"number": 9,
"hostIP": "hostName-4",
"dataStoreName": "dataStoreName4"
},
]
}
返回
// 操作成功
{
"ok": true,
"msg": "成功",
"data": []
}
// 操作失败
{
"ok": false,
"msg": "原因XXX"
}
3. 请求重新调度特定条目的策略调度、并在异步动作中更新缓存
通过点击重新策略调度、自动执行调度动作后更新指定的策略调度的缓存结果中的特定条目
方法
POST
路径
http://baseUrl/v1/cloud/policySchedule/redo
请求参数
{
"orderID: "7QuihebDamyud",
"recorders": [
{"number": 3},
{"number": 5},
{"number": 7},
{"number": 9}
]
}
返回
// 操作成功
{
"ok": true,
"msg": "成功",
"data": []
}
// 操作失败
{
"ok": false,
"msg": "原因XXX"
}
4. 查询策略调度和虚机创建的缓存
查询指定的策略调度的缓存结果中的特定条目
方法
POST
路径
http://baseUrl/v1/cloud/policyScheduleResult
请求参数
查询全部记录
{
"orderID: "7QuihebDamyud"
}
或者,查询特定条目记录
{
"orderID: "7QuihebDamyud",
"recorders": [
{"number": 3},
{"number": 5},
{"number": 7},
{"number": 9}
]
}
返回参数
status 的可能结果: 0,1,2,-1, 10,20,-10
id | 描述 |
---|---|
0 | 初始状态 |
1 | 调度执行中 |
2 | 调度完成 |
-1 | 调度失败 |
10 | 创建虚机执行中 |
20 | 创建虚机完成 |
-10 | 创建虚机失败 |
{
"orderID": "7QuihebDamyud",
"recorders": [
{
"number": 3,
"vmName": "TK01_POLY_SCHD_9_11_extra1",
"dnsName": "tk01-poly-schd-9-11-extra1",
"hostIP": "10.172.1.12"
"vmInnerIP": "10.99.9.11",
"vmPublicIP": "172.10.13.47", //可选
"dataStoreName": "dataStoreName1",
"status": 0,
"msg": ""
},
{
"number": 5,
"vmName": "TK01_POLY_SCHD_9_12_extra1",
"dnsName": "tk01-poly-schd-9-12-extra1",
"hostIP": "10.172.1.12"
"vmInnerIP": "10.99.9.12",
"vmPublicIP": "172.10.13.48", //可选
"hostName": "hostName-2",
"dataStoreName": "dataStoreName2",
"status": 0,
"msg": ""
},
{
"number": 7,
"vmName": "TK01_POLY_SCHD_9_13_extra1",
"dnsName": "tk01-poly-schd-9-13-extra1",
"hostIP": "10.172.1.12"
"vmInnerIP": "10.99.9.13",
"vmPublicIP": "172.10.13.49", //可选
"hostName": "hostName-1",
"dataStoreName": "dataStoreName1",
"status": 0,
"msg": ""
},
{
"number": 9,
"vmName": "TK01_POLY_SCHD_9_14_extra1",
"dnsName": "tk01-poly-schd-9-14-extra1",
"hostIP": "10.172.1.12"
"vmInnerIP": "10.99.9.14",
"vmPublicIP": "172.10.13.50", //可选
"hostName": "hostName-4",
"dataStoreName": "dataStoreName4",
"status": 0,
"msg": ""
}
]
}
二、创建虚机相关
1. 请求批量创建虚机
从策略调度的缓存结果集中创建虚机
方法
POST:
路径
http://baseUrl/v1/cloud/vm/created/fromPolicyScheduleResult
请求参数
{
"orderID: "7QuihebDamyud",
"recorders": [
{"number": 0},
{"number": 1},
{"number": 2},
{"number": 3},
{"number": 4},
{"number": 5},
{"number": 6},
{"number": 7},
{"number": 8},
{"number": 9},
{"number": 10}
]
}
返回参数
不等待执行结果,请求发起后即时返回为每个虚机创建任务是否已经开始执行的状态。如果因为不能满足某些前置条件无法创建单个虚机,单个虚机的创建会终止并返回错误。
status 的可能结果: 10,20,-10
id | 描述 |
---|---|
10 | 创建虚机执行中 |
20 | 创建虚机完成 |
-10 | 创建虚机失败 |
{
"ok": true,
"message": "done",
"data": {
"vmList": [
{
"name": "HB30_MC_LVS_0_1",
"status": 10,
"msg": "创建中"
},
{
"name": "HB30_MC_LVS_0_2",
""status": -10,
"msg": "由于某种原因这个虚机创建失败,子任务终止"
},
{
"name": "HB30_MC_LVS_0_3",
"status": 10,
"msg": "创建中"
},
{
"name": "HB30_MC_LVS_0_4",
"status": 10,
"msg": "创建中"
},
{
"name": "HB30_MC_LVS_0_5",
"status": -10,
"msg": "由于某种原因这个虚机创建失败,子任务终止"
},
{
"name": "HB30_MC_LVS_0_6",
"ready": false,
"err": false,
"msg": "创建中"
}
]
}
}
策略调度示例数据:
{
"idc": "tk01",
"innerVlan": 99,
"publicVlan": 9,
"platformCode": "PLCY",
"serviceCode": "SCHD",
"extraCode": "asdf",
"businessZone": "frontEnd",
"sourceName": "centos7",
"vCenter": "production",
"count": 2,
"secondDiskSize": 100,
"cpuCores": 2,
"memorySize": 2048,
"orderID": "Geork4Ogtus",
"comment": "testcomment"
}
curl post 测试示例:
curl --location --request POST 'http://localhost:8080/v1/cloud/policyScheduleResult' \
--header 'Content-Type: application/json' \
--data-raw '{
"orderID": "7QuihebDamyud",
"recorders": [
{
"number": 1
},
{
"number": 2
},
{
"number": 3
},
{
"number": 4
},
{
"number": 5
},
{
"number": 6
}
]
}
网友评论