美文网首页
策略调度和创建虚机接口 usage

策略调度和创建虚机接口 usage

作者: phyer163 | 来源:发表于2020-06-25 14:58 被阅读0次

一、 策略调度相关接口

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
      }
    ]
}

相关文章

网友评论

      本文标题:策略调度和创建虚机接口 usage

      本文链接:https://www.haomeiwen.com/subject/lbusfktx.html