创建时间:2023/3/6 15:58
更新时间:2023/3/6 15:59

云迁移 restful api v2.3.1 简介

控制服务功能: 网页连接, RESTful API连接, 接收其它 Transport服务控制指令。

  1. Transport Server操作系统CentOS
  2. 控制管理服务既可以与Transport服务一起部署,也可以单独部署。

针对不用的模块管理,控制管理服务设置6个URL接收连接请求。

  • https://117.48.207.72/MgmtCloudConnection
  • https://117.48.207.72/MgmtHostConnection
  • https://117.48.207.72/MgmtTransportConnection
  • https://117.48.207.72/MgmtTask
  • https://117.48.207.72/UpdateSetting
  • 所有API请求方法都是POST。
  • 针对以上每类资源管理,管控服务都会内建一个资源的UUID,eg: 在环境配置时每个Cloud环境都会有一个CloudUUID, 每个源主机都会有一个HostUUID,每个复制服务会有REPL_UUID等。

公共参数

所有HTTP请求中,都包含如下公共请求头(HTTP Header)(为减少内容重复,公共参数就不在各API 详情中列出了)。

名称类型是否必需描述
AcceptStringJSON:application/json
Content-TypeString当前请求body的数据类型,JSON:application/json
AuthorizationString用户认证Token。

说明: 用户将Token添加到Authorization头部,作为用户认证凭证。若Token过期,则会提示用户重新登录

用户管理

采用用户名密码进行权限认证, 部署后初次登陆使用默认用户名及密码,登陆后可修改密码。

User Login

URL: https://117.48.207.72/Login

请求参数:

{
    "UserName"     : "admin"
    "Password"     : STRING//6-20个字符,字母、数字和特色符号至少包含两种
}

Response

{
    "Code" : true|false,       //成功 or 失败
    "Msg"  : success or error description, //成功 or 失败
    "Data" :{"Token": "abcdef", "IsFirstLogin": true/false}
}

User Login

URL: https://117.48.207.72/ReAuth

请求参数:

参考公共参数。

Response

{
    "Code" : true|false,       //成功 or 失败
    "Msg"  : success or error description, //成功 or 失败
    "Data" :{"Token": "abcdef", "IsFirstLogin": false}
}

User Logout

URL: https://117.48.207.72/Logout

请求参数:无

Response

{
    "Code" : true|false,       //成功 or 失败
    "Msg"  : success or error description, //成功 or 失败
    "Data" :null
}

ChangePassword

URL: https://117.48.207.72/MgntSetting

请求参数:

{
    "Action"       : "ChangePassword",
    'UserName'     : "admin"
    "Password"      : string //oldpass
    'NewPassword'  : STRING//6-20个字符,字母、数字和特色符号至少包含两种
}

Response

{
    "Code" : true|false       //成功 or 失败
    "Msg"  : STRING           //Error Description
    "Data": null
}

License管理

License授权限制包括License使用时间以及迁移次数的限制。
备注:
1、新建任务,可用迁移次数会减少一次.
2、删除未完成的任务时,改任务占用的迁移次数会被释放,可用迁移次数在任务删除成功后会增加1次,当任务已完成迁移(迁移成功,云端存在恢复虚拟机),删除任务可用迁移次数不变

URL: https://117.48.207.72/MgntSetting

导入/更新License

请求参数:

{
    "Action"         : "UpdateLicense",
    "ActivationKey"  : string,//激活码
}

Response

{
    "Code" : true|false       //成功 or 失败
    "Msg"  : STRING           //Error Description
    "Data": {"Credits":100,"ExpireTime":"2020-01-10T16:10:10+08:00","Id":"a85d6061-e25f-4abc-854b-a6010e99d69f","Used":4}
    '
}

删除License

请求参数:

{
    'Action' : 'DeleteLicense',
}

Response

{
    Code: true | false
    Msg : Success Description or Error Description
    "Data": null
    
}

Get License

请求参数:

{
    'Action'        : 'GetLicense',
}

Response

{
    "Code" : true|false       //成功 or 失败
    "Msg"  : STRING           //Error Description
    "Data": {"Credits":100,"ExpireTime":"2020-01-10T16:10:10+08:00","Id":"a85d6061-e25f-4abc-854b-a6010e99d69f","Used":4}
}

环境部署

Cloud

URL: https://117.48.207.72/MgmtCloudConnection

  • Cloud连接管理目前API仅列出支持华云(公有云AK/SK)以及CU(私有云Openstack)平台类型。

ListCloudType

支持的云平台类型。

请求参数:

{
    'Action': 'ListCloudType',
}

返回参数:

{
    'Code' : 0      //成功 or 失败
    'Msg'  : STRING           //Error Description
    "Data":["Huayun","Openstack", "CloudUltra 4", "ArcherOS 2020"]
}

Add Cloud

新增云连接

请求参数:

{
    'Action'            : 'AddCloudConnection',
    'CloudName'        : STRING, //2~20个字符,支持英文大小写、数字、中文以及下划线,中划线。
    'CloudType'        : Openstack | Huayun | "CloudUltra 4" | "ArcherOS 2020",
    'ProjectName'      : STRING,//For AK/SK认证云环境, 设置为None, CU4项目名称
    'CloudUser'        : STRING,//Keystone user name or ACCESS_KEY
    'CloudPass'        : STRING,//Keystone user password or SECRET_KEY
    'IdentityPort'     : STRING,//Keystone Identity Port, 默认值5000
    'CloudAddr'        : STRING //Keystone Identity Ip Address, or 域名,CU4 API地址
    "OwnerId"          : STRING //CU4项目ID
    "EnvironmentId"    : STRING //CU4云环境ID
    "ZoneId"           : STRING //CU4数据中心ID
    "ZoneName"     : STRING //CU4数据中心名称
    "RegionId"         : STRING //华云公有云的Region Id
    "RegionName"      : STRING // 华云公有云的Region Name
}

Response

{
    'Code' : true|false       //成功 or 失败
    'Msg'  : STRING           //Error Description
    "Data" : {"ID": "123456"}
}

Delete Cloud

删除云连接

说明:如果该云环境中有关联主机作为TransportServer, 则不允许删除。必须先删除Transport Server

请求参数:

{
    'Action': 'DeleteCloudConnection',
    'Id'  :   STRING
}

返回参数:

{

"Code":0,
"Msg":"Delete Cloud af39160548bd4cf9823d3d282dc58674 Success.",
"Data":null
    
}

Update Cloud Connection

请求参数:

{
    'Action'            : 'UpdateCloudConnection',
    'Id'                : STRING,
    'Name'              :String
    'ProjectName'      : STRING,//For Haihe,Project id
    'CloudUser'        : STRING,
    'CloudPass'        : STRING,
    'IdentityPort'     : STRING,
    'CloudAddr'        : HOST_ADDR,
    "EnvironmentId"    : STRING,
    "ZoneId"           : STRING,
    "ZoneName"           : STRING,
    "RegionId"         : STRING          //华云公有云 Region Id
    "RegionName"      : STRING // 华云公有云的Region Name
}

返回参数:

{
    'Code' : true|false,//成功返回True, 失败返回False
    'Msg'  : DESC STRING //Success or Error Code Description
    "Data": null
}

List Cloud

列举所有云环境

请求参数:

{
    'Action'  : 'ListCloudConnection'
    'Name'    : cloud name  //可选
}

返回值:

{
    "Code":   0,
    "Msg" :   "Get All Cloud Connection Success."//success or ErrorMsg
    "Data": [
        {
            "AccountId":"32e964393b1e4518859780c857be4d7d",
            "ID":"ad106d0c2be84a33be3c27fe504c2c86",
            "Name":"huayun",
            "CloudType":"openstack",//平台类型
            "ProjectName":"admin",
            "Domain":"Default",
            "CloudUser":"admin",
            "CloudPass":"cGFzc3cwcmQ=",
            "CloudAddr":"172.16.9.50",
            "IdentityPort":"5000",
            "IdentityUrl":"http://172.16.9.50:5000/v3",
            "CreatedTime":"2018-12-20 13:34:01"//添加时间
            "RegionName":"苏州",                  // 华云公有云
            "RegionId":"cn-suzhou1",              // 华云公有云
        }
    ]
}

说明:如果是AK/SK认证的云环境,则"ProjectName"为None, "CloudAddr"为访问服务域名。

Verify Cloud Connection

Cloud环境连通性检验:

请求参数:

{
    'Action'           : 'VerifyCloudConnection',
    'CloudType'        : STRING
    'ProjectName'      : STRING, //For haihe, Project name
    'CloudUser'        : STRING, //UserName or AccessKey
    'CloudPass'        : STRING,//Password or SecretKey
    'IdentityProtocal' : http | https//默认http
    'CloudAddr'        : STRING //Keystone endpoint IP.或者公有云域名访问地址
    'IdentityPort'     : 5000 //普通用户默认5000
    'ownerId'          : STRING, //For haihe, Project id
    'EnvironmentId'    : STRING, //For haihe
    'zoneId'           : STRING, //For haihe
    'RegionId'         : STRING, //华云公有云的Region
}

Response参数:

{
    'Code': true | false,
    'Msg': "Success." or error Description
    "Data": null
}

List ClouUltra4 Project

请求

{
    "Action"       : "ListProject"
    "APIMgntURL"   : "http://172.16.140.20/api",
    "AccessKey": "admin",
    "SecretKey": "Huayun#123"
    "IsEncrypted": "False"//默认False
}

Response:

{"Code":0,
"Msg":"Get All Project Success.",
"Data":[
    {
        "Name":"cmigrate",
        "ID":"307f849c-e931-4e4a-a96f-076e05276b9c"
    },
    {
        "Name":"lipf_test",
        "ID":"ae30f3a2-4f0e-4475-9d55-579c8eaf1249"
    }
]

ListEnvironment

请求

{
    "Action": "ListEnvironment",
    "APIMgntURL": "http://172.16.140.20/api",
    "AccessKey": "admin",
    "SecretKey": "Huayun#123",
    "IsEncrypted": "False"//默认False
    "HypervisorType": "KVM" //KVM |VMWARE , 华泰项目只需列出kvm类型
}

Response:

{
    "Code":0,
    "Msg":"Get All Environments Success.",
    "Data":[{"Name":"KVM","ID":"1"}]
    
}

ListZone

请求

{
    "Action"         : "ListZone"
    "APIMgntURL"     : "http://172.16.140.20/api",
    "AccessKey"      : "admin",
    "SecretKey"      : "Huayun#123"
    "IsEncrypted": "False"//默认False//密码是否加密
    "EnvironmentId"  : "12345"
    "OwnerId"        : "12345"
}

Response:

{
"Code":0,
"Msg":"Get All Zone Success.",
"Data":[
        {
            "Name":"cmigrate",
            "ID":"307f849c-e931-4e4a-a96f-076e05276b9c"
        },
        {
            "Name":"lipf_test",
            "ID":"ae30f3a2-4f0e-4475-9d55-579c8eaf1249"
        }
   ]
    
}

ListRegion

//huayun专属
请求

{
    "Action"         : "ListRegion"
    "AccessKey"   : "ak"
    "SecretKey"   : "sk"
    "isEncrypted"  : "False"//默认False//密码是否加密
}

Response:

{
"Code":0,
"Msg":"Get All Region Success.",
"Data":[
        {
            "Name":"苏州",
            "ID":"cn-suzhou1"
        },
   ]
}

Transport

URL:https://117.48.207.72/MgmtTransportConnection

最低服务器要求:

  • 操作系统: Centos7
  • 配置要求:1cpu,1GB内存,5GB存储

AddTransportServer

Transport Server分两种类型,一种是待迁移源端内部部署(On-Premises类型), 一种是迁移目标端部署(必需)。

请求参数:

{
    'Action'     :'AddTransportServer',
    'ServType'  : "On-Premises" | "Cloud"
    'Name'       : STRING,//用户输入
    'CloudId' : CLOUD_UUID,//如果是On-Premises类型,则设为NULL
    'MgntAddr' : Host Address, //Transport Address
}

返回参数:

{
    'Code' : true|false,//成功返回True, 失败返回False
    'Msg'  : DESC STRING //Success or Error Code Description
    "Data"  : {"ID": "1234"}
}

VerifyTransportService

{
    'Action'     : 'VerifyTransportConnection',
    'MgntAddr' : 'IP_ADDRESS' //Transport 管理IP
}

返回参数:

{
    'Code' : true|false,//成功返回True, 失败返回False
    'Msg'  : DESC STRING //Success or Error Code Description
    "Data": null
}

DeleteTransportServer

说明:如果Transport Server有关联源主机,则禁止删除。

请求参数:

{
    'Action'        :'DeleteTransportServer',
    'Id'    :STRING,
}

返回参数:

{
    'Code' : true|false,//成功返回True, 失败返回False
    'Msg'  : DESC STRING //Success or Error Code Description
    "Data": null
}

RefreshTransportServer

请求参数:

{
    'Action' : 'RefreshTransportServer',
    'Id': STRING
}

返回参数:

{
    'Code' : true|false,//成功返回True, 失败返回False
    'Msg'  : DESC STRING //Success or Error Code Description
    "Data": null
}

UpdateTransportServer

请求参数

{
    'Action'      : 'UpdateTransportServer',
    'Id'  : STRING,
    'Name'        : STRING
}

返回参数:

{
    'Code' : true|false,//成功返回True, 失败返回False
    'Msg'  : DESC STRING //Success or Error Code Description
    "Data" : null
}

ListTransportServer

请求参数:

{
    'Action'  : 'ListTransportServer',
    'Ip'      : STRING//可选, 根据IP过滤
    'Name'    : STRING //可选,根据名称过滤
    'ServType': STRING //可选,根据类型过滤 "on-premises" | ”cloud“
}

返回参数:

{

    'Code' : true|false,//成功返回True, 失败返回False
    'Msg'  : DESC STRING //Success or Error Code Description
    "Data" : {
        [
            'Id'            : STRING,
            'Name'          : STRING,
            'CloudName'      : CLOUD_UUID,//如果是On-Premises类型,则设为NULL
            'ServType'       : "on-premises" | ”cloud“
            'MgntAddr'       : HOST_ADDR,
            'CreatedTime'     : YYYY-MM-DD HH-MM-SS            //添加时间
            'MaxSupportedTasks'    :  int32    //支持的最大任务数量, v2.0添加
            'CurrentTasks'     :  int32   // 当前正在运行的任务数量, v2.0添加
            StorageId:  string,       // 当前transport所在的存储的id, v2.2添加
            StorageType:  string,   // 当前transport所在的存储的类型, v2.2添加
        ],
        ...
    }
}

备注:StorageType 有  LOCAL,ARSTOR,FCSAN,IPSAN,XSKY

源主机

URL:https://117.48.207.72/portal/MgmtHostConnection

AddPackerHost

与TransportServer交互必要参数在添加的时候记录到数据库。
网络信息,磁盘信息等。

请求参数:

{
    'Action'        : 'AddPackerHost',
    'Name'          : STRING //32
    'TransId'       : UUID, //transport server uuid
    'MgntAddr'     : PACK_NIC_ADDR,
}

返回参数:

{
    'Code' : true|false,//成功返回True, 失败返回False
    'Msg'  : DESC STRING //Success or Error Code Description
    "Data": {"ID": "1234"}
}

DeletePackerHost

说明:正在执行复制任务的源主机不允许删除

请求参数

{
    'Action'     : 'DeletePackerHost'
    'Id'  : STRING
}

返回参数:

{
    'Code' : true|false,//成功返回True, 失败返回False
    'Msg'  : DESC STRING //Success or Error Code Description
    "Data": null
}

RefreshPackerHost

请求参数:

{
    'Action' : 'RefreshPackerHost',
    'Id': STRING
}

返回参数:

{
    'Code' : true|false,//成功返回True, 失败返回False
    'Msg'  : DESC STRING //Success or Error Code Description
    "Data": null
}

VerifyPackerConnection

验证源主机的连通性

请求参数

{
    'Action'     : 'VerifyPackerConnection'
    'HostId'    : STRING
    'TransAddr'  : STRING
}

返回参数:

{
    'Code' : true|false,//成功返回True, 失败返回False
    'Msg'  : DESC STRING //Success or Error Code Description
}

UpdatePackerHost

修改所选Packer源主机信息

请求参数:

{
    'Action'     : 'UpdatePackerHost',
    'TransId'    : STRING,
    'Id'         : STRING,
    "Name"       : string
}

返回参数:

{
    'Code' : true|false,//成功返回True, 失败返回False
    'Msg'  : DESC STRING //Success or Error Code Description
    "Data": null
}

ListHosts

列出可用源主机列表。

请求参数:

{
    'Action'    :'ListHosts'
    'Name'      : STRING        //可选,根据名称过滤
    'MgntAddr'  : STRING        //可选,根据IP过滤
    "TaskFree"  : bool          //可选,默认为false, 当置为true时返回可迁移主机列表
}

Response:

必要参数:PACK_NAME, PACK_ADDR, OS_TYPE, DISK_SIZE,TIMESTAMP

{
    'Code' : true|false,//成功返回True, 失败返回False
    'Msg'  : DESC STRING //Success or Error Code Description
    "Data": 
    {
        "AgentHosts":
        [
            {
                "ID":           string  // "fc76c6c0-2bc7-4b19-b1cc-20f628549197",
                "Name":         string  // "host-10-10-10-47", //主机名称
                "MgntAddr":     string  // "117.48.144.17",    //PACKER管理IP
                "OsName":       string  // "LINUX",
                "TotalSize":    int64   // 150323855360, //系统盘+数据盘
                'CreatedTime':  string  // YYYY-MM-DD HH-MM-SS            //添加时间
                'Agent' :       bool    // 标记有无代理
                'Offline' :     bool    // 标记离线在线
            }
        ],

        "VSPlatforms":
        [
            {
                "ID":           string  // "fc76c6c0-2bc7-4b19-b1cc-20f628549197",
                "Name":         string  // "host-10-10-10-47", //主机名称
                "Ip":           string  // "117.48.144.17",    //PACKER管理IP
                "IsVcenter":    bool
                "CreatedTime":  string
            }
        ]
    }
}

GetPackerHost

所选Packer源主机详细信息

请求参数:

{
    'Action'            : 'GetPackerHost',
    'Id'         : STRING,
}

返回参数:
这里列出的是主要参数

{
    'Code' : true|false,//成功返回True, 失败返回False
    'Msg'  : DESC STRING //Success or Error Code Description
    "Data":{
        "Id"           : "fc76c6c0-2bc7-4b19-b1cc-20f628549197",
        "Name"         : "host-10-10-10-47", //主机名称
        "MgntAddr"     : "117.48.144.17",    //packer管理ip
        "TransName"    : "trasnport name",
        "TransId"      : string,    // transport id
        "TransAddr"    : string,    // transport ip
        "OsType"       : "linux",
        "OsName"       : "linux",
        "CPU"          : int
        "Sockets"      : int
        "Memory"       : int
        "Manufacturer" : string
        "TotalSize"    : 100GB, //系统盘+数据盘
        "HostType"     : "physical", //本地还是openstack ??
        'CreatedTime'  : yyyy-mm-dd hh-mm-ss            //添加时间
        'Agent'        : bool       // 标记有无代理
        'Offline'      : bool       // 标记离线在线
        "InTask"       : bool       // 是否处于任务当中。若是,则无法创建迁移任务
        "CanNotMigrate": bool       // 是否 不可以创建迁移任务
        "Note"         : string     // 备注,可能是不能创建迁移任务的原因等等信息
        "VolumeInfos": [{
                "Path"      : "/dev/vdb",
                "Type"      : "lvm|partation|disk|dmraid|raid",
                "Filesystem": "ext2/ext3/ext4/xfs/other",
                "Capacity"  : 1024000,
                "UseType"  : boot|root|data,
                "FreeSpace": 1024000
                "FreeSpaceNotEnough": true/flase,
                "CanNotBeMigrated": bool,
                "CanNotBeMigratedReason": string,
        }],

        // 以下仅无代理使用
        "VMHostUuid":     string      // vmware 虚机的uuid
        "NetInterfaces":
        [
            {
                "Mac":    string    // 网口mac地址   
                "SubNets": 
                [
                    {
                        "Ip": string
                    }
                ]
            }
        ],
        "OpaqueNetWorkInfos":
        [
            {
			"Value": "network-o106",
			"Name": "yangseg2",
			"OpaqueNetworkId": "95b57855-eba4-4689-87ab-1a31d4c2d38d"
            }
        ]
    }
}

Replication Process Management

URL: https://117.48.207.72/MgmtTask

PrepareTaskWorkload

默认压缩和QOS关闭。

请求参数:

{
    'Action'               : 'PrepareTaskWorkload', 
    'Name'                 : string //复制任务名称
    'Priority'             : int
    'HostId'               : string,   //源端uuid
    'CloudId'              : string,   //源端uuid
    'SrcTransId'           : hostuuid, //非直传模式中转服务器uuid。
    'TargetTransId'        : hostuuid,
    'StorageId'            : string,  // v2.1添加, v2.2暂不使用
    'IntervalMinutes'      : int
    'MaxSnapsNum'          : int
    'StartTime'            : 'yyyy-mm-dd hh:mm' //任务触发时间
    'IsCompressed'         : bool
    'QosLimit'             : int                // mb/s, 带宽限制
    'FlavorId'             : string             // target vm flavor id(可选, CPU&Memory二选一)
    'NetworkId'            : string             // network id
    'SubnetId'             : string             // subnetwork id
    'RouteId'              : string             // 可选,for huayun 公有云
    'SecurityGroupId'      : string             // security group id (可选,For海河不需要)
    "CPU"                  : int                // 可选, 与FlavorId二选一
    "Sockets"              : int
    "Memory"               : int
    "BandWidth"            : int
    "TargetServerName"     : string   // 云端虚机名称   ,v2.0添加

    'VolumeInfos':
    [
        {
            'VolumeName':       string      // "/dev/vda",
            'VolumeType':       string      // 支持自定义云硬盘类型
            'VolumeSize':       string      // GB
            'CloudVolumeName':  string      // 云端磁盘名称   ,v2.0添加
            'PreAlloc':         bool        // v2.1
        }
    ]

    "NetInterfaces":                    // only for vsphere no agent migrate now
    [
        {
            "NetworkId":        string
            "SecurityGroupId":  string
            "Mac":              string
            "SubNets":
            [
                {
                    "SubnetId":     string
                    "Ip":           string
                }
            ]
        }
    ]
}

返回参数:

{
    'Code' :  int        //成功返回 0,   目标主机重名返回1, 目标云硬盘重名返回 2
    'Msg'  : DESC STRING //Success or Error Code Description
    "Data": {
        "ID": "taskid",  
        "Repeated":[],  # v2.0 添加,重复的主机名或者云硬盘名称
     }
}

Delete Migration Task

请求参数:

{
    'Action'    : 'DeleteTask'
    'Id' : STRING
}

返回参数:

{
    'Code' : true|false,//成功返回True, 失败返回False
    'Msg'  : DESC STRING //Success or Error Code Description
    "Data": null
}

Update Task Setting

1、任务开始之前1分钟允许修改快照间隔和开始时间以及云硬盘类型\快照个数,否则禁止修改

==(now-StartTime) < 60s不允许修改IntervalMinutes、StartTime、MaxSnapNum==

2、主机规格和网络是在恢复之前可以修改的,开始完成任务做恢复后不可以再修改了

==(ActionState=1007)不允许修改FlavorId、NetworkId、SubnetId、SecurityGroupId==

{
    'Action'            : 'UpdateTask'
    'Id'                : string
    'Name'              : string
    'IntervalMinutes'   : int
    'MaxSnapNum'        : int
    'StartTime'         : string    // 'yyyy-mm-dd hh:mm:ss'
    'FlavorId'          : string    // target vm flavor id
    'NetworkId'         : string    // network id
    'SubnetId'          : string    // subnetwork id
    'RouteId'           : string    // route id, for huayun 公有云, 可选参数
    'SecurityGroupId'   : string    // security group id
    "AggregateId"       : string
    "CPU"               : 2,
    "Sockets"           : int
    "Memory"            : int       //单位GB
    "BandWidth"         : int
    "TargetServerName"  : string    // 云端虚机名称   ,v2.0添加
    "Priority"          : int
    "NetInterfaces"     :           // only for vsphere no agent migrate now
    [
        {
            "NetworkId":        string
            "SecurityGroupId":  string
            "Mac":              string
            "SubNets":
            [
                {
                    "SubnetId":     string
                    "Ip":           string
                }
            ]
        }
    ]
}

返回参数:

{
    'Code' :  int        //成功返回 0,   目标主机重名返回1
    'Msg'  : DESC STRING //Success or Error Code Description
    "Data": {
        "ID": "taskid",  
        "Repeated":[],  # v2.0 添加,重复的主机名
     }
}

List Tasks

请求参数:

{
    'Action'    : 'ListTasks',
    'Name'      : task name, //可选
    'SrcHost'  : source host name, //optional
    'PageLimit':integer, //page limit, 默认20
    'PageNum'  : integer, //page number
}

返回参数:

    data: 
    {
        'AgentTasks':
        [
            {
             'Name'             : string,
             'Id'               : string,
             'HostName'         : string,
             'HostAddr'         : string,
             'ProgressPrecent'  : string,
             'UpdatedTime'      : yyyy-mm-dd hh:mm:ss,
             'CreateTime'       : yyyy-mm-dd hh:mm:ss,
             'StartTime'        : yyyy-mm-dd hh:mm:ss,      // v2.0添加
             'Status'           : string,
             'ActionState'      : Int   //  V2.0,新增 值为1003, 表示任务已暂停,显示重试按钮
             'LastSync'         : Int   //取值范围0,1,2, 默认为0, 当LastSync==1时表示触发了最后一次数据同步, 当LastSync==2时表示最后数据同步已经正式开始进行。。
             "SnapTimes"        :3,//默认为0, 数据迁移次数,当SnapTimes==1时表示正在进行首次全量,这时不可执行完成迁移的操作。
             'Offline'          : bool 
             'Agent'            : bool 
             'PredictDoneTime'  :    int64  # v2.0添加,显示数据传输剩余时间,单位是秒
             'SnapshotSize'     : int64       # v2.0添加,显示当前数据传输的总数据量,单位是byte
             'TransferedSize'   : int64     # v2.0添加,显示当前传输中已传输的数据量,单位是byte
            },
        ]
        'VSTasks':
        [
            {
                "ID":           string  // "fc76c6c0-2bc7-4b19-b1cc-20f628549197",
                "Id":           string  // same with "ID", make it easy for web, not delete
                "Name":         string  // "host-10-10-10-47", //主机名称
                "Ip":           string  // "117.48.144.17",    //PACKER管理IP
                "IsVcenter":    bool
                "CreatedTime":  string
                'Tasks':
                [
                    同上述 AgentTasks 中的数据内容
                ]
            }
        ]
        'TaskTotal'        : integer,//count of total tasks
        'TaskInProcess'   : integer,//count of tasks in process
        'TaskDone'         : integer,//count of comleted tasks
    }

ActionState 范围:const (
    TaskCreated       = 1000  //Setup Task
    TaskWaitSnapshot  = 1001             //Cloud Volume Ready or rpc recieve progress=100%
    TaskSnapshotted     1002           //After Call Transport Create Snapshot
    TaskError           1003           //Error occured
    TaskStopped         1004          //when delete task
    TaskSuccess         1005           //after create instance available
    TaskExcuteV2V       1006          //call transport to do v2v
    TaskWaitRecovery    1007          //after v2v success
    TaskInRecovery      1008          //call create instance
    TaskCompleted       1009            //after create vm.
)

Get Task Detail

请求参数:

{
    'Action'    : 'GetTaskDetail',
    'Id'        : STRING //Task uuid
}

返回参数:

{
    "Code":0,
    "Msg":"Get Task Details Success.",
    "Data":{
        "Id":               string          // "5358999805",
        "Name":             "Task01"
        "Priority":         int             // 值越大,优先级越高
        "Type":             string          // online or offline
        "Offline":          bool            // 和 Type 相同的作用,不清楚前端用了哪一个
        'Agent':            bool
        "CloudId":          string
        "CloudName":        string
        "CloudType":        string          // "openstack",
        "IntervalMinutes":  10,
        "StartTime":        "2018-12-25 10:20:03",
        "SnapTimes":        3,//默认为0, 数据迁移次数,当SnapTimes==1时表示正在进行首次全量,这时不可执行完成迁移的操作。
        "MaxSnapNumber":    3,
        "ProgressPrecent":  "100%",
        'PredictDoneTime':  int64           // v2.0添加,显示数据传输剩余时间,单位是秒
        'SnapshotSize':     int64           // v2.0添加,显示当前数据传输的总数据量,单位是byte
        'TransferedSize':   int64           // v2.0添加,显示当前传输中已传输的数据量,单位是byte
        "LastSync":         int             // 当LastSync==2时,ProgressPrecent才是完成迁移进行最后数据同步的进度
        "Status":           string          // "Create Cloud Volume Snapshot Failed.",
        "ActionState":      int             // 1009,
        "IsCompressed":     bool
        "QosBW":            int             // 单位 MB/s
        "SourceHost":{
            "Name":         string          // "Packe02",
            "MgntAddr":     string          // "172.16.57.68",
            "OsName":       string          // "CentOS Linux release 7.2.1511 (Core)",
            "Offline":      bool            // v1.3添加
            "Agent":        bool            // v1.3添加
            "VmwareIp":     string          // vcenter ip地址,  v1.3添加
            "VmwareUser":   string          // vcenter ip地址,  v1.3添加
            "HostUuid":     string          // vmware vm uuid in vspherer platform
            "VolumeInfos": 
            [
                {
                    "Path":             string  // "/dev/vda1"
                    "Size":             string  // "80GB"
                    "UseType":          string  // "root"
                    "VolumeType":       string  //
                    "CloudVolumeName":  string  // 云端磁盘名称   ,v2.0添加
                    "StorageId":        string  //
                    "PreAlloc":         string  //
                    "PageSize":         string  //
                    "Compression":      string  //
                    "ReadCache":        string  //
                    "BandWidth":        string  //
                    "Iops":             string  //
                },
            ]
            "NetInterfaces":                    // only for vsphere no agent migrate now
            [
                {
                    "NetworkId":        string
                    "SecurityGroupId":  string
                    "Mac":              string
                    "SubNets":
                    [
                        {
                            "SubnetId":     string
                            "Ip":           string
                        }
                    ]
                }
            ]
         },
        "TargetHost":{
            "DataCenter":       string
            "ServerID":         string  // 云端虚机id
            "ServerName":       string  // 云端虚机名称, v2.0 可以设置
            "Flavor":           string
            "BandWidth":        int
            "Network":          string  // "88f001dd-1c42-4eba-9ebc-05e2a57c02ae",
            "Subnet":           string  // "88f001dd-1c42-4eba-9ebc-05e2a57c02ae",
            "SecGroup":         string  // "default",
            "CPU":              int     // 4,
            "Sockets":          int
            "Memory":           int     // GB
            "StorageId":        string
            "AggregateId":      string
         },
        "SrcTransHost":{
             "Name":            string  // "Transport",
             "MgntAddr":        string
         },
        "TransHost":{
             "Name":            string  // "Transport",
             "MgntAddr":        string  // "172.16.57.27", 
             "StorageId:        string
             "StorageType:      string
        }
    }
}

// note
ActionState
enum (
    TaskCreated      = 1000        //Setup Task
    TaskWaitSnapshot               //Cloud Volume Ready or rpc receive progress=100%
    TaskSnapshotted                //After Call Transport Create Snapshot
    TaskStopped                    //stop create instance due to cloud network or ak/sk error
    TaskSuccess                    //after create instance available
    TaskExcuteV2V                  //call transport to do v2v
    TaskWaitRecovery               //after v2v success
    TaskInRecovery                 //call create instance
    TaskError                      //Error occured
    TaskCompleted                  //after create vm or after error occured,task finished
)


CompleteTask

至少全量数据迁移完成后才可以进行操作。(SnapTimes >=2 或者Process==100%)

请求参数

{
    'Action'        : 'CompleteTask'
    'Id'            : STRING,
}

Response:

{
   'Code': true | false
   'Msg' : Success or error description
   "Data": null
}

ContinueTask

V2.0 新增
请求参数:

{
    'Action'                   : 'ContinueTask'
    "Id"                         : string, //TaskID
}

返回参数:

{
    'Code' :  int        //成功返回 0,
    'Msg'  : DESC STRING //Success or Error Code Description
}

CheckTaskInfoExisting

v2.0新增

请求参数:

{
    'Action'                : 'CheckTargetHostInfoExisting', 
    'CloudId'               : string,   //云平台 uuid
    'TaskName'              : string,  // 任务名称
    'TargetServerName'      : string // 云端虚机名称   ,v2.0添加
    'CloudVolumeNames'      : []string // 云端磁盘名称   ,v2.0添加
    'NetInterfaces'         :
    [
        {
            "NetworkId":        string
            "SecurityGroupId":  string
            "Mac":              string
            "SubNets":
            [
                {
                    "SubnetId":     string
                    "Ip":           string
                }
            ]
        }
    ]
}

返回参数:

{
    'Code'  : int        //成功返回 0,   重名返回1
    'Msg'   : DESC STRING //Success or Error Code Description
    "Data"  :
    {
        "TaskNameExisted":      ""
        "ServerNameExisted":    ""          // v2.0 添加,如果云主机名称重复,值为主机名,否则为""
        "VolumeNameExisted":    []string    // v2.0 添加,重复的云硬盘名称
        "MacExisted":           []string    // 在云平台上重复的mac地址
        "IpExisted":
        [
            {
                "NetworkId":    string
                "Ips":          []string
            }
        ]
     }
}

CheckTasksInfoExisting

v2.3新增

请求参数:

{
    'Action'                : 'CheckTasksInfoExisting', 
    'CloudId'               : string,   //云平台 uuid
    'Data'                  :
    [
        {
            'HostId':               : string    // HostId作为唯一标识符
            'TaskName'              : string    // 任务名称
            'TargetServerName'      : string    // 云端虚机名称
            'CloudVolumeNames'      : []string  // 云端磁盘名称
            'NetInterfaces'         :
            [
                {
                    "NetworkId":        string
                    "SecurityGroupId":  string
                    "Mac":              string
                    "SubNets":
                    [
                        {
                            "SubnetId": string
                            "Ip":       string
                        }
                    ]
                }
            ]
        }
    ]
}

返回参数:

{
    'Code'  : int        //成功返回 0,   重名返回1
    'Msg'   : DESC STRING //Success or Error Code Description
    "Data"  :
    [
        {
            "HostId":               string      // HostId作为唯一标识符
            "TaskNameExisted":      string      // 如果任务名称重复,值为任务名,否则为""
            "ServerNameExisted":    string      // 如果云主机名称重复,值为主机名,否则为""
            "VolumeNameExisted":    []string    // 重复的云硬盘名称
            "MacExisted":           []string    // 在云平台上重复的mac地址
            "IpExisted":
            [
                {
                    "NetworkId":    string
                    "Ips":          []string
                }
            ]
        }
    ]
}

DisplayTaskHistory

请求参数

{
    'Action'        : 'DisplayTaskHistory'
    'Id'     : string,
}

Response:

{
   'Code': true | false
   'Msg' : Success or error description
   "Data": [
        {
       
            'Number'        : int  //编码
            'Msg'           :  STRING,//status description
            'Timestamp'     :  YYYY-MM-DD HH:MM:SS,
        }
    ]
}

ListAvailableSnapshot

请求参数

{
    'Action' : 'ListSnapshots'
    'Id'     : STRING, //TASKID
}

Response:

{
    "Code":0,
    "Msg":"Get Task Snapshots Success.",
    "Data":[{
        "TimeStamp":"2018-12-29 18:36:25" //列表显示快照时间戳
    }]

ListVolumeTypes

请求:

{
    'Action'   : 'ListVolumeTypes'
    'Id'  : Cloud STRING,
    StorageId:  string,
}

Response:

{
    'Code' : true|false,//成功返回True, 失败返回False
    'Msg'  : DESC STRING //Success or Error Code Description
    "Data":  [{
                    'Name'  :"Capacity", 
                    'ID'    : "1234"
    }]
}

ListStorages

v2.2新增
请求:

{
    'Action'   : 'ListStorages'
    'Id'  : Cloud id, STRING,
    StorageId:  string,
}

Response:

{
    'Code' : 0,
    'Msg'  : DESC STRING //Success or Error Code Description
    "Data":  [{
                    'Name'  :"arstor", 
                    'ID'    : "123423123",
                    'Type':  "",
    }]
}

ListInstanceFlavors

请求:

{
    'Action'   : 'ListFlavors'
    'Id'       : Cloud STRING,
}

Response:

{
    'Flavors' : 
    [
        {
            'Name'  : 2核4G_SERIES_STANDARD 或者 2核4G_SERIES_SUPERCOMPUTER 等  // 界面显示为 2核4G_普通型, 2核4G_增强型
            'Ram'   :1024 //mb,
            'vCPU'  : 1,
            'ID'    : 2核4G_SERIES_STANDARD   ,   //openstack uuid, 华云公有云
            'Disk'  : 20,
        },
    ]
}

# 华云 公有云 只是使用  Name 和 ID, Name 和 ID 相同

ListNetwork

请求

{
    'Action'      : 'ListNetworks'
    'Id' : STRING,
}

Response:

{
    'Networks': [{
        'Subnets': [{
                        'Cidr': '192.168.1.0/24',
                        'Id': "2d6e3002-410e-4dd2-98cd-04c7f310a4d0"
                    },
                    {
                        'Cidr': '192.168.2.0/24',
                        'Id': "fe7a1873-f41b-4125-9ccf-798dd8a678a3"
                    }],
        'Name': 'my_vpc',
        'Id'  : "3a90ae79-9b69-4b79-b7b9-5ad5f105bfd5",
        "Ref" : "500d9435-d3db-7bb1-c32a-fbe807fc7faf"
    }]
}

List Security Group

请求

{
    'Action'     : 'ListSecurityGroups'
    'Id' : STRING,
}

Response:

{
    'SecurityGroup': [{
        'Name': 'default'
        'ID'  : "3a90ae79-9b69-4b79-b7b9-5ad5f105bfd5"
    }]
}

List Quota

请求

{
    'Action'     : 'ListQuota'
    'Id' : STRING,//CloudID
}

Response:

{"Code":0,
"Msg":"信息获取成功",
"Data":{"CPU":996,"Memory":992,"Disk":19718}//Memory DIsk单位GB
}

Create Instance

请求

{
    'Action'            : 'CreateInstance'
    "Id"                : string    //TaskID
    'FlavorId'          : string    //target vm flavor id
    'NetworkId'         : string    //network id
    'SubnetId'          : string    //subnetwork id
    'RouteId'           : string    // for huayun 公有云, 可选参数
    'SecurityGroupId'   : string    //security group id
    'Bandwidth'         : int       //huayun公有云, Mbps
    "AggregateId"       : string
    "CPU"               : int
    "Sockets"           : int
    "Memory"            : int
    "TargetServerName"  : string    // 云端虚机名称   ,v2.0添加

    "NetInterfaces"     :           // only for vsphere no agent migrate now
    [
        {
            "NetworkId":        string
            "SecurityGroupId":  string
            "Mac":              string
            "SubNets":
            [
                {
                    "SubnetId":     string
                    "Ip":           string
                }
            ]
        }
    ]
}

Response:

{
    'Code' :  int        //成功返回 0,   目标主机重名返回1
    'Msg'  : DESC STRING //Success or Error Code Description
    "Data": {
        "ID": "taskid",  
        "Repeated":[],  # v2.0 添加,重复的主机名
     }
}

Get Task Recovery Instance

请求

{
    'Action' : 'GetInstance'
    "Id"     : string
}

Response:

{
   Code: true |false
   Msg: Success or Error Description
   "Data": {ID: "1234", Name: "cmigrate0108-1234"}
}

AddVSPlatform

添加vsphere平台

请求参数:

{
    "Action":       "AddVSPlatform"
    "Name":         string
    "Ip":           string
    "UserName":     string
    "Passwd":       string
    "TransId":      string
}

返回值:

{
    'Code' : 0       //成功返回 0
    'Msg'  : DESC STRING //Success or Error Code Description
    "data" : 
    {
       "Count": int // 成功添加的vsphere虚机的数量 
    }
}

{
    'Code' : 1       //vsphere平台中含有相同uuid的虚机
    'Msg'  : DESC STRING //Success or Error Code Description
    "data" : 
    [
        "Name":     string
        "EsxiHost": string
        "Uuid":     string
    ]
}

DeleteVSPlatform

删除vsphere平台

请求参数:

{
    "Action":   "DeleteVSPlatform"
    "ID":       string
}

返回值:

{
    'Code' : 0       // 删除成功
    'Msg'  : DESC STRING //Success or Error Code Description
}

RefreshVSPlatform

刷新vsphere平台的虚机树形结构以及虚机配置

请求参数:

{
    "Action":   "RefreshVSPlatform"
    "ID":       string
}

返回值:

{
    'Code' : 0       // 刷新成功
    'Msg'  : DESC STRING //Success or Error Code Description
}

UpdateVSPlatform

更新vsphere平台信息

请求参数:

{
    "Action":       "UpdateVSPlatform"
    "ID":           string
    "Name":         string
    "UserName":     string
    "Passwd":       string
    "TransId":      string
}

返回值:

{
    'Code' : 0       // 更新成功
    'Msg'  : DESC STRING //Success or Error Code Description
}

ListVSHosts

获取vsphere平台的虚机树形结构以及源主机信息

请求参数:

{
    "Action":   "ListVSHosts"
}

返回值:

{
    'Code' : 0       // 刷新成功
    'Msg'  : DESC STRING //Success or Error Code Description
    "Data" :
    {
        [
            "ID":           string   // vsphere platform ID
            "Name":         string   // vsphere platform Name
            "Ip":           string   // vsphere platform ip
            "IsVcenter":    bool
            "DataCenters": 
            [
                "ID":       string
                "Name":     string
                "PhyHosts": 
                [
                    {
                            "ID":   string
                            "Name": string
                            "VTs":  
                            [
                                同 GetPackerHost 返回的Data内容
                            ]
                    }
                ]

                "Clusters": 
                [
                    "ID":       string
                    "Name":     string
                    "PhyHosts": []  // 同上
                ]

                "VmGroups": 
                [
                    "ID":       string
                    "Name":     string
                    "VmGroups": []  // 嵌套,同上
                    "VTs":      []  // 同上
                ]
            ]
        ]
    }
}

VerifyVSPlatformConnection

验证vsphere平台的连通性

请求参数

{
    'Action'        : 'VerifyVSPlatformConnection'
    'VSPlatformID'  : STRING
    'TransAddr'     : STRING
}

返回参数:

{
    'Code' : true|false,//成功返回True, 失败返回False
    'Msg'  : DESC STRING //Success or Error Code Description
}
%23%20%E4%BA%91%E8%BF%81%E7%A7%BB%20restful%20api%20v2.3.1%20%E7%AE%80%E4%BB%8B%0A%0A%E6%8E%A7%E5%88%B6%E6%9C%8D%E5%8A%A1%E5%8A%9F%E8%83%BD%EF%BC%9A%20%E7%BD%91%E9%A1%B5%E8%BF%9E%E6%8E%A5%EF%BC%8C%20RESTful%20API%E8%BF%9E%E6%8E%A5%EF%BC%8C%20%E6%8E%A5%E6%94%B6%E5%85%B6%E5%AE%83%20Transport%E6%9C%8D%E5%8A%A1%E6%8E%A7%E5%88%B6%E6%8C%87%E4%BB%A4%E3%80%82%0A%0A1.%20Transport%20Server%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9FCentOS%0A2.%20%E6%8E%A7%E5%88%B6%E7%AE%A1%E7%90%86%E6%9C%8D%E5%8A%A1%E6%97%A2%E5%8F%AF%E4%BB%A5%E4%B8%8ETransport%E6%9C%8D%E5%8A%A1%E4%B8%80%E8%B5%B7%E9%83%A8%E7%BD%B2%EF%BC%8C%E4%B9%9F%E5%8F%AF%E4%BB%A5%E5%8D%95%E7%8B%AC%E9%83%A8%E7%BD%B2%E3%80%82%0A%0A%E9%92%88%E5%AF%B9%E4%B8%8D%E7%94%A8%E7%9A%84%E6%A8%A1%E5%9D%97%E7%AE%A1%E7%90%86%EF%BC%8C%E6%8E%A7%E5%88%B6%E7%AE%A1%E7%90%86%E6%9C%8D%E5%8A%A1%E8%AE%BE%E7%BD%AE6%E4%B8%AAURL%E6%8E%A5%E6%94%B6%E8%BF%9E%E6%8E%A5%E8%AF%B7%E6%B1%82%E3%80%82%0A%0A-%20https%3A%2F%2F117.48.207.72%2FMgmtCloudConnection%0A-%20https%3A%2F%2F117.48.207.72%2FMgmtHostConnection%0A-%20https%3A%2F%2F117.48.207.72%2FMgmtTransportConnection%0A-%20https%3A%2F%2F117.48.207.72%2FMgmtTask%0A-%20https%3A%2F%2F117.48.207.72%2FUpdateSetting%0A-%20%E6%89%80%E6%9C%89API%E8%AF%B7%E6%B1%82%E6%96%B9%E6%B3%95%E9%83%BD%E6%98%AFPOST%E3%80%82%0A-%20%E9%92%88%E5%AF%B9%E4%BB%A5%E4%B8%8A%E6%AF%8F%E7%B1%BB%E8%B5%84%E6%BA%90%E7%AE%A1%E7%90%86%EF%BC%8C%E7%AE%A1%E6%8E%A7%E6%9C%8D%E5%8A%A1%E9%83%BD%E4%BC%9A%E5%86%85%E5%BB%BA%E4%B8%80%E4%B8%AA%E8%B5%84%E6%BA%90%E7%9A%84UUID%EF%BC%8Ceg%EF%BC%9A%20%E5%9C%A8%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE%E6%97%B6%E6%AF%8F%E4%B8%AACloud%E7%8E%AF%E5%A2%83%E9%83%BD%E4%BC%9A%E6%9C%89%E4%B8%80%E4%B8%AACloudUUID%2C%20%E6%AF%8F%E4%B8%AA%E6%BA%90%E4%B8%BB%E6%9C%BA%E9%83%BD%E4%BC%9A%E6%9C%89%E4%B8%80%E4%B8%AAHostUUID%2C%E6%AF%8F%E4%B8%AA%E5%A4%8D%E5%88%B6%E6%9C%8D%E5%8A%A1%E4%BC%9A%E6%9C%89REPL_UUID%E7%AD%89%E3%80%82%0A%0A%23%20%E5%85%AC%E5%85%B1%E5%8F%82%E6%95%B0%0A%E6%89%80%E6%9C%89HTTP%E8%AF%B7%E6%B1%82%E4%B8%AD%EF%BC%8C%E9%83%BD%E5%8C%85%E5%90%AB%E5%A6%82%E4%B8%8B%E5%85%AC%E5%85%B1%E8%AF%B7%E6%B1%82%E5%A4%B4%EF%BC%88HTTP%20Header%EF%BC%89%EF%BC%88%E4%B8%BA%E5%87%8F%E5%B0%91%E5%86%85%E5%AE%B9%E9%87%8D%E5%A4%8D%EF%BC%8C%E5%85%AC%E5%85%B1%E5%8F%82%E6%95%B0%E5%B0%B1%E4%B8%8D%E5%9C%A8%E5%90%84API%20%E8%AF%A6%E6%83%85%E4%B8%AD%E5%88%97%E5%87%BA%E4%BA%86%EF%BC%89%E3%80%82%0A%0A%E5%90%8D%E7%A7%B0%20%7C%20%E7%B1%BB%E5%9E%8B%20%7C%20%E6%98%AF%E5%90%A6%E5%BF%85%E9%9C%80%7C%20%E6%8F%8F%E8%BF%B0%0A---%7C---%7C---%7C---%0AAccept%20%7CString%20%7C%E6%98%AF%20%7CJSON%EF%BC%9Aapplication%2Fjson%0AContent-Type%20%7CString%20%7C%E6%98%AF%20%7C%E5%BD%93%E5%89%8D%E8%AF%B7%E6%B1%82body%E7%9A%84%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B%EF%BC%8CJSON%EF%BC%9Aapplication%2Fjson%0AAuthorization%20%7CString%20%7C%E6%98%AF%20%7C%E7%94%A8%E6%88%B7%E8%AE%A4%E8%AF%81Token%E3%80%82%0A%0A%E8%AF%B4%E6%98%8E%EF%BC%9A%20%E7%94%A8%E6%88%B7%E5%B0%86Token%E6%B7%BB%E5%8A%A0%E5%88%B0Authorization%E5%A4%B4%E9%83%A8%EF%BC%8C%E4%BD%9C%E4%B8%BA%E7%94%A8%E6%88%B7%E8%AE%A4%E8%AF%81%E5%87%AD%E8%AF%81%E3%80%82%E8%8B%A5Token%E8%BF%87%E6%9C%9F%EF%BC%8C%E5%88%99%E4%BC%9A%E6%8F%90%E7%A4%BA%E7%94%A8%E6%88%B7%E9%87%8D%E6%96%B0%E7%99%BB%E5%BD%95%0A%0A%0A%23%20%E7%94%A8%E6%88%B7%E7%AE%A1%E7%90%86%0A%E9%87%87%E7%94%A8%E7%94%A8%E6%88%B7%E5%90%8D%E5%AF%86%E7%A0%81%E8%BF%9B%E8%A1%8C%E6%9D%83%E9%99%90%E8%AE%A4%E8%AF%81%EF%BC%8C%20%E9%83%A8%E7%BD%B2%E5%90%8E%E5%88%9D%E6%AC%A1%E7%99%BB%E9%99%86%E4%BD%BF%E7%94%A8%E9%BB%98%E8%AE%A4%E7%94%A8%E6%88%B7%E5%90%8D%E5%8F%8A%E5%AF%86%E7%A0%81%EF%BC%8C%E7%99%BB%E9%99%86%E5%90%8E%E5%8F%AF%E4%BF%AE%E6%94%B9%E5%AF%86%E7%A0%81%E3%80%82%0A%0A%23%23%20User%20Login%0AURL%3A%20https%3A%2F%2F117.48.207.72%2FLogin%0A%0A%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0%EF%BC%9A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20%22UserName%22%20%20%20%20%20%3A%20%22admin%22%0A%20%20%20%20%22Password%22%20%20%20%20%20%3A%20STRING%2F%2F6-20%E4%B8%AA%E5%AD%97%E7%AC%A6%EF%BC%8C%E5%AD%97%E6%AF%8D%E3%80%81%E6%95%B0%E5%AD%97%E5%92%8C%E7%89%B9%E8%89%B2%E7%AC%A6%E5%8F%B7%E8%87%B3%E5%B0%91%E5%8C%85%E5%90%AB%E4%B8%A4%E7%A7%8D%0A%7D%0A%60%60%60%0A%0AResponse%0A%0A%60%60%60%0A%7B%0A%20%20%20%20%22Code%22%20%3A%20true%7Cfalse%2C%20%20%20%20%20%20%20%2F%2F%E6%88%90%E5%8A%9F%20or%20%E5%A4%B1%E8%B4%A5%0A%20%20%20%20%22Msg%22%20%20%3A%20success%20or%20error%20description%2C%20%2F%2F%E6%88%90%E5%8A%9F%20or%20%E5%A4%B1%E8%B4%A5%0A%20%20%20%20%22Data%22%20%EF%BC%9A%7B%22Token%22%3A%20%22abcdef%22%2C%20%22IsFirstLogin%22%3A%20true%2Ffalse%7D%0A%7D%0A%60%60%60%0A%0A%23%23%20User%20Login%0AURL%3A%20https%3A%2F%2F117.48.207.72%2FReAuth%0A%0A%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0%EF%BC%9A%0A%0A%E5%8F%82%E8%80%83%E5%85%AC%E5%85%B1%E5%8F%82%E6%95%B0%E3%80%82%0A%0AResponse%0A%0A%60%60%60%0A%7B%0A%20%20%20%20%22Code%22%20%3A%20true%7Cfalse%2C%20%20%20%20%20%20%20%2F%2F%E6%88%90%E5%8A%9F%20or%20%E5%A4%B1%E8%B4%A5%0A%20%20%20%20%22Msg%22%20%20%3A%20success%20or%20error%20description%2C%20%2F%2F%E6%88%90%E5%8A%9F%20or%20%E5%A4%B1%E8%B4%A5%0A%20%20%20%20%22Data%22%20%EF%BC%9A%7B%22Token%22%3A%20%22abcdef%22%2C%20%22IsFirstLogin%22%3A%20false%7D%0A%7D%0A%60%60%60%0A%0A%23%23%20User%20Logout%0AURL%3A%20https%3A%2F%2F117.48.207.72%2FLogout%0A%0A%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0%EF%BC%9A%E6%97%A0%0A%0AResponse%0A%0A%60%60%60%0A%7B%0A%20%20%20%20%22Code%22%20%3A%20true%7Cfalse%2C%20%20%20%20%20%20%20%2F%2F%E6%88%90%E5%8A%9F%20or%20%E5%A4%B1%E8%B4%A5%0A%20%20%20%20%22Msg%22%20%20%3A%20success%20or%20error%20description%2C%20%2F%2F%E6%88%90%E5%8A%9F%20or%20%E5%A4%B1%E8%B4%A5%0A%20%20%20%20%22Data%22%20%EF%BC%9Anull%0A%7D%0A%60%60%60%0A%0A%0A%23%23%20ChangePassword%0AURL%3A%20https%3A%2F%2F117.48.207.72%2FMgntSetting%0A%0A%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0%EF%BC%9A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20%22Action%22%20%20%20%20%20%20%20%3A%20%22ChangePassword%22%2C%0A%20%20%20%20'UserName'%20%20%20%20%20%3A%20%22admin%22%0A%20%20%20%20%22Password%22%20%20%20%20%20%20%3A%20string%20%2F%2Foldpass%0A%20%20%20%20'NewPassword'%20%20%3A%20STRING%2F%2F6-20%E4%B8%AA%E5%AD%97%E7%AC%A6%EF%BC%8C%E5%AD%97%E6%AF%8D%E3%80%81%E6%95%B0%E5%AD%97%E5%92%8C%E7%89%B9%E8%89%B2%E7%AC%A6%E5%8F%B7%E8%87%B3%E5%B0%91%E5%8C%85%E5%90%AB%E4%B8%A4%E7%A7%8D%0A%7D%0A%60%60%60%0A%0AResponse%0A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20%22Code%22%20%3A%20true%7Cfalse%20%20%20%20%20%20%20%2F%2F%E6%88%90%E5%8A%9F%20or%20%E5%A4%B1%E8%B4%A5%0A%20%20%20%20%22Msg%22%20%20%3A%20STRING%20%20%20%20%20%20%20%20%20%20%20%2F%2FError%20Description%0A%20%20%20%20%22Data%22%3A%20null%0A%7D%0A%60%60%60%0A%0A%23%20License%E7%AE%A1%E7%90%86%0A%0ALicense%E6%8E%88%E6%9D%83%E9%99%90%E5%88%B6%E5%8C%85%E6%8B%ACLicense%E4%BD%BF%E7%94%A8%E6%97%B6%E9%97%B4%E4%BB%A5%E5%8F%8A%E8%BF%81%E7%A7%BB%E6%AC%A1%E6%95%B0%E7%9A%84%E9%99%90%E5%88%B6%E3%80%82%0A%E5%A4%87%E6%B3%A8%EF%BC%9A%0A1%E3%80%81%E6%96%B0%E5%BB%BA%E4%BB%BB%E5%8A%A1%EF%BC%8C%E5%8F%AF%E7%94%A8%E8%BF%81%E7%A7%BB%E6%AC%A1%E6%95%B0%E4%BC%9A%E5%87%8F%E5%B0%91%E4%B8%80%E6%AC%A1.%0A2%E3%80%81%E5%88%A0%E9%99%A4%E6%9C%AA%E5%AE%8C%E6%88%90%E7%9A%84%E4%BB%BB%E5%8A%A1%E6%97%B6%EF%BC%8C%E6%94%B9%E4%BB%BB%E5%8A%A1%E5%8D%A0%E7%94%A8%E7%9A%84%E8%BF%81%E7%A7%BB%E6%AC%A1%E6%95%B0%E4%BC%9A%E8%A2%AB%E9%87%8A%E6%94%BE%EF%BC%8C%E5%8F%AF%E7%94%A8%E8%BF%81%E7%A7%BB%E6%AC%A1%E6%95%B0%E5%9C%A8%E4%BB%BB%E5%8A%A1%E5%88%A0%E9%99%A4%E6%88%90%E5%8A%9F%E5%90%8E%E4%BC%9A%E5%A2%9E%E5%8A%A01%E6%AC%A1%EF%BC%8C%E5%BD%93%E4%BB%BB%E5%8A%A1%E5%B7%B2%E5%AE%8C%E6%88%90%E8%BF%81%E7%A7%BB%EF%BC%88%E8%BF%81%E7%A7%BB%E6%88%90%E5%8A%9F%EF%BC%8C%E4%BA%91%E7%AB%AF%E5%AD%98%E5%9C%A8%E6%81%A2%E5%A4%8D%E8%99%9A%E6%8B%9F%E6%9C%BA%EF%BC%89%EF%BC%8C%E5%88%A0%E9%99%A4%E4%BB%BB%E5%8A%A1%E5%8F%AF%E7%94%A8%E8%BF%81%E7%A7%BB%E6%AC%A1%E6%95%B0%E4%B8%8D%E5%8F%98%0A%0AURL%3A%20https%3A%2F%2F117.48.207.72%2FMgntSetting%0A%0A%23%23%20%E5%AF%BC%E5%85%A5%2F%E6%9B%B4%E6%96%B0License%0A%0A%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0%EF%BC%9A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20%22Action%22%20%20%20%20%20%20%20%20%20%3A%20%22UpdateLicense%22%2C%0A%20%20%20%20%22ActivationKey%22%20%20%3A%20string%2C%2F%2F%E6%BF%80%E6%B4%BB%E7%A0%81%0A%7D%0A%60%60%60%0A%0AResponse%0A%0A%60%60%60%0A%7B%0A%20%20%20%20%22Code%22%20%3A%20true%7Cfalse%20%20%20%20%20%20%20%2F%2F%E6%88%90%E5%8A%9F%20or%20%E5%A4%B1%E8%B4%A5%0A%20%20%20%20%22Msg%22%20%20%3A%20STRING%20%20%20%20%20%20%20%20%20%20%20%2F%2FError%20Description%0A%20%20%20%20%22Data%22%3A%20%7B%22Credits%22%3A100%2C%22ExpireTime%22%3A%222020-01-10T16%3A10%3A10%2B08%3A00%22%2C%22Id%22%3A%22a85d6061-e25f-4abc-854b-a6010e99d69f%22%2C%22Used%22%3A4%7D%0A%20%20%20%20'%0A%7D%0A%60%60%60%0A%0A%23%23%20%E5%88%A0%E9%99%A4License%0A%0A%0A%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0%EF%BC%9A%0A%60%60%60%0A%7B%0A%20%20%20%20'Action'%20%3A%20'DeleteLicense'%2C%0A%7D%0A%60%60%60%0A%0AResponse%0A%0A%60%60%60%0A%7B%0A%20%20%20%20Code%3A%20true%20%7C%20false%0A%20%20%20%20Msg%20%3A%20Success%20Description%20or%20Error%20Description%0A%20%20%20%20%22Data%22%3A%20null%0A%20%20%20%20%0A%7D%0A%60%60%60%0A%0A%23%23%20Get%20License%0A%0A%0A%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0%EF%BC%9A%0A%60%60%60%0A%7B%0A%20%20%20%20'Action'%20%20%20%20%20%20%20%20%3A%20'GetLicense'%2C%0A%7D%0A%60%60%60%0A%0AResponse%0A%0A%60%60%60%0A%7B%0A%20%20%20%20%22Code%22%20%3A%20true%7Cfalse%20%20%20%20%20%20%20%2F%2F%E6%88%90%E5%8A%9F%20or%20%E5%A4%B1%E8%B4%A5%0A%20%20%20%20%22Msg%22%20%20%3A%20STRING%20%20%20%20%20%20%20%20%20%20%20%2F%2FError%20Description%0A%20%20%20%20%22Data%22%3A%20%7B%22Credits%22%3A100%2C%22ExpireTime%22%3A%222020-01-10T16%3A10%3A10%2B08%3A00%22%2C%22Id%22%3A%22a85d6061-e25f-4abc-854b-a6010e99d69f%22%2C%22Used%22%3A4%7D%0A%7D%0A%60%60%60%0A%0A%0A%23%20%E7%8E%AF%E5%A2%83%E9%83%A8%E7%BD%B2%0A%0A%23%23%20Cloud%0A%0AURL%3A%20%20https%3A%2F%2F117.48.207.72%2FMgmtCloudConnection%0A%0A-%20Cloud%E8%BF%9E%E6%8E%A5%E7%AE%A1%E7%90%86%E7%9B%AE%E5%89%8DAPI%E4%BB%85%E5%88%97%E5%87%BA%E6%94%AF%E6%8C%81%E5%8D%8E%E4%BA%91%EF%BC%88%E5%85%AC%E6%9C%89%E4%BA%91AK%2FSK%EF%BC%89%E4%BB%A5%E5%8F%8ACU%EF%BC%88%E7%A7%81%E6%9C%89%E4%BA%91Openstack%EF%BC%89%E5%B9%B3%E5%8F%B0%E7%B1%BB%E5%9E%8B%E3%80%82%0A%0A%23%23%23%20ListCloudType%0A%E6%94%AF%E6%8C%81%E7%9A%84%E4%BA%91%E5%B9%B3%E5%8F%B0%E7%B1%BB%E5%9E%8B%E3%80%82%0A%0A%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0%EF%BC%9A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Action'%3A%20'ListCloudType'%2C%0A%7D%0A%60%60%60%0A%E8%BF%94%E5%9B%9E%E5%8F%82%E6%95%B0%EF%BC%9A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Code'%20%3A%200%20%20%20%20%20%20%2F%2F%E6%88%90%E5%8A%9F%20or%20%E5%A4%B1%E8%B4%A5%0A%20%20%20%20'Msg'%20%20%3A%20STRING%20%20%20%20%20%20%20%20%20%20%20%2F%2FError%20Description%0A%20%20%20%20%22Data%22%3A%5B%22Huayun%22%2C%22Openstack%22%2C%20%22CloudUltra%204%22%2C%20%22ArcherOS%202020%22%5D%0A%7D%0A%60%60%60%0A%0A%23%23%23%20Add%20Cloud%0A%E6%96%B0%E5%A2%9E%E4%BA%91%E8%BF%9E%E6%8E%A5%0A%0A%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0%EF%BC%9A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Action'%20%20%20%20%20%20%20%20%20%20%20%20%3A%20'AddCloudConnection'%2C%0A%20%20%20%20'CloudName'%20%20%20%20%20%20%20%20%3A%20STRING%2C%20%2F%2F2~20%E4%B8%AA%E5%AD%97%E7%AC%A6%EF%BC%8C%E6%94%AF%E6%8C%81%E8%8B%B1%E6%96%87%E5%A4%A7%E5%B0%8F%E5%86%99%E3%80%81%E6%95%B0%E5%AD%97%E3%80%81%E4%B8%AD%E6%96%87%E4%BB%A5%E5%8F%8A%E4%B8%8B%E5%88%92%E7%BA%BF%2C%E4%B8%AD%E5%88%92%E7%BA%BF%E3%80%82%0A%20%20%20%20'CloudType'%20%20%20%20%20%20%20%20%3A%20Openstack%20%7C%20Huayun%20%7C%20%22CloudUltra%204%22%20%7C%20%22ArcherOS%202020%22%2C%0A%20%20%20%20'ProjectName'%20%20%20%20%20%20%3A%20STRING%2C%2F%2FFor%20AK%2FSK%E8%AE%A4%E8%AF%81%E4%BA%91%E7%8E%AF%E5%A2%83%2C%20%E8%AE%BE%E7%BD%AE%E4%B8%BANone%2C%20CU4%E9%A1%B9%E7%9B%AE%E5%90%8D%E7%A7%B0%0A%20%20%20%20'CloudUser'%20%20%20%20%20%20%20%20%3A%20STRING%2C%2F%2FKeystone%20user%20name%20or%20ACCESS_KEY%0A%20%20%20%20'CloudPass'%20%20%20%20%20%20%20%20%3A%20STRING%2C%2F%2FKeystone%20user%20password%20or%20SECRET_KEY%0A%20%20%20%20'IdentityPort'%20%20%20%20%20%3A%20STRING%2C%2F%2FKeystone%20Identity%20Port%2C%20%E9%BB%98%E8%AE%A4%E5%80%BC5000%0A%20%20%20%20'CloudAddr'%20%20%20%20%20%20%20%20%3A%20STRING%20%2F%2FKeystone%20Identity%20Ip%20Address%EF%BC%8C%20or%20%E5%9F%9F%E5%90%8D%EF%BC%8CCU4%20API%E5%9C%B0%E5%9D%80%0A%20%20%20%20%22OwnerId%22%20%20%20%20%20%20%20%20%20%20%3A%20STRING%20%2F%2FCU4%E9%A1%B9%E7%9B%AEID%0A%20%20%20%20%22EnvironmentId%22%20%20%20%20%3A%20STRING%20%2F%2FCU4%E4%BA%91%E7%8E%AF%E5%A2%83ID%0A%20%20%20%20%22ZoneId%22%20%20%20%20%20%20%20%20%20%20%20%3A%20STRING%20%2F%2FCU4%E6%95%B0%E6%8D%AE%E4%B8%AD%E5%BF%83ID%0A%20%20%20%20%22ZoneName%22%20%20%20%20%20%3A%20STRING%20%2F%2FCU4%E6%95%B0%E6%8D%AE%E4%B8%AD%E5%BF%83%E5%90%8D%E7%A7%B0%0A%20%20%20%20%22RegionId%22%20%20%20%20%20%20%20%20%20%3A%20STRING%20%2F%2F%E5%8D%8E%E4%BA%91%E5%85%AC%E6%9C%89%E4%BA%91%E7%9A%84Region%20Id%0A%20%20%20%20%22RegionName%22%20%20%20%20%20%20%3A%20STRING%20%2F%2F%20%E5%8D%8E%E4%BA%91%E5%85%AC%E6%9C%89%E4%BA%91%E7%9A%84Region%20Name%0A%7D%0A%60%60%60%0A%0AResponse%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Code'%20%3A%20true%7Cfalse%20%20%20%20%20%20%20%2F%2F%E6%88%90%E5%8A%9F%20or%20%E5%A4%B1%E8%B4%A5%0A%20%20%20%20'Msg'%20%20%3A%20STRING%20%20%20%20%20%20%20%20%20%20%20%2F%2FError%20Description%0A%20%20%20%20%22Data%22%20%3A%20%7B%22ID%22%3A%20%22123456%22%7D%0A%7D%0A%60%60%60%0A%0A%0A%23%23%23%20Delete%20Cloud%0A%E5%88%A0%E9%99%A4%E4%BA%91%E8%BF%9E%E6%8E%A5%0A%0A%E8%AF%B4%E6%98%8E%EF%BC%9A%E5%A6%82%E6%9E%9C%E8%AF%A5%E4%BA%91%E7%8E%AF%E5%A2%83%E4%B8%AD%E6%9C%89%E5%85%B3%E8%81%94%E4%B8%BB%E6%9C%BA%E4%BD%9C%E4%B8%BATransportServer%2C%20%E5%88%99%E4%B8%8D%E5%85%81%E8%AE%B8%E5%88%A0%E9%99%A4%E3%80%82%E5%BF%85%E9%A1%BB%E5%85%88%E5%88%A0%E9%99%A4Transport%20Server%0A%0A%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0%EF%BC%9A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Action'%3A%20'DeleteCloudConnection'%2C%0A%20%20%20%20'Id'%20%20%3A%20%20%20STRING%0A%7D%0A%60%60%60%0A%0A%E8%BF%94%E5%9B%9E%E5%8F%82%E6%95%B0%EF%BC%9A%0A%0A%60%60%60%0A%7B%0A%0A%22Code%22%3A0%2C%0A%22Msg%22%3A%22Delete%20Cloud%20af39160548bd4cf9823d3d282dc58674%20Success.%22%2C%0A%22Data%22%3Anull%0A%20%20%20%20%0A%7D%0A%60%60%60%0A%0A%23%23%23%20Update%20Cloud%20Connection%0A%0A%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0%EF%BC%9A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Action'%20%20%20%20%20%20%20%20%20%20%20%20%3A%20'UpdateCloudConnection'%2C%0A%20%20%20%20'Id'%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20STRING%2C%0A%20%20%20%20'Name'%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3AString%0A%20%20%20%20'ProjectName'%20%20%20%20%20%20%3A%20STRING%2C%2F%2FFor%20Haihe%2CProject%20id%0A%20%20%20%20'CloudUser'%20%20%20%20%20%20%20%20%3A%20STRING%2C%0A%20%20%20%20'CloudPass'%20%20%20%20%20%20%20%20%3A%20STRING%2C%0A%20%20%20%20'IdentityPort'%20%20%20%20%20%3A%20STRING%2C%0A%20%20%20%20'CloudAddr'%20%20%20%20%20%20%20%20%3A%20HOST_ADDR%2C%0A%20%20%20%20%22EnvironmentId%22%20%20%20%20%3A%20STRING%2C%0A%20%20%20%20%22ZoneId%22%20%20%20%20%20%20%20%20%20%20%20%3A%20STRING%2C%0A%20%20%20%20%22ZoneName%22%20%20%20%20%20%20%20%20%20%20%20%3A%20STRING%2C%0A%20%20%20%20%22RegionId%22%20%20%20%20%20%20%20%20%20%3A%20STRING%20%20%20%20%20%20%20%20%20%20%2F%2F%E5%8D%8E%E4%BA%91%E5%85%AC%E6%9C%89%E4%BA%91%20Region%20Id%0A%20%20%20%20%22RegionName%22%20%20%20%20%20%20%3A%20STRING%20%2F%2F%20%E5%8D%8E%E4%BA%91%E5%85%AC%E6%9C%89%E4%BA%91%E7%9A%84Region%20Name%0A%7D%0A%0A%60%60%60%0A%0A%E8%BF%94%E5%9B%9E%E5%8F%82%E6%95%B0%EF%BC%9A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Code'%20%3A%20true%7Cfalse%2C%2F%2F%E6%88%90%E5%8A%9F%E8%BF%94%E5%9B%9ETrue%EF%BC%8C%20%E5%A4%B1%E8%B4%A5%E8%BF%94%E5%9B%9EFalse%0A%20%20%20%20'Msg'%20%20%3A%20DESC%20STRING%20%2F%2FSuccess%20or%20Error%20Code%20Description%0A%20%20%20%20%22Data%22%3A%20null%0A%7D%0A%60%60%60%0A%0A%23%23%23%20List%20Cloud%0A%0A%E5%88%97%E4%B8%BE%E6%89%80%E6%9C%89%E4%BA%91%E7%8E%AF%E5%A2%83%0A%0A%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0%EF%BC%9A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Action'%20%20%3A%20'ListCloudConnection'%0A%20%20%20%20'Name'%20%20%20%20%3A%20cloud%20name%20%20%2F%2F%E5%8F%AF%E9%80%89%0A%7D%0A%0A%60%60%60%0A%0A%E8%BF%94%E5%9B%9E%E5%80%BC%EF%BC%9A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20%22Code%22%3A%20%20%200%2C%0A%20%20%20%20%22Msg%22%20%3A%20%20%20%22Get%20All%20Cloud%20Connection%20Success.%22%2F%2Fsuccess%20or%20ErrorMsg%0A%20%20%20%20%22Data%22%3A%20%5B%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22AccountId%22%3A%2232e964393b1e4518859780c857be4d7d%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22ID%22%3A%22ad106d0c2be84a33be3c27fe504c2c86%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22Name%22%3A%22huayun%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22CloudType%22%3A%22openstack%22%2C%2F%2F%E5%B9%B3%E5%8F%B0%E7%B1%BB%E5%9E%8B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22ProjectName%22%3A%22admin%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22Domain%22%3A%22Default%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22CloudUser%22%3A%22admin%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22CloudPass%22%3A%22cGFzc3cwcmQ%3D%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22CloudAddr%22%3A%22172.16.9.50%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22IdentityPort%22%3A%225000%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22IdentityUrl%22%3A%22http%3A%2F%2F172.16.9.50%3A5000%2Fv3%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22CreatedTime%22%3A%222018-12-20%2013%3A34%3A01%22%2F%2F%E6%B7%BB%E5%8A%A0%E6%97%B6%E9%97%B4%0A%20%20%20%20%20%20%20%20%20%20%20%20%22RegionName%22%3A%22%E8%8B%8F%E5%B7%9E%22%2C%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20%E5%8D%8E%E4%BA%91%E5%85%AC%E6%9C%89%E4%BA%91%0A%20%20%20%20%20%20%20%20%20%20%20%20%22RegionId%22%3A%22cn-suzhou1%22%2C%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20%E5%8D%8E%E4%BA%91%E5%85%AC%E6%9C%89%E4%BA%91%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%5D%0A%7D%0A%0A%60%60%60%0A%E8%AF%B4%E6%98%8E%EF%BC%9A%E5%A6%82%E6%9E%9C%E6%98%AFAK%2FSK%E8%AE%A4%E8%AF%81%E7%9A%84%E4%BA%91%E7%8E%AF%E5%A2%83%EF%BC%8C%E5%88%99%22ProjectName%22%E4%B8%BANone%2C%20%22CloudAddr%22%E4%B8%BA%E8%AE%BF%E9%97%AE%E6%9C%8D%E5%8A%A1%E5%9F%9F%E5%90%8D%E3%80%82%0A%0A%0A%23%23%23%20Verify%20Cloud%20Connection%0A%0ACloud%E7%8E%AF%E5%A2%83%E8%BF%9E%E9%80%9A%E6%80%A7%E6%A3%80%E9%AA%8C%EF%BC%9A%0A%0A%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0%EF%BC%9A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Action'%20%20%20%20%20%20%20%20%20%20%20%3A%20'VerifyCloudConnection'%2C%0A%20%20%20%20'CloudType'%20%20%20%20%20%20%20%20%3A%20STRING%0A%20%20%20%20'ProjectName'%20%20%20%20%20%20%3A%20STRING%2C%20%2F%2FFor%20haihe%2C%20Project%20name%0A%20%20%20%20'CloudUser'%20%20%20%20%20%20%20%20%3A%20STRING%2C%20%2F%2FUserName%20or%20AccessKey%0A%20%20%20%20'CloudPass'%20%20%20%20%20%20%20%20%3A%20STRING%2C%2F%2FPassword%20or%20SecretKey%0A%20%20%20%20'IdentityProtocal'%20%3A%20http%20%7C%20https%2F%2F%E9%BB%98%E8%AE%A4http%0A%20%20%20%20'CloudAddr'%20%20%20%20%20%20%20%20%3A%20STRING%20%2F%2FKeystone%20endpoint%20IP.%E6%88%96%E8%80%85%E5%85%AC%E6%9C%89%E4%BA%91%E5%9F%9F%E5%90%8D%E8%AE%BF%E9%97%AE%E5%9C%B0%E5%9D%80%0A%20%20%20%20'IdentityPort'%20%20%20%20%20%3A%205000%20%2F%2F%E6%99%AE%E9%80%9A%E7%94%A8%E6%88%B7%E9%BB%98%E8%AE%A45000%0A%20%20%20%20'ownerId'%20%20%20%20%20%20%20%20%20%20%3A%20STRING%2C%20%2F%2FFor%20haihe%2C%20Project%20id%0A%20%20%20%20'EnvironmentId'%20%20%20%20%3A%20STRING%2C%20%2F%2FFor%20haihe%0A%20%20%20%20'zoneId'%20%20%20%20%20%20%20%20%20%20%20%3A%20STRING%2C%20%2F%2FFor%20haihe%0A%20%20%20%20'RegionId'%20%20%20%20%20%20%20%20%20%3A%20STRING%2C%20%2F%2F%E5%8D%8E%E4%BA%91%E5%85%AC%E6%9C%89%E4%BA%91%E7%9A%84Region%0A%7D%0A%60%60%60%0A%0AResponse%E5%8F%82%E6%95%B0%EF%BC%9A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Code'%3A%20true%20%7C%20false%2C%0A%20%20%20%20'Msg'%3A%20%22Success.%22%20or%20error%20Description%0A%20%20%20%20%22Data%22%3A%20null%0A%7D%0A%60%60%60%0A%0A%23%23%23%20List%20ClouUltra4%20Project%0A%0A%E8%AF%B7%E6%B1%82%0A%60%60%60%0A%7B%0A%20%20%20%20%22Action%22%20%20%20%20%20%20%20%3A%20%22ListProject%22%0A%20%20%20%20%22APIMgntURL%22%20%20%20%3A%20%22http%3A%2F%2F172.16.140.20%2Fapi%22%2C%0A%20%20%20%20%22AccessKey%22%3A%20%22admin%22%2C%0A%20%20%20%20%22SecretKey%22%3A%20%22Huayun%23123%22%0A%20%20%20%20%22IsEncrypted%22%3A%20%22False%22%2F%2F%E9%BB%98%E8%AE%A4False%0A%7D%0A%60%60%60%0A%0AResponse%3A%0A%0A%60%60%60%0A%7B%22Code%22%3A0%2C%0A%22Msg%22%3A%22Get%20All%20Project%20Success.%22%2C%0A%22Data%22%3A%5B%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%22Name%22%3A%22cmigrate%22%2C%0A%20%20%20%20%20%20%20%20%22ID%22%3A%22307f849c-e931-4e4a-a96f-076e05276b9c%22%0A%20%20%20%20%7D%2C%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%22Name%22%3A%22lipf_test%22%2C%0A%20%20%20%20%20%20%20%20%22ID%22%3A%22ae30f3a2-4f0e-4475-9d55-579c8eaf1249%22%0A%20%20%20%20%7D%0A%5D%0A%60%60%60%0A%0A%23%23%23%20ListEnvironment%0A%0A%E8%AF%B7%E6%B1%82%0A%60%60%60%0A%7B%0A%20%20%20%20%22Action%22%3A%20%22ListEnvironment%22%2C%0A%20%20%20%20%22APIMgntURL%22%3A%20%22http%3A%2F%2F172.16.140.20%2Fapi%22%2C%0A%20%20%20%20%22AccessKey%22%3A%20%22admin%22%2C%0A%20%20%20%20%22SecretKey%22%3A%20%22Huayun%23123%22%2C%0A%20%20%20%20%22IsEncrypted%22%3A%20%22False%22%2F%2F%E9%BB%98%E8%AE%A4False%0A%20%20%20%20%22HypervisorType%22%3A%20%22KVM%22%20%2F%2FKVM%20%7CVMWARE%20%EF%BC%8C%20%E5%8D%8E%E6%B3%B0%E9%A1%B9%E7%9B%AE%E5%8F%AA%E9%9C%80%E5%88%97%E5%87%BAkvm%E7%B1%BB%E5%9E%8B%0A%7D%0A%60%60%60%0A%0AResponse%3A%0A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20%22Code%22%3A0%2C%0A%20%20%20%20%22Msg%22%3A%22Get%20All%20Environments%20Success.%22%2C%0A%20%20%20%20%22Data%22%3A%5B%7B%22Name%22%3A%22KVM%22%2C%22ID%22%3A%221%22%7D%5D%0A%20%20%20%20%0A%7D%0A%60%60%60%0A%0A%23%23%23%20ListZone%0A%0A%E8%AF%B7%E6%B1%82%0A%60%60%60%0A%7B%0A%20%20%20%20%22Action%22%20%20%20%20%20%20%20%20%20%3A%20%22ListZone%22%0A%20%20%20%20%22APIMgntURL%22%20%20%20%20%20%3A%20%22http%3A%2F%2F172.16.140.20%2Fapi%22%2C%0A%20%20%20%20%22AccessKey%22%20%20%20%20%20%20%3A%20%22admin%22%2C%0A%20%20%20%20%22SecretKey%22%20%20%20%20%20%20%3A%20%22Huayun%23123%22%0A%20%20%20%20%22IsEncrypted%22%3A%20%22False%22%2F%2F%E9%BB%98%E8%AE%A4False%2F%2F%E5%AF%86%E7%A0%81%E6%98%AF%E5%90%A6%E5%8A%A0%E5%AF%86%0A%20%20%20%20%22EnvironmentId%22%20%20%EF%BC%9A%20%2212345%22%0A%20%20%20%20%22OwnerId%22%20%20%20%20%20%20%20%20%EF%BC%9A%20%2212345%22%0A%7D%0A%60%60%60%0A%0AResponse%3A%0A%0A%60%60%60%0A%7B%0A%22Code%22%3A0%2C%0A%22Msg%22%3A%22Get%20All%20Zone%20Success.%22%2C%0A%22Data%22%3A%5B%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22Name%22%3A%22cmigrate%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22ID%22%3A%22307f849c-e931-4e4a-a96f-076e05276b9c%22%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22Name%22%3A%22lipf_test%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22ID%22%3A%22ae30f3a2-4f0e-4475-9d55-579c8eaf1249%22%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%5D%0A%20%20%20%20%0A%7D%0A%60%60%60%0A%0A%23%23%23%20ListRegion%0A%2F%2Fhuayun%E4%B8%93%E5%B1%9E%0A%E8%AF%B7%E6%B1%82%0A%60%60%60%0A%7B%0A%20%20%20%20%22Action%22%20%20%20%20%20%20%20%20%20%3A%20%22ListRegion%22%0A%20%20%20%20%22AccessKey%22%20%20%20%3A%20%22ak%22%0A%20%20%20%20%22SecretKey%22%20%20%20%3A%20%22sk%22%0A%20%20%20%20%22isEncrypted%22%20%20%3A%20%22False%22%2F%2F%E9%BB%98%E8%AE%A4False%2F%2F%E5%AF%86%E7%A0%81%E6%98%AF%E5%90%A6%E5%8A%A0%E5%AF%86%0A%7D%0A%60%60%60%0A%0AResponse%3A%0A%0A%60%60%60%0A%7B%0A%22Code%22%3A0%2C%0A%22Msg%22%3A%22Get%20All%20Region%20Success.%22%2C%0A%22Data%22%3A%5B%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22Name%22%3A%22%E8%8B%8F%E5%B7%9E%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22ID%22%3A%22cn-suzhou1%22%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%5D%0A%7D%0A%60%60%60%0A%0A%0A%23%23%20Transport%0A%0AURL%EF%BC%9Ahttps%3A%2F%2F117.48.207.72%2FMgmtTransportConnection%0A%0A%E6%9C%80%E4%BD%8E%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%A6%81%E6%B1%82%EF%BC%9A%0A%0A-%20%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%EF%BC%9A%20Centos7%0A-%20%E9%85%8D%E7%BD%AE%E8%A6%81%E6%B1%82%EF%BC%9A1cpu%EF%BC%8C1GB%E5%86%85%E5%AD%98%EF%BC%8C5GB%E5%AD%98%E5%82%A8%0A%0A%23%23%23%20AddTransportServer%0A%0ATransport%20Server%E5%88%86%E4%B8%A4%E7%A7%8D%E7%B1%BB%E5%9E%8B%EF%BC%8C%E4%B8%80%E7%A7%8D%E6%98%AF%E5%BE%85%E8%BF%81%E7%A7%BB%E6%BA%90%E7%AB%AF%E5%86%85%E9%83%A8%E9%83%A8%E7%BD%B2%EF%BC%88On-Premises%E7%B1%BB%E5%9E%8B%EF%BC%89%EF%BC%8C%20%E4%B8%80%E7%A7%8D%E6%98%AF%E8%BF%81%E7%A7%BB%E7%9B%AE%E6%A0%87%E7%AB%AF%E9%83%A8%E7%BD%B2%EF%BC%88%E5%BF%85%E9%9C%80%EF%BC%89%E3%80%82%0A%0A%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0%EF%BC%9A%0A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Action'%20%20%20%20%20%3A'AddTransportServer'%2C%0A%20%20%20%20'ServType'%20%20%3A%20%22On-Premises%22%20%7C%20%22Cloud%22%0A%20%20%20%20'Name'%20%20%20%20%20%20%20%3A%20STRING%2C%2F%2F%E7%94%A8%E6%88%B7%E8%BE%93%E5%85%A5%0A%20%20%20%20'CloudId'%20%3A%20CLOUD_UUID%2C%2F%2F%E5%A6%82%E6%9E%9C%E6%98%AFOn-Premises%E7%B1%BB%E5%9E%8B%EF%BC%8C%E5%88%99%E8%AE%BE%E4%B8%BANULL%0A%20%20%20%20'MgntAddr'%20%3A%20Host%20Address%2C%20%2F%2FTransport%20Address%0A%7D%0A%60%60%60%0A%0A%E8%BF%94%E5%9B%9E%E5%8F%82%E6%95%B0%EF%BC%9A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Code'%20%3A%20true%7Cfalse%2C%2F%2F%E6%88%90%E5%8A%9F%E8%BF%94%E5%9B%9ETrue%EF%BC%8C%20%E5%A4%B1%E8%B4%A5%E8%BF%94%E5%9B%9EFalse%0A%20%20%20%20'Msg'%20%20%3A%20DESC%20STRING%20%2F%2FSuccess%20or%20Error%20Code%20Description%0A%20%20%20%20%22Data%22%20%20%3A%20%7B%22ID%22%3A%20%221234%22%7D%0A%7D%0A%60%60%60%0A%0A%23%23%23%20VerifyTransportService%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Action'%20%20%20%20%20%3A%20'VerifyTransportConnection'%2C%0A%20%20%20%20'MgntAddr'%20%3A%20'IP_ADDRESS'%20%2F%2FTransport%20%E7%AE%A1%E7%90%86IP%0A%7D%0A%60%60%60%0A%0A%E8%BF%94%E5%9B%9E%E5%8F%82%E6%95%B0%EF%BC%9A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Code'%20%3A%20true%7Cfalse%2C%2F%2F%E6%88%90%E5%8A%9F%E8%BF%94%E5%9B%9ETrue%EF%BC%8C%20%E5%A4%B1%E8%B4%A5%E8%BF%94%E5%9B%9EFalse%0A%20%20%20%20'Msg'%20%20%3A%20DESC%20STRING%20%2F%2FSuccess%20or%20Error%20Code%20Description%0A%20%20%20%20%22Data%22%3A%20null%0A%7D%0A%60%60%60%0A%0A%23%23%23%20DeleteTransportServer%0A%E8%AF%B4%E6%98%8E%EF%BC%9A%E5%A6%82%E6%9E%9CTransport%20Server%E6%9C%89%E5%85%B3%E8%81%94%E6%BA%90%E4%B8%BB%E6%9C%BA%EF%BC%8C%E5%88%99%E7%A6%81%E6%AD%A2%E5%88%A0%E9%99%A4%E3%80%82%0A%0A%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0%EF%BC%9A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Action'%20%20%20%20%20%20%20%20%3A'DeleteTransportServer'%2C%0A%20%20%20%20'Id'%20%20%20%20%3ASTRING%2C%0A%7D%0A%60%60%60%0A%0A%E8%BF%94%E5%9B%9E%E5%8F%82%E6%95%B0%EF%BC%9A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Code'%20%3A%20true%7Cfalse%2C%2F%2F%E6%88%90%E5%8A%9F%E8%BF%94%E5%9B%9ETrue%EF%BC%8C%20%E5%A4%B1%E8%B4%A5%E8%BF%94%E5%9B%9EFalse%0A%20%20%20%20'Msg'%20%20%3A%20DESC%20STRING%20%2F%2FSuccess%20or%20Error%20Code%20Description%0A%20%20%20%20%22Data%22%3A%20null%0A%7D%0A%60%60%60%0A%23%23%23%20RefreshTransportServer%0A%0A%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0%EF%BC%9A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Action'%20%3A%20'RefreshTransportServer'%2C%0A%20%20%20%20'Id'%3A%20STRING%0A%7D%0A%60%60%60%0A%0A%0A%E8%BF%94%E5%9B%9E%E5%8F%82%E6%95%B0%EF%BC%9A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Code'%20%3A%20true%7Cfalse%2C%2F%2F%E6%88%90%E5%8A%9F%E8%BF%94%E5%9B%9ETrue%EF%BC%8C%20%E5%A4%B1%E8%B4%A5%E8%BF%94%E5%9B%9EFalse%0A%20%20%20%20'Msg'%20%20%3A%20DESC%20STRING%20%2F%2FSuccess%20or%20Error%20Code%20Description%0A%20%20%20%20%22Data%22%3A%20null%0A%7D%0A%60%60%60%0A%0A%23%23%23%20UpdateTransportServer%0A%0A%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Action'%20%20%20%20%20%20%3A%20'UpdateTransportServer'%2C%0A%20%20%20%20'Id'%20%20%3A%20STRING%2C%0A%20%20%20%20'Name'%20%20%20%20%20%20%20%20%3A%20STRING%0A%7D%0A%60%60%60%0A%0A%E8%BF%94%E5%9B%9E%E5%8F%82%E6%95%B0%EF%BC%9A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Code'%20%3A%20true%7Cfalse%2C%2F%2F%E6%88%90%E5%8A%9F%E8%BF%94%E5%9B%9ETrue%EF%BC%8C%20%E5%A4%B1%E8%B4%A5%E8%BF%94%E5%9B%9EFalse%0A%20%20%20%20'Msg'%20%20%3A%20DESC%20STRING%20%2F%2FSuccess%20or%20Error%20Code%20Description%0A%20%20%20%20%22Data%22%20%3A%20null%0A%7D%0A%60%60%60%0A%0A%23%23%23%20ListTransportServer%0A%0A%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0%EF%BC%9A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Action'%20%20%3A%20'ListTransportServer'%2C%0A%20%20%20%20'Ip'%20%20%20%20%20%20%3A%20STRING%2F%2F%E5%8F%AF%E9%80%89%EF%BC%8C%20%E6%A0%B9%E6%8D%AEIP%E8%BF%87%E6%BB%A4%0A%20%20%20%20'Name'%20%20%20%20%3A%20STRING%20%2F%2F%E5%8F%AF%E9%80%89%EF%BC%8C%E6%A0%B9%E6%8D%AE%E5%90%8D%E7%A7%B0%E8%BF%87%E6%BB%A4%0A%20%20%20%20'ServType'%3A%20STRING%20%2F%2F%E5%8F%AF%E9%80%89%EF%BC%8C%E6%A0%B9%E6%8D%AE%E7%B1%BB%E5%9E%8B%E8%BF%87%E6%BB%A4%20%22on-premises%22%20%7C%20%E2%80%9Dcloud%E2%80%9C%0A%7D%0A%60%60%60%0A%0A%E8%BF%94%E5%9B%9E%E5%8F%82%E6%95%B0%EF%BC%9A%0A%0A%0A%60%60%60%0A%7B%0A%0A%20%20%20%20'Code'%20%3A%20true%7Cfalse%2C%2F%2F%E6%88%90%E5%8A%9F%E8%BF%94%E5%9B%9ETrue%EF%BC%8C%20%E5%A4%B1%E8%B4%A5%E8%BF%94%E5%9B%9EFalse%0A%20%20%20%20'Msg'%20%20%3A%20DESC%20STRING%20%2F%2FSuccess%20or%20Error%20Code%20Description%0A%20%20%20%20%22Data%22%20%3A%20%7B%0A%20%20%20%20%20%20%20%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20'Id'%20%20%20%20%20%20%20%20%20%20%20%20%3A%20STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20'Name'%20%20%20%20%20%20%20%20%20%20%3A%20STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20'CloudName'%20%20%20%20%20%20%3A%20CLOUD_UUID%2C%2F%2F%E5%A6%82%E6%9E%9C%E6%98%AFOn-Premises%E7%B1%BB%E5%9E%8B%EF%BC%8C%E5%88%99%E8%AE%BE%E4%B8%BANULL%0A%20%20%20%20%20%20%20%20%20%20%20%20'ServType'%20%20%20%20%20%20%20%3A%20%22on-premises%22%20%7C%20%E2%80%9Dcloud%E2%80%9C%0A%20%20%20%20%20%20%20%20%20%20%20%20'MgntAddr'%20%20%20%20%20%20%20%3A%20HOST_ADDR%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20'CreatedTime'%20%20%20%20%20%3A%20YYYY-MM-DD%20HH-MM-SS%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%E6%B7%BB%E5%8A%A0%E6%97%B6%E9%97%B4%0A%20%20%20%20%20%20%20%20%20%20%20%20'MaxSupportedTasks'%20%20%20%20%3A%20%20int32%20%20%20%20%2F%2F%E6%94%AF%E6%8C%81%E7%9A%84%E6%9C%80%E5%A4%A7%E4%BB%BB%E5%8A%A1%E6%95%B0%E9%87%8F%EF%BC%8C%20v2.0%E6%B7%BB%E5%8A%A0%0A%20%20%20%20%20%20%20%20%20%20%20%20'CurrentTasks'%20%20%20%20%20%3A%20%20int32%20%20%20%2F%2F%20%E5%BD%93%E5%89%8D%E6%AD%A3%E5%9C%A8%E8%BF%90%E8%A1%8C%E7%9A%84%E4%BB%BB%E5%8A%A1%E6%95%B0%E9%87%8F%EF%BC%8C%20v2.0%E6%B7%BB%E5%8A%A0%0A%20%20%20%20%20%20%20%20%20%20%20%20StorageId%3A%C2%A0%C2%A0string%EF%BC%8C%20%20%20%20%20%20%20%2F%2F%20%E5%BD%93%E5%89%8Dtransport%E6%89%80%E5%9C%A8%E7%9A%84%E5%AD%98%E5%82%A8%E7%9A%84id%EF%BC%8C%20v2.2%E6%B7%BB%E5%8A%A0%0A%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0StorageType%3A%C2%A0%C2%A0string%EF%BC%8C%20%20%20%2F%2F%20%E5%BD%93%E5%89%8Dtransport%E6%89%80%E5%9C%A8%E7%9A%84%E5%AD%98%E5%82%A8%E7%9A%84%E7%B1%BB%E5%9E%8B%EF%BC%8C%20v2.2%E6%B7%BB%E5%8A%A0%0A%20%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%20%20...%0A%20%20%20%20%7D%0A%7D%0A%0A%E5%A4%87%E6%B3%A8%EF%BC%9AStorageType%20%E6%9C%89%20%20LOCAL%2CARSTOR%2CFCSAN%2CIPSAN%2CXSKY%0A%0A%60%60%60%0A%0A%23%23%20%E6%BA%90%E4%B8%BB%E6%9C%BA%0AURL%EF%BC%9Ahttps%3A%2F%2F117.48.207.72%2Fportal%2FMgmtHostConnection%0A%0A%23%23%23%20AddPackerHost%0A%E4%B8%8ETransportServer%E4%BA%A4%E4%BA%92%E5%BF%85%E8%A6%81%E5%8F%82%E6%95%B0%E5%9C%A8%E6%B7%BB%E5%8A%A0%E7%9A%84%E6%97%B6%E5%80%99%E8%AE%B0%E5%BD%95%E5%88%B0%E6%95%B0%E6%8D%AE%E5%BA%93%E3%80%82%0A%E7%BD%91%E7%BB%9C%E4%BF%A1%E6%81%AF%EF%BC%8C%E7%A3%81%E7%9B%98%E4%BF%A1%E6%81%AF%E7%AD%89%E3%80%82%0A%0A%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0%EF%BC%9A%0A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Action'%20%20%20%20%20%20%20%20%3A%20'AddPackerHost'%2C%0A%20%20%20%20'Name'%20%20%20%20%20%20%20%20%20%20%3A%20STRING%20%2F%2F32%0A%20%20%20%20'TransId'%20%20%20%20%20%20%20%3A%20UUID%2C%20%2F%2Ftransport%20server%20uuid%0A%20%20%20%20'MgntAddr'%20%20%20%20%20%3A%20PACK_NIC_ADDR%2C%0A%7D%0A%60%60%60%0A%0A%E8%BF%94%E5%9B%9E%E5%8F%82%E6%95%B0%EF%BC%9A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Code'%20%3A%20true%7Cfalse%2C%2F%2F%E6%88%90%E5%8A%9F%E8%BF%94%E5%9B%9ETrue%EF%BC%8C%20%E5%A4%B1%E8%B4%A5%E8%BF%94%E5%9B%9EFalse%0A%20%20%20%20'Msg'%20%20%3A%20DESC%20STRING%20%2F%2FSuccess%20or%20Error%20Code%20Description%0A%20%20%20%20%22Data%22%3A%20%7B%22ID%22%3A%20%221234%22%7D%0A%7D%0A%0A%60%60%60%0A%0A%23%23%23%20DeletePackerHost%0A%0A%E8%AF%B4%E6%98%8E%EF%BC%9A%E6%AD%A3%E5%9C%A8%E6%89%A7%E8%A1%8C%E5%A4%8D%E5%88%B6%E4%BB%BB%E5%8A%A1%E7%9A%84%E6%BA%90%E4%B8%BB%E6%9C%BA%E4%B8%8D%E5%85%81%E8%AE%B8%E5%88%A0%E9%99%A4%0A%0A%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0%0A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Action'%20%20%20%20%20%3A%20'DeletePackerHost'%0A%20%20%20%20'Id'%20%20%3A%20STRING%0A%7D%0A%60%60%60%0A%0A%E8%BF%94%E5%9B%9E%E5%8F%82%E6%95%B0%EF%BC%9A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Code'%20%3A%20true%7Cfalse%2C%2F%2F%E6%88%90%E5%8A%9F%E8%BF%94%E5%9B%9ETrue%EF%BC%8C%20%E5%A4%B1%E8%B4%A5%E8%BF%94%E5%9B%9EFalse%0A%20%20%20%20'Msg'%20%20%3A%20DESC%20STRING%20%2F%2FSuccess%20or%20Error%20Code%20Description%0A%20%20%20%20%22Data%22%3A%20null%0A%7D%0A%60%60%60%0A%0A%23%23%23%20RefreshPackerHost%0A%0A%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0%EF%BC%9A%0A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Action'%20%3A%20'RefreshPackerHost'%2C%0A%20%20%20%20'Id'%3A%20STRING%0A%7D%0A%60%60%60%0A%0A%0A%0A%0A%E8%BF%94%E5%9B%9E%E5%8F%82%E6%95%B0%EF%BC%9A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Code'%20%3A%20true%7Cfalse%2C%2F%2F%E6%88%90%E5%8A%9F%E8%BF%94%E5%9B%9ETrue%EF%BC%8C%20%E5%A4%B1%E8%B4%A5%E8%BF%94%E5%9B%9EFalse%0A%20%20%20%20'Msg'%20%20%3A%20DESC%20STRING%20%2F%2FSuccess%20or%20Error%20Code%20Description%0A%20%20%20%20%22Data%22%3A%20null%0A%7D%0A%60%60%60%0A%0A%0A%23%23%23%20VerifyPackerConnection%0A%E9%AA%8C%E8%AF%81%E6%BA%90%E4%B8%BB%E6%9C%BA%E7%9A%84%E8%BF%9E%E9%80%9A%E6%80%A7%0A%0A%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Action'%20%20%20%20%20%3A%20'VerifyPackerConnection'%0A%20%20%20%20'HostId'%20%20%20%20%3A%20STRING%0A%20%20%20%20'TransAddr'%20%20%3A%20STRING%0A%7D%0A%60%60%60%0A%0A%E8%BF%94%E5%9B%9E%E5%8F%82%E6%95%B0%EF%BC%9A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Code'%20%3A%20true%7Cfalse%2C%2F%2F%E6%88%90%E5%8A%9F%E8%BF%94%E5%9B%9ETrue%EF%BC%8C%20%E5%A4%B1%E8%B4%A5%E8%BF%94%E5%9B%9EFalse%0A%20%20%20%20'Msg'%20%20%3A%20DESC%20STRING%20%2F%2FSuccess%20or%20Error%20Code%20Description%0A%7D%0A%60%60%60%0A%0A%23%23%23%20UpdatePackerHost%0A%0A%E4%BF%AE%E6%94%B9%E6%89%80%E9%80%89Packer%E6%BA%90%E4%B8%BB%E6%9C%BA%E4%BF%A1%E6%81%AF%0A%0A%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0%EF%BC%9A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Action'%20%20%20%20%20%3A%20'UpdatePackerHost'%2C%0A%20%20%20%20'TransId'%20%20%20%20%3A%20STRING%2C%0A%20%20%20%20'Id'%20%20%20%20%20%20%20%20%20%3A%20STRING%2C%0A%20%20%20%20%22Name%22%20%20%20%20%20%20%20%3A%20string%0A%7D%0A%60%60%60%0A%0A%E8%BF%94%E5%9B%9E%E5%8F%82%E6%95%B0%EF%BC%9A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Code'%20%3A%20true%7Cfalse%2C%2F%2F%E6%88%90%E5%8A%9F%E8%BF%94%E5%9B%9ETrue%EF%BC%8C%20%E5%A4%B1%E8%B4%A5%E8%BF%94%E5%9B%9EFalse%0A%20%20%20%20'Msg'%20%20%3A%20DESC%20STRING%20%2F%2FSuccess%20or%20Error%20Code%20Description%0A%20%20%20%20%22Data%22%3A%20null%0A%7D%0A%0A%60%60%60%0A%0A%23%23%23%20ListHosts%0A%E5%88%97%E5%87%BA%E5%8F%AF%E7%94%A8%E6%BA%90%E4%B8%BB%E6%9C%BA%E5%88%97%E8%A1%A8%E3%80%82%0A%0A%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0%EF%BC%9A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Action'%20%20%20%20%3A'ListHosts'%0A%20%20%20%20'Name'%20%20%20%20%20%20%3A%20STRING%20%20%20%20%20%20%20%20%2F%2F%E5%8F%AF%E9%80%89%EF%BC%8C%E6%A0%B9%E6%8D%AE%E5%90%8D%E7%A7%B0%E8%BF%87%E6%BB%A4%0A%20%20%20%20'MgntAddr'%20%20%3A%20STRING%20%20%20%20%20%20%20%20%2F%2F%E5%8F%AF%E9%80%89%EF%BC%8C%E6%A0%B9%E6%8D%AEIP%E8%BF%87%E6%BB%A4%0A%20%20%20%20%22TaskFree%22%20%20%3A%20bool%20%20%20%20%20%20%20%20%20%20%2F%2F%E5%8F%AF%E9%80%89%EF%BC%8C%E9%BB%98%E8%AE%A4%E4%B8%BAfalse%2C%20%E5%BD%93%E7%BD%AE%E4%B8%BAtrue%E6%97%B6%E8%BF%94%E5%9B%9E%E5%8F%AF%E8%BF%81%E7%A7%BB%E4%B8%BB%E6%9C%BA%E5%88%97%E8%A1%A8%0A%7D%0A%60%60%60%0A%0AResponse%EF%BC%9A%0A%0A%E5%BF%85%E8%A6%81%E5%8F%82%E6%95%B0%EF%BC%9APACK_NAME%2C%20PACK_ADDR%2C%20OS_TYPE%2C%20DISK_SIZE%EF%BC%8CTIMESTAMP%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Code'%20%3A%20true%7Cfalse%2C%2F%2F%E6%88%90%E5%8A%9F%E8%BF%94%E5%9B%9ETrue%EF%BC%8C%20%E5%A4%B1%E8%B4%A5%E8%BF%94%E5%9B%9EFalse%0A%20%20%20%20'Msg'%20%20%3A%20DESC%20STRING%20%2F%2FSuccess%20or%20Error%20Code%20Description%0A%20%20%20%20%22Data%22%3A%20%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%22AgentHosts%22%3A%0A%20%20%20%20%20%20%20%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22ID%22%3A%20%20%20%20%20%20%20%20%20%20%20string%20%20%2F%2F%20%22fc76c6c0-2bc7-4b19-b1cc-20f628549197%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22Name%22%3A%20%20%20%20%20%20%20%20%20string%20%20%2F%2F%20%22host-10-10-10-47%22%2C%20%2F%2F%E4%B8%BB%E6%9C%BA%E5%90%8D%E7%A7%B0%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22MgntAddr%22%3A%20%20%20%20%20string%20%20%2F%2F%20%22117.48.144.17%22%2C%20%20%20%20%2F%2FPACKER%E7%AE%A1%E7%90%86IP%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22OsName%22%3A%20%20%20%20%20%20%20string%20%20%2F%2F%20%22LINUX%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22TotalSize%22%3A%20%20%20%20int64%20%20%20%2F%2F%20150323855360%2C%20%2F%2F%E7%B3%BB%E7%BB%9F%E7%9B%98%2B%E6%95%B0%E6%8D%AE%E7%9B%98%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20'CreatedTime'%3A%20%20string%20%20%2F%2F%20YYYY-MM-DD%20HH-MM-SS%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%E6%B7%BB%E5%8A%A0%E6%97%B6%E9%97%B4%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20'Agent'%20%3A%20%20%20%20%20%20%20bool%20%20%20%20%2F%2F%20%E6%A0%87%E8%AE%B0%E6%9C%89%E6%97%A0%E4%BB%A3%E7%90%86%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20'Offline'%20%3A%20%20%20%20%20bool%20%20%20%20%2F%2F%20%E6%A0%87%E8%AE%B0%E7%A6%BB%E7%BA%BF%E5%9C%A8%E7%BA%BF%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%5D%2C%0A%0A%20%20%20%20%20%20%20%20%22VSPlatforms%22%3A%0A%20%20%20%20%20%20%20%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22ID%22%3A%20%20%20%20%20%20%20%20%20%20%20string%20%20%2F%2F%20%22fc76c6c0-2bc7-4b19-b1cc-20f628549197%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22Name%22%3A%20%20%20%20%20%20%20%20%20string%20%20%2F%2F%20%22host-10-10-10-47%22%2C%20%2F%2F%E4%B8%BB%E6%9C%BA%E5%90%8D%E7%A7%B0%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22Ip%22%3A%20%20%20%20%20%20%20%20%20%20%20string%20%20%2F%2F%20%22117.48.144.17%22%2C%20%20%20%20%2F%2FPACKER%E7%AE%A1%E7%90%86IP%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22IsVcenter%22%3A%20%20%20%20bool%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22CreatedTime%22%3A%20%20string%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%7D%0A%7D%0A%0A%60%60%60%0A%0A%23%23%23%20GetPackerHost%0A%0A%E6%89%80%E9%80%89Packer%E6%BA%90%E4%B8%BB%E6%9C%BA%E8%AF%A6%E7%BB%86%E4%BF%A1%E6%81%AF%0A%0A%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0%EF%BC%9A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Action'%20%20%20%20%20%20%20%20%20%20%20%20%3A%20'GetPackerHost'%2C%0A%20%20%20%20'Id'%20%20%20%20%20%20%20%20%20%3A%20STRING%2C%0A%7D%0A%60%60%60%0A%0A%E8%BF%94%E5%9B%9E%E5%8F%82%E6%95%B0%EF%BC%9A%0A%E8%BF%99%E9%87%8C%E5%88%97%E5%87%BA%E7%9A%84%E6%98%AF%E4%B8%BB%E8%A6%81%E5%8F%82%E6%95%B0%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Code'%20%3A%20true%7Cfalse%2C%2F%2F%E6%88%90%E5%8A%9F%E8%BF%94%E5%9B%9ETrue%EF%BC%8C%20%E5%A4%B1%E8%B4%A5%E8%BF%94%E5%9B%9EFalse%0A%20%20%20%20'Msg'%20%20%3A%20DESC%20STRING%20%2F%2FSuccess%20or%20Error%20Code%20Description%0A%20%20%20%20%22Data%22%3A%7B%0A%20%20%20%20%20%20%20%20%22Id%22%20%20%20%20%20%20%20%20%20%20%20%3A%20%22fc76c6c0-2bc7-4b19-b1cc-20f628549197%22%2C%0A%20%20%20%20%20%20%20%20%22Name%22%20%20%20%20%20%20%20%20%20%3A%20%22host-10-10-10-47%22%2C%20%2F%2F%E4%B8%BB%E6%9C%BA%E5%90%8D%E7%A7%B0%0A%20%20%20%20%20%20%20%20%22MgntAddr%22%20%20%20%20%20%3A%20%22117.48.144.17%22%2C%20%20%20%20%2F%2Fpacker%E7%AE%A1%E7%90%86ip%0A%20%20%20%20%20%20%20%20%22TransName%22%20%20%20%20%3A%20%22trasnport%20name%22%2C%0A%20%20%20%20%20%20%20%20%22TransId%22%20%20%20%20%20%20%3A%20string%2C%20%20%20%20%2F%2F%20transport%20id%0A%20%20%20%20%20%20%20%20%22TransAddr%22%20%20%20%20%3A%20string%2C%20%20%20%20%2F%2F%20transport%20ip%0A%20%20%20%20%20%20%20%20%22OsType%22%20%20%20%20%20%20%20%3A%20%22linux%22%2C%0A%20%20%20%20%20%20%20%20%22OsName%22%20%20%20%20%20%20%20%3A%20%22linux%22%2C%0A%20%20%20%20%20%20%20%20%22CPU%22%20%20%20%20%20%20%20%20%20%20%3A%20int%0A%20%20%20%20%20%20%20%20%22Sockets%22%20%20%20%20%20%20%3A%20int%0A%20%20%20%20%20%20%20%20%22Memory%22%20%20%20%20%20%20%20%3A%20int%0A%20%20%20%20%20%20%20%20%22Manufacturer%22%20%3A%20string%0A%20%20%20%20%20%20%20%20%22TotalSize%22%20%20%20%20%3A%20100GB%2C%20%2F%2F%E7%B3%BB%E7%BB%9F%E7%9B%98%2B%E6%95%B0%E6%8D%AE%E7%9B%98%0A%20%20%20%20%20%20%20%20%22HostType%22%20%20%20%20%20%3A%20%22physical%22%2C%20%2F%2F%E6%9C%AC%E5%9C%B0%E8%BF%98%E6%98%AFopenstack%20%3F%3F%0A%20%20%20%20%20%20%20%20'CreatedTime'%20%20%3A%20yyyy-mm-dd%20hh-mm-ss%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%E6%B7%BB%E5%8A%A0%E6%97%B6%E9%97%B4%0A%20%20%20%20%20%20%20%20'Agent'%20%20%20%20%20%20%20%20%3A%20bool%20%20%20%20%20%20%20%2F%2F%20%E6%A0%87%E8%AE%B0%E6%9C%89%E6%97%A0%E4%BB%A3%E7%90%86%0A%20%20%20%20%20%20%20%20'Offline'%20%20%20%20%20%20%3A%20bool%20%20%20%20%20%20%20%2F%2F%20%E6%A0%87%E8%AE%B0%E7%A6%BB%E7%BA%BF%E5%9C%A8%E7%BA%BF%0A%20%20%20%20%20%20%20%20%22InTask%22%20%20%20%20%20%20%20%3A%20bool%20%20%20%20%20%20%20%2F%2F%20%E6%98%AF%E5%90%A6%E5%A4%84%E4%BA%8E%E4%BB%BB%E5%8A%A1%E5%BD%93%E4%B8%AD%E3%80%82%E8%8B%A5%E6%98%AF%EF%BC%8C%E5%88%99%E6%97%A0%E6%B3%95%E5%88%9B%E5%BB%BA%E8%BF%81%E7%A7%BB%E4%BB%BB%E5%8A%A1%0A%20%20%20%20%20%20%20%20%22CanNotMigrate%22%3A%20bool%20%20%20%20%20%20%20%2F%2F%20%E6%98%AF%E5%90%A6%20%E4%B8%8D%E5%8F%AF%E4%BB%A5%E5%88%9B%E5%BB%BA%E8%BF%81%E7%A7%BB%E4%BB%BB%E5%8A%A1%0A%20%20%20%20%20%20%20%20%22Note%22%20%20%20%20%20%20%20%20%20%3A%20string%20%20%20%20%20%2F%2F%20%E5%A4%87%E6%B3%A8%EF%BC%8C%E5%8F%AF%E8%83%BD%E6%98%AF%E4%B8%8D%E8%83%BD%E5%88%9B%E5%BB%BA%E8%BF%81%E7%A7%BB%E4%BB%BB%E5%8A%A1%E7%9A%84%E5%8E%9F%E5%9B%A0%E7%AD%89%E7%AD%89%E4%BF%A1%E6%81%AF%0A%20%20%20%20%20%20%20%20%22VolumeInfos%22%3A%20%5B%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22Path%22%20%20%20%20%20%20%3A%20%22%2Fdev%2Fvdb%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22Type%22%20%20%20%20%20%20%3A%20%22lvm%7Cpartation%7Cdisk%7Cdmraid%7Craid%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22Filesystem%22%3A%20%22ext2%2Fext3%2Fext4%2Fxfs%2Fother%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22Capacity%22%20%20%3A%201024000%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22UseType%22%20%20%3A%20boot%7Croot%7Cdata%EF%BC%8C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22FreeSpace%22%3A%201024000%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22FreeSpaceNotEnough%22%3A%20true%2Fflase%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22CanNotBeMigrated%22%3A%20bool%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22CanNotBeMigratedReason%22%3A%20string%2C%0A%20%20%20%20%20%20%20%20%7D%5D%2C%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20%E4%BB%A5%E4%B8%8B%E4%BB%85%E6%97%A0%E4%BB%A3%E7%90%86%E4%BD%BF%E7%94%A8%0A%20%20%20%20%20%20%20%20%22VMHostUuid%22%3A%20%20%20%20%20string%20%20%20%20%20%20%2F%2F%20vmware%20%E8%99%9A%E6%9C%BA%E7%9A%84uuid%0A%20%20%20%20%20%20%20%20%22NetInterfaces%22%3A%0A%20%20%20%20%20%20%20%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22Mac%22%3A%20%20%20%20string%20%20%20%20%2F%2F%20%E7%BD%91%E5%8F%A3mac%E5%9C%B0%E5%9D%80%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22SubNets%22%3A%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22Ip%22%3A%20string%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%20%20%22OpaqueNetWorkInfos%22%3A%0A%20%20%20%20%20%20%20%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%09%09%09%22Value%22%3A%20%22network-o106%22%2C%0A%09%09%09%22Name%22%3A%20%22yangseg2%22%2C%0A%09%09%09%22OpaqueNetworkId%22%3A%20%2295b57855-eba4-4689-87ab-1a31d4c2d38d%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%7D%0A%7D%0A%0A%60%60%60%0A%0A%23%20Replication%20Process%20Management%0A%0AURL%EF%BC%9A%20https%3A%2F%2F117.48.207.72%2FMgmtTask%0A%0A%23%23%20PrepareTaskWorkload%0A%0A%E9%BB%98%E8%AE%A4%E5%8E%8B%E7%BC%A9%E5%92%8CQOS%E5%85%B3%E9%97%AD%E3%80%82%0A%0A%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0%EF%BC%9A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Action'%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20'PrepareTaskWorkload'%2C%20%0A%20%20%20%20'Name'%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20string%20%2F%2F%E5%A4%8D%E5%88%B6%E4%BB%BB%E5%8A%A1%E5%90%8D%E7%A7%B0%0A%20%20%20%20'Priority'%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20int%0A%20%20%20%20'HostId'%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20string%2C%20%20%20%2F%2F%E6%BA%90%E7%AB%AFuuid%0A%20%20%20%20'CloudId'%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20string%2C%20%20%20%2F%2F%E6%BA%90%E7%AB%AFuuid%0A%20%20%20%20'SrcTransId'%20%20%20%20%20%20%20%20%20%20%20%3A%20hostuuid%2C%20%2F%2F%E9%9D%9E%E7%9B%B4%E4%BC%A0%E6%A8%A1%E5%BC%8F%E4%B8%AD%E8%BD%AC%E6%9C%8D%E5%8A%A1%E5%99%A8uuid%E3%80%82%0A%20%20%20%20'TargetTransId'%20%20%20%20%20%20%20%20%3A%20hostuuid%2C%0A%20%20%20%20'StorageId'%20%20%20%20%20%20%20%20%20%20%20%20%3A%20string%2C%20%20%2F%2F%20v2.1%E6%B7%BB%E5%8A%A0%2C%20v2.2%E6%9A%82%E4%B8%8D%E4%BD%BF%E7%94%A8%0A%20%20%20%20'IntervalMinutes'%20%20%20%20%20%20%3A%20int%0A%20%20%20%20'MaxSnapsNum'%20%20%20%20%20%20%20%20%20%20%3A%20int%0A%20%20%20%20'StartTime'%20%20%20%20%20%20%20%20%20%20%20%20%3A%20'yyyy-mm-dd%20hh%3Amm'%20%2F%2F%E4%BB%BB%E5%8A%A1%E8%A7%A6%E5%8F%91%E6%97%B6%E9%97%B4%0A%20%20%20%20'IsCompressed'%20%20%20%20%20%20%20%20%20%3A%20bool%0A%20%20%20%20'QosLimit'%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20int%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20mb%2Fs%2C%20%E5%B8%A6%E5%AE%BD%E9%99%90%E5%88%B6%0A%20%20%20%20'FlavorId'%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20string%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20target%20vm%20flavor%20id(%E5%8F%AF%E9%80%89%EF%BC%8C%20CPU%26Memory%E4%BA%8C%E9%80%89%E4%B8%80)%0A%20%20%20%20'NetworkId'%20%20%20%20%20%20%20%20%20%20%20%20%3A%20string%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20network%20id%0A%20%20%20%20'SubnetId'%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20string%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20subnetwork%20id%0A%20%20%20%20'RouteId'%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20string%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20%E5%8F%AF%E9%80%89%EF%BC%8Cfor%20huayun%20%E5%85%AC%E6%9C%89%E4%BA%91%0A%20%20%20%20'SecurityGroupId'%20%20%20%20%20%20%3A%20string%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20security%20group%20id%20(%E5%8F%AF%E9%80%89%EF%BC%8CFor%E6%B5%B7%E6%B2%B3%E4%B8%8D%E9%9C%80%E8%A6%81)%0A%20%20%20%20%22CPU%22%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20int%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20%E5%8F%AF%E9%80%89%EF%BC%8C%20%E4%B8%8EFlavorId%E4%BA%8C%E9%80%89%E4%B8%80%0A%20%20%20%20%22Sockets%22%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20int%0A%20%20%20%20%22Memory%22%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20int%0A%20%20%20%20%22BandWidth%22%20%20%20%20%20%20%20%20%20%20%20%20%3A%20int%0A%20%20%20%20%22TargetServerName%22%20%20%20%20%20%3A%20string%20%20%20%2F%2F%20%E4%BA%91%E7%AB%AF%E8%99%9A%E6%9C%BA%E5%90%8D%E7%A7%B0%20%20%20%2Cv2.0%E6%B7%BB%E5%8A%A0%0A%0A%20%20%20%20'VolumeInfos'%3A%0A%20%20%20%20%5B%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20'VolumeName'%3A%20%20%20%20%20%20%20string%20%20%20%20%20%20%2F%2F%20%22%2Fdev%2Fvda%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20'VolumeType'%3A%20%20%20%20%20%20%20string%20%20%20%20%20%20%2F%2F%20%E6%94%AF%E6%8C%81%E8%87%AA%E5%AE%9A%E4%B9%89%E4%BA%91%E7%A1%AC%E7%9B%98%E7%B1%BB%E5%9E%8B%0A%20%20%20%20%20%20%20%20%20%20%20%20'VolumeSize'%3A%20%20%20%20%20%20%20string%20%20%20%20%20%20%2F%2F%20GB%0A%20%20%20%20%20%20%20%20%20%20%20%20'CloudVolumeName'%3A%20%20string%20%20%20%20%20%20%2F%2F%20%E4%BA%91%E7%AB%AF%E7%A3%81%E7%9B%98%E5%90%8D%E7%A7%B0%20%20%20%2Cv2.0%E6%B7%BB%E5%8A%A0%0A%20%20%20%20%20%20%20%20%20%20%20%20'PreAlloc'%3A%20%20%20%20%20%20%20%20%20bool%20%20%20%20%20%20%20%20%2F%2F%20v2.1%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%5D%0A%0A%20%20%20%20%22NetInterfaces%22%3A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20only%20for%20vsphere%20no%20agent%20migrate%20now%0A%20%20%20%20%5B%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22NetworkId%22%3A%20%20%20%20%20%20%20%20string%0A%20%20%20%20%20%20%20%20%20%20%20%20%22SecurityGroupId%22%3A%20%20string%0A%20%20%20%20%20%20%20%20%20%20%20%20%22Mac%22%3A%20%20%20%20%20%20%20%20%20%20%20%20%20%20string%0A%20%20%20%20%20%20%20%20%20%20%20%20%22SubNets%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22SubnetId%22%3A%20%20%20%20%20string%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22Ip%22%3A%20%20%20%20%20%20%20%20%20%20%20string%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%5D%0A%7D%0A%60%60%60%0A%0A%E8%BF%94%E5%9B%9E%E5%8F%82%E6%95%B0%EF%BC%9A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Code'%20%3A%20%20int%20%20%20%20%20%20%20%20%2F%2F%E6%88%90%E5%8A%9F%E8%BF%94%E5%9B%9E%200%EF%BC%8C%20%20%20%E7%9B%AE%E6%A0%87%E4%B8%BB%E6%9C%BA%E9%87%8D%E5%90%8D%E8%BF%94%E5%9B%9E1%EF%BC%8C%20%E7%9B%AE%E6%A0%87%E4%BA%91%E7%A1%AC%E7%9B%98%E9%87%8D%E5%90%8D%E8%BF%94%E5%9B%9E%202%0A%20%20%20%20'Msg'%20%20%3A%20DESC%20STRING%20%2F%2FSuccess%20or%20Error%20Code%20Description%0A%20%20%20%20%22Data%22%3A%20%7B%0A%20%20%20%20%20%20%20%20%22ID%22%3A%20%22taskid%22%2C%20%20%0A%20%20%20%20%20%20%20%20%22Repeated%22%3A%5B%5D%EF%BC%8C%20%20%23%20v2.0%20%E6%B7%BB%E5%8A%A0%EF%BC%8C%E9%87%8D%E5%A4%8D%E7%9A%84%E4%B8%BB%E6%9C%BA%E5%90%8D%E6%88%96%E8%80%85%E4%BA%91%E7%A1%AC%E7%9B%98%E5%90%8D%E7%A7%B0%0A%20%20%20%20%20%7D%0A%7D%0A%60%60%60%0A%0A%0A%23%23%20Delete%20Migration%20Task%0A%0A%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0%EF%BC%9A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Action'%20%20%20%20%3A%20'DeleteTask'%0A%20%20%20%20'Id'%20%3A%20STRING%0A%7D%0A%60%60%60%0A%0A%E8%BF%94%E5%9B%9E%E5%8F%82%E6%95%B0%EF%BC%9A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Code'%20%3A%20true%7Cfalse%2C%2F%2F%E6%88%90%E5%8A%9F%E8%BF%94%E5%9B%9ETrue%EF%BC%8C%20%E5%A4%B1%E8%B4%A5%E8%BF%94%E5%9B%9EFalse%0A%20%20%20%20'Msg'%20%20%3A%20DESC%20STRING%20%2F%2FSuccess%20or%20Error%20Code%20Description%0A%20%20%20%20%22Data%22%3A%20null%0A%7D%0A%60%60%60%0A%0A%23%23%20Update%20Task%20Setting%0A%0A1%E3%80%81%E4%BB%BB%E5%8A%A1%E5%BC%80%E5%A7%8B%E4%B9%8B%E5%89%8D1%E5%88%86%E9%92%9F%E5%85%81%E8%AE%B8%E4%BF%AE%E6%94%B9%E5%BF%AB%E7%85%A7%E9%97%B4%E9%9A%94%E5%92%8C%E5%BC%80%E5%A7%8B%E6%97%B6%E9%97%B4%E4%BB%A5%E5%8F%8A%E4%BA%91%E7%A1%AC%E7%9B%98%E7%B1%BB%E5%9E%8B%5C%E5%BF%AB%E7%85%A7%E4%B8%AA%E6%95%B0%EF%BC%8C%E5%90%A6%E5%88%99%E7%A6%81%E6%AD%A2%E4%BF%AE%E6%94%B9%0A%0A%20%20%20%3D%3D(now-StartTime)%20%3C%2060s%E4%B8%8D%E5%85%81%E8%AE%B8%E4%BF%AE%E6%94%B9IntervalMinutes%E3%80%81StartTime%E3%80%81MaxSnapNum%3D%3D%0A%20%20%20%0A2%E3%80%81%E4%B8%BB%E6%9C%BA%E8%A7%84%E6%A0%BC%E5%92%8C%E7%BD%91%E7%BB%9C%E6%98%AF%E5%9C%A8%E6%81%A2%E5%A4%8D%E4%B9%8B%E5%89%8D%E5%8F%AF%E4%BB%A5%E4%BF%AE%E6%94%B9%E7%9A%84%EF%BC%8C%E5%BC%80%E5%A7%8B%E5%AE%8C%E6%88%90%E4%BB%BB%E5%8A%A1%E5%81%9A%E6%81%A2%E5%A4%8D%E5%90%8E%E4%B8%8D%E5%8F%AF%E4%BB%A5%E5%86%8D%E4%BF%AE%E6%94%B9%E4%BA%86%0A%0A%3D%3D(ActionState%3D1007)%E4%B8%8D%E5%85%81%E8%AE%B8%E4%BF%AE%E6%94%B9FlavorId%E3%80%81NetworkId%E3%80%81SubnetId%E3%80%81SecurityGroupId%3D%3D%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Action'%20%20%20%20%20%20%20%20%20%20%20%20%3A%20'UpdateTask'%0A%20%20%20%20'Id'%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20string%0A%20%20%20%20'Name'%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20string%0A%20%20%20%20'IntervalMinutes'%20%20%20%3A%20int%0A%20%20%20%20'MaxSnapNum'%20%20%20%20%20%20%20%20%3A%20int%0A%20%20%20%20'StartTime'%20%20%20%20%20%20%20%20%20%3A%20string%20%20%20%20%2F%2F%20'yyyy-mm-dd%20hh%3Amm%3Ass'%0A%20%20%20%20'FlavorId'%20%20%20%20%20%20%20%20%20%20%3A%20string%20%20%20%20%2F%2F%20target%20vm%20flavor%20id%0A%20%20%20%20'NetworkId'%20%20%20%20%20%20%20%20%20%3A%20string%20%20%20%20%2F%2F%20network%20id%0A%20%20%20%20'SubnetId'%20%20%20%20%20%20%20%20%20%20%3A%20string%20%20%20%20%2F%2F%20subnetwork%20id%0A%20%20%20%20'RouteId'%20%20%20%20%20%20%20%20%20%20%20%3A%20string%20%20%20%20%2F%2F%20route%20id%2C%20for%20huayun%20%E5%85%AC%E6%9C%89%E4%BA%91%EF%BC%8C%20%E5%8F%AF%E9%80%89%E5%8F%82%E6%95%B0%0A%20%20%20%20'SecurityGroupId'%20%20%20%3A%20string%20%20%20%20%2F%2F%20security%20group%20id%0A%20%20%20%20%22AggregateId%22%20%20%20%20%20%20%20%3A%20string%0A%20%20%20%20%22CPU%22%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%202%2C%0A%20%20%20%20%22Sockets%22%20%20%20%20%20%20%20%20%20%20%20%3A%20int%0A%20%20%20%20%22Memory%22%20%20%20%20%20%20%20%20%20%20%20%20%3A%20int%20%20%20%20%20%20%20%2F%2F%E5%8D%95%E4%BD%8DGB%0A%20%20%20%20%22BandWidth%22%20%20%20%20%20%20%20%20%20%3A%20int%0A%20%20%20%20%22TargetServerName%22%20%20%3A%20string%20%20%20%20%2F%2F%20%E4%BA%91%E7%AB%AF%E8%99%9A%E6%9C%BA%E5%90%8D%E7%A7%B0%20%20%20%2Cv2.0%E6%B7%BB%E5%8A%A0%0A%20%20%20%20%22Priority%22%20%20%20%20%20%20%20%20%20%20%3A%20int%0A%20%20%20%20%22NetInterfaces%22%20%20%20%20%20%3A%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20only%20for%20vsphere%20no%20agent%20migrate%20now%0A%20%20%20%20%5B%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22NetworkId%22%3A%20%20%20%20%20%20%20%20string%0A%20%20%20%20%20%20%20%20%20%20%20%20%22SecurityGroupId%22%3A%20%20string%0A%20%20%20%20%20%20%20%20%20%20%20%20%22Mac%22%3A%20%20%20%20%20%20%20%20%20%20%20%20%20%20string%0A%20%20%20%20%20%20%20%20%20%20%20%20%22SubNets%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22SubnetId%22%3A%20%20%20%20%20string%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22Ip%22%3A%20%20%20%20%20%20%20%20%20%20%20string%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%5D%0A%7D%0A%60%60%60%0A%0A%E8%BF%94%E5%9B%9E%E5%8F%82%E6%95%B0%EF%BC%9A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Code'%20%3A%20%20int%20%20%20%20%20%20%20%20%2F%2F%E6%88%90%E5%8A%9F%E8%BF%94%E5%9B%9E%200%EF%BC%8C%20%20%20%E7%9B%AE%E6%A0%87%E4%B8%BB%E6%9C%BA%E9%87%8D%E5%90%8D%E8%BF%94%E5%9B%9E1%0A%20%20%20%20'Msg'%20%20%3A%20DESC%20STRING%20%2F%2FSuccess%20or%20Error%20Code%20Description%0A%20%20%20%20%22Data%22%3A%20%7B%0A%20%20%20%20%20%20%20%20%22ID%22%3A%20%22taskid%22%2C%20%20%0A%20%20%20%20%20%20%20%20%22Repeated%22%3A%5B%5D%EF%BC%8C%20%20%23%20v2.0%20%E6%B7%BB%E5%8A%A0%EF%BC%8C%E9%87%8D%E5%A4%8D%E7%9A%84%E4%B8%BB%E6%9C%BA%E5%90%8D%0A%20%20%20%20%20%7D%0A%7D%0A%60%60%60%0A%0A%23%23%23%20List%20Tasks%0A%0A%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0%EF%BC%9A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Action'%20%20%20%20%3A%20'ListTasks'%2C%0A%20%20%20%20'Name'%20%20%20%20%20%20%3A%20task%20name%2C%20%2F%2F%E5%8F%AF%E9%80%89%0A%20%20%20%20'SrcHost'%20%20%3A%20source%20host%20name%2C%20%2F%2Foptional%0A%20%20%20%20'PageLimit'%EF%BC%9Ainteger%2C%20%2F%2Fpage%20limit%2C%20%E9%BB%98%E8%AE%A420%0A%20%20%20%20'PageNum'%20%20%3A%20integer%2C%20%2F%2Fpage%20number%0A%7D%0A%60%60%60%0A%0A%E8%BF%94%E5%9B%9E%E5%8F%82%E6%95%B0%EF%BC%9A%0A%0A%60%60%60%0A%20%20%20%20data%3A%20%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20'AgentTasks'%3A%0A%20%20%20%20%20%20%20%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20'Name'%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20string%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20'Id'%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20string%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20'HostName'%20%20%20%20%20%20%20%20%20%3A%20string%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20'HostAddr'%20%20%20%20%20%20%20%20%20%3A%20string%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20'ProgressPrecent'%20%20%3A%20string%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20'UpdatedTime'%20%20%20%20%20%20%3A%20yyyy-mm-dd%20hh%3Amm%3Ass%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20'CreateTime'%20%20%20%20%20%20%20%3A%20yyyy-mm-dd%20hh%3Amm%3Ass%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20'StartTime'%20%20%20%20%20%20%20%20%3A%20yyyy-mm-dd%20hh%3Amm%3Ass%2C%20%20%20%20%20%20%2F%2F%20v2.0%E6%B7%BB%E5%8A%A0%0A%20%20%20%20%20%20%20%20%20%20%20%20%20'Status'%20%20%20%20%20%20%20%20%20%20%20%3A%20string%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20'ActionState'%20%20%20%20%20%20%3A%20Int%20%20%20%2F%2F%20%20V2.0%EF%BC%8C%E6%96%B0%E5%A2%9E%20%E5%80%BC%E4%B8%BA1003%EF%BC%8C%20%E8%A1%A8%E7%A4%BA%E4%BB%BB%E5%8A%A1%E5%B7%B2%E6%9A%82%E5%81%9C%EF%BC%8C%E6%98%BE%E7%A4%BA%E9%87%8D%E8%AF%95%E6%8C%89%E9%92%AE%0A%20%20%20%20%20%20%20%20%20%20%20%20%20'LastSync'%20%20%20%20%20%20%20%20%20%3A%20Int%20%20%20%2F%2F%E5%8F%96%E5%80%BC%E8%8C%83%E5%9B%B40%EF%BC%8C1%EF%BC%8C2%EF%BC%8C%20%E9%BB%98%E8%AE%A4%E4%B8%BA0%EF%BC%8C%20%E5%BD%93LastSync%3D%3D1%E6%97%B6%E8%A1%A8%E7%A4%BA%E8%A7%A6%E5%8F%91%E4%BA%86%E6%9C%80%E5%90%8E%E4%B8%80%E6%AC%A1%E6%95%B0%E6%8D%AE%E5%90%8C%E6%AD%A5%EF%BC%8C%20%E5%BD%93LastSync%3D%3D2%E6%97%B6%E8%A1%A8%E7%A4%BA%E6%9C%80%E5%90%8E%E6%95%B0%E6%8D%AE%E5%90%8C%E6%AD%A5%E5%B7%B2%E7%BB%8F%E6%AD%A3%E5%BC%8F%E5%BC%80%E5%A7%8B%E8%BF%9B%E8%A1%8C%E3%80%82%E3%80%82%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%22SnapTimes%22%20%20%20%20%20%20%20%20%3A3%2C%2F%2F%E9%BB%98%E8%AE%A4%E4%B8%BA0%EF%BC%8C%20%E6%95%B0%E6%8D%AE%E8%BF%81%E7%A7%BB%E6%AC%A1%E6%95%B0%EF%BC%8C%E5%BD%93SnapTimes%3D%3D1%E6%97%B6%E8%A1%A8%E7%A4%BA%E6%AD%A3%E5%9C%A8%E8%BF%9B%E8%A1%8C%E9%A6%96%E6%AC%A1%E5%85%A8%E9%87%8F%EF%BC%8C%E8%BF%99%E6%97%B6%E4%B8%8D%E5%8F%AF%E6%89%A7%E8%A1%8C%E5%AE%8C%E6%88%90%E8%BF%81%E7%A7%BB%E7%9A%84%E6%93%8D%E4%BD%9C%E3%80%82%0A%20%20%20%20%20%20%20%20%20%20%20%20%20'Offline'%20%20%20%20%20%20%20%20%20%20%3A%20bool%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20'Agent'%20%20%20%20%20%20%20%20%20%20%20%20%3A%20bool%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20'PredictDoneTime'%20%20%3A%20%20%20%20int64%20%20%23%20v2.0%E6%B7%BB%E5%8A%A0%EF%BC%8C%E6%98%BE%E7%A4%BA%E6%95%B0%E6%8D%AE%E4%BC%A0%E8%BE%93%E5%89%A9%E4%BD%99%E6%97%B6%E9%97%B4%EF%BC%8C%E5%8D%95%E4%BD%8D%E6%98%AF%E7%A7%92%0A%20%20%20%20%20%20%20%20%20%20%20%20%20'SnapshotSize'%20%20%20%20%20%3A%20int64%20%20%20%20%20%20%20%23%20v2.0%E6%B7%BB%E5%8A%A0%EF%BC%8C%E6%98%BE%E7%A4%BA%E5%BD%93%E5%89%8D%E6%95%B0%E6%8D%AE%E4%BC%A0%E8%BE%93%E7%9A%84%E6%80%BB%E6%95%B0%E6%8D%AE%E9%87%8F%EF%BC%8C%E5%8D%95%E4%BD%8D%E6%98%AFbyte%0A%20%20%20%20%20%20%20%20%20%20%20%20%20'TransferedSize'%20%20%20%3A%20int64%20%20%20%20%20%23%20v2.0%E6%B7%BB%E5%8A%A0%EF%BC%8C%E6%98%BE%E7%A4%BA%E5%BD%93%E5%89%8D%E4%BC%A0%E8%BE%93%E4%B8%AD%E5%B7%B2%E4%BC%A0%E8%BE%93%E7%9A%84%E6%95%B0%E6%8D%AE%E9%87%8F%EF%BC%8C%E5%8D%95%E4%BD%8D%E6%98%AFbyte%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20'VSTasks'%3A%0A%20%20%20%20%20%20%20%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22ID%22%3A%20%20%20%20%20%20%20%20%20%20%20string%20%20%2F%2F%20%22fc76c6c0-2bc7-4b19-b1cc-20f628549197%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22Id%22%3A%20%20%20%20%20%20%20%20%20%20%20string%20%20%2F%2F%20same%20with%20%22ID%22%2C%20make%20it%20easy%20for%20web%2C%20not%20delete%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22Name%22%3A%20%20%20%20%20%20%20%20%20string%20%20%2F%2F%20%22host-10-10-10-47%22%2C%20%2F%2F%E4%B8%BB%E6%9C%BA%E5%90%8D%E7%A7%B0%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22Ip%22%3A%20%20%20%20%20%20%20%20%20%20%20string%20%20%2F%2F%20%22117.48.144.17%22%2C%20%20%20%20%2F%2FPACKER%E7%AE%A1%E7%90%86IP%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22IsVcenter%22%3A%20%20%20%20bool%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22CreatedTime%22%3A%20%20string%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20'Tasks'%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%E5%90%8C%E4%B8%8A%E8%BF%B0%20AgentTasks%20%E4%B8%AD%E7%9A%84%E6%95%B0%E6%8D%AE%E5%86%85%E5%AE%B9%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20'TaskTotal'%20%20%20%20%20%20%20%20%3A%20integer%2C%2F%2Fcount%20of%20total%20tasks%0A%20%20%20%20%20%20%20%20'TaskInProcess'%20%20%20%3A%20integer%2C%2F%2Fcount%20of%20tasks%20in%20process%0A%20%20%20%20%20%20%20%20'TaskDone'%20%20%20%20%20%20%20%20%20%3A%20integer%2C%2F%2Fcount%20of%20comleted%20tasks%0A%20%20%20%20%7D%0A%0AActionState%20%E8%8C%83%E5%9B%B4%EF%BC%9Aconst%20(%0A%20%20%20%20TaskCreated%20%20%20%20%20%20%20%3D%201000%20%20%2F%2FSetup%20Task%0A%20%20%20%20TaskWaitSnapshot%20%20%3D%201001%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2FCloud%20Volume%20Ready%20or%20rpc%20recieve%20progress%3D100%25%0A%20%20%20%20TaskSnapshotted%20%20%20%20%201002%20%20%20%20%20%20%20%20%20%20%20%2F%2FAfter%20Call%20Transport%20Create%20Snapshot%0A%20%20%20%20TaskError%20%20%20%20%20%20%20%20%20%20%201003%20%20%20%20%20%20%20%20%20%20%20%2F%2FError%20occured%0A%20%20%20%20TaskStopped%20%20%20%20%20%20%20%20%201004%20%20%20%20%20%20%20%20%20%20%2F%2Fwhen%20delete%20task%0A%20%20%20%20TaskSuccess%20%20%20%20%20%20%20%20%201005%20%20%20%20%20%20%20%20%20%20%20%2F%2Fafter%20create%20instance%20available%0A%20%20%20%20TaskExcuteV2V%20%20%20%20%20%20%201006%20%20%20%20%20%20%20%20%20%20%2F%2Fcall%20transport%20to%20do%20v2v%0A%20%20%20%20TaskWaitRecovery%20%20%20%201007%20%20%20%20%20%20%20%20%20%20%2F%2Fafter%20v2v%20success%0A%20%20%20%20TaskInRecovery%20%20%20%20%20%201008%20%20%20%20%20%20%20%20%20%20%2F%2Fcall%20create%20instance%0A%20%20%20%20TaskCompleted%20%20%20%20%20%20%201009%20%20%20%20%20%20%20%20%20%20%20%20%2F%2Fafter%20create%20vm.%0A)%0A%0A%60%60%60%0A%0A%23%23%20Get%20Task%20Detail%0A%0A%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0%EF%BC%9A%0A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Action'%20%20%20%20%3A%20'GetTaskDetail'%2C%0A%20%20%20%20'Id'%20%20%20%20%20%20%20%20%3A%20STRING%20%2F%2FTask%20uuid%0A%7D%0A%60%60%60%0A%0A%E8%BF%94%E5%9B%9E%E5%8F%82%E6%95%B0%EF%BC%9A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20%22Code%22%3A0%2C%0A%20%20%20%20%22Msg%22%3A%22Get%20Task%20Details%20Success.%22%2C%0A%20%20%20%20%22Data%22%3A%7B%0A%20%20%20%20%20%20%20%20%22Id%22%3A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20string%20%20%20%20%20%20%20%20%20%20%2F%2F%20%225358999805%22%2C%0A%20%20%20%20%20%20%20%20%22Name%22%3A%20%20%20%20%20%20%20%20%20%20%20%20%20%22Task01%22%0A%20%20%20%20%20%20%20%20%22Priority%22%3A%20%20%20%20%20%20%20%20%20int%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20%E5%80%BC%E8%B6%8A%E5%A4%A7%EF%BC%8C%E4%BC%98%E5%85%88%E7%BA%A7%E8%B6%8A%E9%AB%98%0A%20%20%20%20%20%20%20%20%22Type%22%3A%20%20%20%20%20%20%20%20%20%20%20%20%20string%20%20%20%20%20%20%20%20%20%20%2F%2F%20online%20or%20offline%0A%20%20%20%20%20%20%20%20%22Offline%22%3A%20%20%20%20%20%20%20%20%20%20bool%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20%E5%92%8C%20Type%20%E7%9B%B8%E5%90%8C%E7%9A%84%E4%BD%9C%E7%94%A8%EF%BC%8C%E4%B8%8D%E6%B8%85%E6%A5%9A%E5%89%8D%E7%AB%AF%E7%94%A8%E4%BA%86%E5%93%AA%E4%B8%80%E4%B8%AA%0A%20%20%20%20%20%20%20%20'Agent'%3A%20%20%20%20%20%20%20%20%20%20%20%20bool%0A%20%20%20%20%20%20%20%20%22CloudId%22%3A%20%20%20%20%20%20%20%20%20%20string%0A%20%20%20%20%20%20%20%20%22CloudName%22%3A%20%20%20%20%20%20%20%20string%0A%20%20%20%20%20%20%20%20%22CloudType%22%3A%20%20%20%20%20%20%20%20string%20%20%20%20%20%20%20%20%20%20%2F%2F%20%22openstack%22%2C%0A%20%20%20%20%20%20%20%20%22IntervalMinutes%22%3A%20%2010%2C%0A%20%20%20%20%20%20%20%20%22StartTime%22%3A%20%20%20%20%20%20%20%20%222018-12-25%2010%3A20%3A03%22%2C%0A%20%20%20%20%20%20%20%20%22SnapTimes%22%3A%20%20%20%20%20%20%20%203%2C%2F%2F%E9%BB%98%E8%AE%A4%E4%B8%BA0%EF%BC%8C%20%E6%95%B0%E6%8D%AE%E8%BF%81%E7%A7%BB%E6%AC%A1%E6%95%B0%EF%BC%8C%E5%BD%93SnapTimes%3D%3D1%E6%97%B6%E8%A1%A8%E7%A4%BA%E6%AD%A3%E5%9C%A8%E8%BF%9B%E8%A1%8C%E9%A6%96%E6%AC%A1%E5%85%A8%E9%87%8F%EF%BC%8C%E8%BF%99%E6%97%B6%E4%B8%8D%E5%8F%AF%E6%89%A7%E8%A1%8C%E5%AE%8C%E6%88%90%E8%BF%81%E7%A7%BB%E7%9A%84%E6%93%8D%E4%BD%9C%E3%80%82%0A%20%20%20%20%20%20%20%20%22MaxSnapNumber%22%3A%20%20%20%203%2C%0A%20%20%20%20%20%20%20%20%22ProgressPrecent%22%3A%20%20%22100%25%22%2C%0A%20%20%20%20%20%20%20%20'PredictDoneTime'%3A%20%20int64%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20v2.0%E6%B7%BB%E5%8A%A0%EF%BC%8C%E6%98%BE%E7%A4%BA%E6%95%B0%E6%8D%AE%E4%BC%A0%E8%BE%93%E5%89%A9%E4%BD%99%E6%97%B6%E9%97%B4%EF%BC%8C%E5%8D%95%E4%BD%8D%E6%98%AF%E7%A7%92%0A%20%20%20%20%20%20%20%20'SnapshotSize'%3A%20%20%20%20%20int64%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20v2.0%E6%B7%BB%E5%8A%A0%EF%BC%8C%E6%98%BE%E7%A4%BA%E5%BD%93%E5%89%8D%E6%95%B0%E6%8D%AE%E4%BC%A0%E8%BE%93%E7%9A%84%E6%80%BB%E6%95%B0%E6%8D%AE%E9%87%8F%EF%BC%8C%E5%8D%95%E4%BD%8D%E6%98%AFbyte%0A%20%20%20%20%20%20%20%20'TransferedSize'%3A%20%20%20int64%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20v2.0%E6%B7%BB%E5%8A%A0%EF%BC%8C%E6%98%BE%E7%A4%BA%E5%BD%93%E5%89%8D%E4%BC%A0%E8%BE%93%E4%B8%AD%E5%B7%B2%E4%BC%A0%E8%BE%93%E7%9A%84%E6%95%B0%E6%8D%AE%E9%87%8F%EF%BC%8C%E5%8D%95%E4%BD%8D%E6%98%AFbyte%0A%20%20%20%20%20%20%20%20%22LastSync%22%3A%20%20%20%20%20%20%20%20%20int%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20%E5%BD%93LastSync%3D%3D2%E6%97%B6%EF%BC%8CProgressPrecent%E6%89%8D%E6%98%AF%E5%AE%8C%E6%88%90%E8%BF%81%E7%A7%BB%E8%BF%9B%E8%A1%8C%E6%9C%80%E5%90%8E%E6%95%B0%E6%8D%AE%E5%90%8C%E6%AD%A5%E7%9A%84%E8%BF%9B%E5%BA%A6%0A%20%20%20%20%20%20%20%20%22Status%22%3A%20%20%20%20%20%20%20%20%20%20%20string%20%20%20%20%20%20%20%20%20%20%2F%2F%20%22Create%20Cloud%20Volume%20Snapshot%20Failed.%22%2C%0A%20%20%20%20%20%20%20%20%22ActionState%22%3A%20%20%20%20%20%20int%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%201009%2C%0A%20%20%20%20%20%20%20%20%22IsCompressed%22%3A%20%20%20%20%20bool%0A%20%20%20%20%20%20%20%20%22QosBW%22%3A%20%20%20%20%20%20%20%20%20%20%20%20int%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20%E5%8D%95%E4%BD%8D%20MB%2Fs%0A%20%20%20%20%20%20%20%20%22SourceHost%22%3A%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22Name%22%3A%20%20%20%20%20%20%20%20%20string%20%20%20%20%20%20%20%20%20%20%2F%2F%20%22Packe02%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22MgntAddr%22%3A%20%20%20%20%20string%20%20%20%20%20%20%20%20%20%20%2F%2F%20%22172.16.57.68%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22OsName%22%3A%20%20%20%20%20%20%20string%20%20%20%20%20%20%20%20%20%20%2F%2F%20%22CentOS%20Linux%20release%207.2.1511%20(Core)%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22Offline%22%3A%20%20%20%20%20%20bool%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20v1.3%E6%B7%BB%E5%8A%A0%0A%20%20%20%20%20%20%20%20%20%20%20%20%22Agent%22%3A%20%20%20%20%20%20%20%20bool%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20v1.3%E6%B7%BB%E5%8A%A0%0A%20%20%20%20%20%20%20%20%20%20%20%20%22VmwareIp%22%3A%20%20%20%20%20string%20%20%20%20%20%20%20%20%20%20%2F%2F%20vcenter%20ip%E5%9C%B0%E5%9D%80%2C%20%20v1.3%E6%B7%BB%E5%8A%A0%0A%20%20%20%20%20%20%20%20%20%20%20%20%22VmwareUser%22%3A%20%20%20string%20%20%20%20%20%20%20%20%20%20%2F%2F%20vcenter%20ip%E5%9C%B0%E5%9D%80%2C%20%20v1.3%E6%B7%BB%E5%8A%A0%0A%20%20%20%20%20%20%20%20%20%20%20%20%22HostUuid%22%3A%20%20%20%20%20string%20%20%20%20%20%20%20%20%20%20%2F%2F%20vmware%20vm%20uuid%20in%20vspherer%20platform%0A%20%20%20%20%20%20%20%20%20%20%20%20%22VolumeInfos%22%3A%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22Path%22%3A%20%20%20%20%20%20%20%20%20%20%20%20%20string%20%20%2F%2F%20%22%2Fdev%2Fvda1%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22Size%22%3A%20%20%20%20%20%20%20%20%20%20%20%20%20string%20%20%2F%2F%20%2280GB%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22UseType%22%3A%20%20%20%20%20%20%20%20%20%20string%20%20%2F%2F%20%22root%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22VolumeType%22%3A%20%20%20%20%20%20%20string%20%20%2F%2F%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22CloudVolumeName%22%3A%20%20string%20%20%2F%2F%20%E4%BA%91%E7%AB%AF%E7%A3%81%E7%9B%98%E5%90%8D%E7%A7%B0%20%20%20%2Cv2.0%E6%B7%BB%E5%8A%A0%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22StorageId%22%3A%C2%A0%20%20%20%20%20%20%20string%20%20%2F%2F%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22PreAlloc%22%3A%20%20%20%20%20%20%20%20%20string%20%20%2F%2F%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22PageSize%22%3A%20%20%20%20%20%20%20%20%20string%20%20%2F%2F%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22Compression%22%3A%20%20%20%20%20%20string%20%20%2F%2F%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22ReadCache%22%3A%20%20%20%20%20%20%20%20string%20%20%2F%2F%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22BandWidth%22%3A%20%20%20%20%20%20%20%20string%20%20%2F%2F%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22Iops%22%3A%20%20%20%20%20%20%20%20%20%20%20%20%20string%20%20%2F%2F%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%22NetInterfaces%22%3A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20only%20for%20vsphere%20no%20agent%20migrate%20now%0A%20%20%20%20%20%20%20%20%20%20%20%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22NetworkId%22%3A%20%20%20%20%20%20%20%20string%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22SecurityGroupId%22%3A%20%20string%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22Mac%22%3A%20%20%20%20%20%20%20%20%20%20%20%20%20%20string%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22SubNets%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22SubnetId%22%3A%20%20%20%20%20string%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22Ip%22%3A%20%20%20%20%20%20%20%20%20%20%20string%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%22TargetHost%22%3A%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22DataCenter%22%3A%20%20%20%20%20%20%20string%0A%20%20%20%20%20%20%20%20%20%20%20%20%22ServerID%22%3A%20%20%20%20%20%20%20%20%20string%20%20%2F%2F%20%E4%BA%91%E7%AB%AF%E8%99%9A%E6%9C%BAid%0A%20%20%20%20%20%20%20%20%20%20%20%20%22ServerName%22%3A%20%20%20%20%20%20%20string%20%20%2F%2F%20%E4%BA%91%E7%AB%AF%E8%99%9A%E6%9C%BA%E5%90%8D%E7%A7%B0%EF%BC%8C%20v2.0%20%E5%8F%AF%E4%BB%A5%E8%AE%BE%E7%BD%AE%0A%20%20%20%20%20%20%20%20%20%20%20%20%22Flavor%22%3A%20%20%20%20%20%20%20%20%20%20%20string%0A%20%20%20%20%20%20%20%20%20%20%20%20%22BandWidth%22%3A%20%20%20%20%20%20%20%20int%0A%20%20%20%20%20%20%20%20%20%20%20%20%22Network%22%3A%20%20%20%20%20%20%20%20%20%20string%20%20%2F%2F%20%2288f001dd-1c42-4eba-9ebc-05e2a57c02ae%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22Subnet%22%3A%20%20%20%20%20%20%20%20%20%20%20string%20%20%2F%2F%20%2288f001dd-1c42-4eba-9ebc-05e2a57c02ae%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22SecGroup%22%3A%20%20%20%20%20%20%20%20%20string%20%20%2F%2F%20%22default%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22CPU%22%3A%20%20%20%20%20%20%20%20%20%20%20%20%20%20int%20%20%20%20%20%2F%2F%204%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22Sockets%22%3A%20%20%20%20%20%20%20%20%20%20int%0A%20%20%20%20%20%20%20%20%20%20%20%20%22Memory%22%3A%20%20%20%20%20%20%20%20%20%20%20int%20%20%20%20%20%2F%2F%20GB%0A%20%20%20%20%20%20%20%20%20%20%20%20%22StorageId%22%3A%20%20%20%20%20%20%20%20string%0A%20%20%20%20%20%20%20%20%20%20%20%20%22AggregateId%22%3A%20%20%20%20%20%20string%0A%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%22SrcTransHost%22%3A%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%22Name%22%3A%20%20%20%20%20%20%20%20%20%20%20%20string%20%20%2F%2F%20%22Transport%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%22MgntAddr%22%3A%20%20%20%20%20%20%20%20string%0A%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%22TransHost%22%3A%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%22Name%22%3A%20%20%20%20%20%20%20%20%20%20%20%20string%20%20%2F%2F%20%22Transport%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%22MgntAddr%22%3A%20%20%20%20%20%20%20%20string%20%20%2F%2F%20%22172.16.57.27%22%2C%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%22StorageId%3A%C2%A0%C2%A0%20%20%20%20%20%20string%0A%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%20%C2%A0%C2%A0%22StorageType%3A%C2%A0%20%20%20%20%20string%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%7D%0A%0A%2F%2F%20note%0AActionState%0Aenum%20(%0A%20%20%20%20TaskCreated%20%20%20%20%20%20%3D%201000%20%20%20%20%20%20%20%20%2F%2FSetup%20Task%0A%20%20%20%20TaskWaitSnapshot%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2FCloud%20Volume%20Ready%20or%20rpc%20receive%20progress%3D100%25%0A%20%20%20%20TaskSnapshotted%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2FAfter%20Call%20Transport%20Create%20Snapshot%0A%20%20%20%20TaskStopped%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2Fstop%20create%20instance%20due%20to%20cloud%20network%20or%20ak%2Fsk%20error%0A%20%20%20%20TaskSuccess%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2Fafter%20create%20instance%20available%0A%20%20%20%20TaskExcuteV2V%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2Fcall%20transport%20to%20do%20v2v%0A%20%20%20%20TaskWaitRecovery%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2Fafter%20v2v%20success%0A%20%20%20%20TaskInRecovery%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2Fcall%20create%20instance%0A%20%20%20%20TaskError%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2FError%20occured%0A%20%20%20%20TaskCompleted%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2Fafter%20create%20vm%20or%20after%20error%20occured%2Ctask%20finished%0A)%0A%0A%0A%60%60%60%0A%0A%23%23%23%20CompleteTask%0A%0A%E8%87%B3%E5%B0%91%E5%85%A8%E9%87%8F%E6%95%B0%E6%8D%AE%E8%BF%81%E7%A7%BB%E5%AE%8C%E6%88%90%E5%90%8E%E6%89%8D%E5%8F%AF%E4%BB%A5%E8%BF%9B%E8%A1%8C%E6%93%8D%E4%BD%9C%E3%80%82%EF%BC%88SnapTimes%20%3E%3D2%20%E6%88%96%E8%80%85Process%3D%3D100%25%EF%BC%89%0A%0A%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Action'%20%20%20%20%20%20%20%20%3A%20'CompleteTask'%0A%20%20%20%20'Id'%20%20%20%20%20%20%20%20%20%20%20%20%3A%20STRING%2C%0A%7D%0A%60%60%60%0A%0AResponse%EF%BC%9A%0A%0A%60%60%60%0A%7B%0A%20%20%20'Code'%3A%20true%20%7C%20false%0A%20%20%20'Msg'%20%3A%20Success%20or%20error%20description%0A%20%20%20%22Data%22%3A%20null%0A%7D%0A%0A%60%60%60%0A%0A%23%23%23%20ContinueTask%0AV2.0%20%E6%96%B0%E5%A2%9E%0A%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0%EF%BC%9A%0A%60%60%60%0A%7B%0A%20%20%20%20'Action'%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20'ContinueTask'%0A%20%20%20%20%22Id%22%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20string%2C%20%2F%2FTaskID%0A%7D%0A%60%60%60%0A%E8%BF%94%E5%9B%9E%E5%8F%82%E6%95%B0%EF%BC%9A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Code'%20%3A%20%20int%20%20%20%20%20%20%20%20%2F%2F%E6%88%90%E5%8A%9F%E8%BF%94%E5%9B%9E%200%EF%BC%8C%0A%20%20%20%20'Msg'%20%20%3A%20DESC%20STRING%20%2F%2FSuccess%20or%20Error%20Code%20Description%0A%7D%0A%60%60%60%0A%0A%23%23%23%20CheckTaskInfoExisting%0Av2.0%E6%96%B0%E5%A2%9E%0A%0A%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0%EF%BC%9A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Action'%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20'CheckTargetHostInfoExisting'%2C%20%0A%20%20%20%20'CloudId'%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20string%2C%20%20%20%2F%2F%E4%BA%91%E5%B9%B3%E5%8F%B0%20uuid%0A%20%20%20%20'TaskName'%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20string%2C%20%20%2F%2F%20%E4%BB%BB%E5%8A%A1%E5%90%8D%E7%A7%B0%0A%20%20%20%20'TargetServerName'%20%20%20%20%20%20%3A%20string%20%2F%2F%20%E4%BA%91%E7%AB%AF%E8%99%9A%E6%9C%BA%E5%90%8D%E7%A7%B0%20%20%20%2Cv2.0%E6%B7%BB%E5%8A%A0%0A%20%20%20%20'CloudVolumeNames'%20%20%20%20%20%20%3A%20%5B%5Dstring%20%2F%2F%20%E4%BA%91%E7%AB%AF%E7%A3%81%E7%9B%98%E5%90%8D%E7%A7%B0%20%20%20%2Cv2.0%E6%B7%BB%E5%8A%A0%0A%20%20%20%20'NetInterfaces'%20%20%20%20%20%20%20%20%20%3A%0A%20%20%20%20%5B%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22NetworkId%22%3A%20%20%20%20%20%20%20%20string%0A%20%20%20%20%20%20%20%20%20%20%20%20%22SecurityGroupId%22%3A%20%20string%0A%20%20%20%20%20%20%20%20%20%20%20%20%22Mac%22%3A%20%20%20%20%20%20%20%20%20%20%20%20%20%20string%0A%20%20%20%20%20%20%20%20%20%20%20%20%22SubNets%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22SubnetId%22%3A%20%20%20%20%20string%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22Ip%22%3A%20%20%20%20%20%20%20%20%20%20%20string%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%5D%0A%7D%0A%60%60%60%0A%E8%BF%94%E5%9B%9E%E5%8F%82%E6%95%B0%EF%BC%9A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Code'%20%20%3A%20int%20%20%20%20%20%20%20%20%2F%2F%E6%88%90%E5%8A%9F%E8%BF%94%E5%9B%9E%200%EF%BC%8C%20%20%20%E9%87%8D%E5%90%8D%E8%BF%94%E5%9B%9E1%0A%20%20%20%20'Msg'%20%20%20%3A%20DESC%20STRING%20%2F%2FSuccess%20or%20Error%20Code%20Description%0A%20%20%20%20%22Data%22%20%20%3A%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%22TaskNameExisted%22%3A%20%20%20%20%20%20%22%22%0A%20%20%20%20%20%20%20%20%22ServerNameExisted%22%3A%20%20%20%20%22%22%20%20%20%20%20%20%20%20%20%20%2F%2F%20v2.0%20%E6%B7%BB%E5%8A%A0%EF%BC%8C%E5%A6%82%E6%9E%9C%E4%BA%91%E4%B8%BB%E6%9C%BA%E5%90%8D%E7%A7%B0%E9%87%8D%E5%A4%8D%EF%BC%8C%E5%80%BC%E4%B8%BA%E4%B8%BB%E6%9C%BA%E5%90%8D%EF%BC%8C%E5%90%A6%E5%88%99%E4%B8%BA%22%22%0A%20%20%20%20%20%20%20%20%22VolumeNameExisted%22%3A%20%20%20%20%5B%5Dstring%20%20%20%20%2F%2F%20v2.0%20%E6%B7%BB%E5%8A%A0%EF%BC%8C%E9%87%8D%E5%A4%8D%E7%9A%84%E4%BA%91%E7%A1%AC%E7%9B%98%E5%90%8D%E7%A7%B0%0A%20%20%20%20%20%20%20%20%22MacExisted%22%3A%20%20%20%20%20%20%20%20%20%20%20%5B%5Dstring%20%20%20%20%2F%2F%20%E5%9C%A8%E4%BA%91%E5%B9%B3%E5%8F%B0%E4%B8%8A%E9%87%8D%E5%A4%8D%E7%9A%84mac%E5%9C%B0%E5%9D%80%0A%20%20%20%20%20%20%20%20%22IpExisted%22%3A%0A%20%20%20%20%20%20%20%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22NetworkId%22%3A%20%20%20%20string%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22Ips%22%3A%20%20%20%20%20%20%20%20%20%20%5B%5Dstring%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%7D%0A%7D%0A%60%60%60%0A%0A%23%23%23%20CheckTasksInfoExisting%0Av2.3%E6%96%B0%E5%A2%9E%0A%0A%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0%EF%BC%9A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Action'%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20'CheckTasksInfoExisting'%2C%20%0A%20%20%20%20'CloudId'%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20string%2C%20%20%20%2F%2F%E4%BA%91%E5%B9%B3%E5%8F%B0%20uuid%0A%20%20%20%20'Data'%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%0A%20%20%20%20%5B%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20'HostId'%3A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20string%20%20%20%20%2F%2F%20HostId%E4%BD%9C%E4%B8%BA%E5%94%AF%E4%B8%80%E6%A0%87%E8%AF%86%E7%AC%A6%0A%20%20%20%20%20%20%20%20%20%20%20%20'TaskName'%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20string%20%20%20%20%2F%2F%20%E4%BB%BB%E5%8A%A1%E5%90%8D%E7%A7%B0%0A%20%20%20%20%20%20%20%20%20%20%20%20'TargetServerName'%20%20%20%20%20%20%3A%20string%20%20%20%20%2F%2F%20%E4%BA%91%E7%AB%AF%E8%99%9A%E6%9C%BA%E5%90%8D%E7%A7%B0%0A%20%20%20%20%20%20%20%20%20%20%20%20'CloudVolumeNames'%20%20%20%20%20%20%3A%20%5B%5Dstring%20%20%2F%2F%20%E4%BA%91%E7%AB%AF%E7%A3%81%E7%9B%98%E5%90%8D%E7%A7%B0%0A%20%20%20%20%20%20%20%20%20%20%20%20'NetInterfaces'%20%20%20%20%20%20%20%20%20%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22NetworkId%22%3A%20%20%20%20%20%20%20%20string%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22SecurityGroupId%22%3A%20%20string%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22Mac%22%3A%20%20%20%20%20%20%20%20%20%20%20%20%20%20string%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22SubNets%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22SubnetId%22%3A%20string%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22Ip%22%3A%20%20%20%20%20%20%20string%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%5D%0A%7D%0A%60%60%60%0A%E8%BF%94%E5%9B%9E%E5%8F%82%E6%95%B0%EF%BC%9A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Code'%20%20%3A%20int%20%20%20%20%20%20%20%20%2F%2F%E6%88%90%E5%8A%9F%E8%BF%94%E5%9B%9E%200%EF%BC%8C%20%20%20%E9%87%8D%E5%90%8D%E8%BF%94%E5%9B%9E1%0A%20%20%20%20'Msg'%20%20%20%3A%20DESC%20STRING%20%2F%2FSuccess%20or%20Error%20Code%20Description%0A%20%20%20%20%22Data%22%20%20%3A%0A%20%20%20%20%5B%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22HostId%22%3A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20string%20%20%20%20%20%20%2F%2F%20HostId%E4%BD%9C%E4%B8%BA%E5%94%AF%E4%B8%80%E6%A0%87%E8%AF%86%E7%AC%A6%0A%20%20%20%20%20%20%20%20%20%20%20%20%22TaskNameExisted%22%3A%20%20%20%20%20%20string%20%20%20%20%20%20%2F%2F%20%E5%A6%82%E6%9E%9C%E4%BB%BB%E5%8A%A1%E5%90%8D%E7%A7%B0%E9%87%8D%E5%A4%8D%EF%BC%8C%E5%80%BC%E4%B8%BA%E4%BB%BB%E5%8A%A1%E5%90%8D%EF%BC%8C%E5%90%A6%E5%88%99%E4%B8%BA%22%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%22ServerNameExisted%22%3A%20%20%20%20string%20%20%20%20%20%20%2F%2F%20%E5%A6%82%E6%9E%9C%E4%BA%91%E4%B8%BB%E6%9C%BA%E5%90%8D%E7%A7%B0%E9%87%8D%E5%A4%8D%EF%BC%8C%E5%80%BC%E4%B8%BA%E4%B8%BB%E6%9C%BA%E5%90%8D%EF%BC%8C%E5%90%A6%E5%88%99%E4%B8%BA%22%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%22VolumeNameExisted%22%3A%20%20%20%20%5B%5Dstring%20%20%20%20%2F%2F%20%E9%87%8D%E5%A4%8D%E7%9A%84%E4%BA%91%E7%A1%AC%E7%9B%98%E5%90%8D%E7%A7%B0%0A%20%20%20%20%20%20%20%20%20%20%20%20%22MacExisted%22%3A%20%20%20%20%20%20%20%20%20%20%20%5B%5Dstring%20%20%20%20%2F%2F%20%E5%9C%A8%E4%BA%91%E5%B9%B3%E5%8F%B0%E4%B8%8A%E9%87%8D%E5%A4%8D%E7%9A%84mac%E5%9C%B0%E5%9D%80%0A%20%20%20%20%20%20%20%20%20%20%20%20%22IpExisted%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22NetworkId%22%3A%20%20%20%20string%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22Ips%22%3A%20%20%20%20%20%20%20%20%20%20%5B%5Dstring%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%5D%0A%7D%0A%60%60%60%0A%0A%23%23%23%20DisplayTaskHistory%0A%0A%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Action'%20%20%20%20%20%20%20%20%3A%20'DisplayTaskHistory'%0A%20%20%20%20'Id'%20%20%20%20%20%3A%20string%2C%0A%7D%0A%60%60%60%0A%0AResponse%EF%BC%9A%0A%0A%60%60%60%0A%7B%0A%20%20%20'Code'%3A%20true%20%7C%20false%0A%20%20%20'Msg'%20%3A%20Success%20or%20error%20description%0A%20%20%20%22Data%22%3A%20%5B%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20'Number'%20%20%20%20%20%20%20%20%EF%BC%9A%20int%20%20%2F%2F%E7%BC%96%E7%A0%81%0A%20%20%20%20%20%20%20%20%20%20%20%20'Msg'%20%20%20%20%20%20%20%20%20%20%20%3A%20%20STRING%2C%2F%2Fstatus%20description%0A%20%20%20%20%20%20%20%20%20%20%20%20'Timestamp'%20%20%20%20%20%3A%20%20YYYY-MM-DD%20HH%3AMM%3ASS%2C%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%5D%0A%7D%0A%60%60%60%0A%0A%23%23%23%20ListAvailableSnapshot%0A%0A%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Action'%20%3A%20'ListSnapshots'%0A%20%20%20%20'Id'%20%20%20%20%20%3A%20STRING%2C%20%2F%2FTASKID%0A%7D%0A%60%60%60%0A%0AResponse%EF%BC%9A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20%22Code%22%3A0%2C%0A%20%20%20%20%22Msg%22%3A%22Get%20Task%20Snapshots%20Success.%22%2C%0A%20%20%20%20%22Data%22%3A%5B%7B%0A%20%20%20%20%20%20%20%20%22TimeStamp%22%3A%222018-12-29%2018%3A36%3A25%22%20%2F%2F%E5%88%97%E8%A1%A8%E6%98%BE%E7%A4%BA%E5%BF%AB%E7%85%A7%E6%97%B6%E9%97%B4%E6%88%B3%0A%20%20%20%20%7D%5D%0A%60%60%60%0A%0A%23%23%23%20ListVolumeTypes%0A%0A%E8%AF%B7%E6%B1%82%EF%BC%9A%0A%60%60%60%0A%7B%0A%20%20%20%20'Action'%20%20%20%3A%20'ListVolumeTypes'%0A%20%20%20%20'Id'%20%20%3A%20Cloud%20STRING%2C%0A%20%20%20%20StorageId%3A%C2%A0%C2%A0string%2C%0A%7D%0A%60%60%60%0AResponse%3A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Code'%20%3A%20true%7Cfalse%2C%2F%2F%E6%88%90%E5%8A%9F%E8%BF%94%E5%9B%9ETrue%EF%BC%8C%20%E5%A4%B1%E8%B4%A5%E8%BF%94%E5%9B%9EFalse%0A%20%20%20%20'Msg'%20%20%3A%20DESC%20STRING%20%2F%2FSuccess%20or%20Error%20Code%20Description%0A%20%20%20%20%22Data%22%3A%20%20%5B%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20'Name'%20%20%3A%22Capacity%22%2C%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20'ID'%20%20%20%20%3A%20%221234%22%0A%20%20%20%20%7D%5D%0A%7D%0A%60%60%60%0A%0A%23%23%23%20ListStorages%0A%0Av2.2%E6%96%B0%E5%A2%9E%0A%E8%AF%B7%E6%B1%82%EF%BC%9A%0A%60%60%60%0A%7B%0A%C2%A0%C2%A0%C2%A0%C2%A0'Action'%C2%A0%C2%A0%C2%A0%3A%C2%A0'ListStorages'%0A%C2%A0%C2%A0%C2%A0%C2%A0'Id'%C2%A0%C2%A0%3A%C2%A0Cloud%C2%A0id%2C%C2%A0STRING%2C%0A%C2%A0%C2%A0%C2%A0%C2%A0StorageId%3A%C2%A0%C2%A0string%2C%0A%7D%0A%60%60%60%0AResponse%3A%0A%60%60%60%0A%7B%0A%C2%A0%C2%A0%C2%A0%C2%A0'Code'%C2%A0%3A%C2%A00%2C%0A%C2%A0%C2%A0%C2%A0%C2%A0'Msg'%C2%A0%C2%A0%3A%C2%A0DESC%C2%A0STRING%C2%A0%2F%2FSuccess%C2%A0or%C2%A0Error%C2%A0Code%C2%A0Description%0A%C2%A0%C2%A0%C2%A0%C2%A0%22Data%22%3A%C2%A0%C2%A0%5B%7B%0A%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0'Name'%C2%A0%C2%A0%3A%22arstor%22%2C%C2%A0%0A%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0'ID'%C2%A0%C2%A0%C2%A0%C2%A0%3A%C2%A0%22123423123%22%2C%0A%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0'Type'%3A%C2%A0%C2%A0%22%22%2C%0A%C2%A0%C2%A0%C2%A0%C2%A0%7D%5D%0A%7D%0A%60%60%60%0A%0A%23%23%23%20ListInstanceFlavors%0A%0A%E8%AF%B7%E6%B1%82%EF%BC%9A%0A%60%60%60%0A%7B%0A%20%20%20%20'Action'%20%20%20%3A%20'ListFlavors'%0A%20%20%20%20'Id'%20%20%20%20%20%20%20%3A%20Cloud%20STRING%2C%0A%7D%0A%60%60%60%0AResponse%3A%0A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Flavors'%20%3A%20%0A%20%20%20%20%5B%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20'Name'%20%20%3A%202%E6%A0%B84G_SERIES_STANDARD%20%E6%88%96%E8%80%85%202%E6%A0%B84G_SERIES_SUPERCOMPUTER%20%E7%AD%89%20%20%2F%2F%20%E7%95%8C%E9%9D%A2%E6%98%BE%E7%A4%BA%E4%B8%BA%202%E6%A0%B84G_%E6%99%AE%E9%80%9A%E5%9E%8B%2C%202%E6%A0%B84G_%E5%A2%9E%E5%BC%BA%E5%9E%8B%0A%20%20%20%20%20%20%20%20%20%20%20%20'Ram'%20%20%20%EF%BC%9A1024%20%2F%2Fmb%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20'vCPU'%20%20%3A%201%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20'ID'%20%20%20%20%3A%202%E6%A0%B84G_SERIES_STANDARD%20%20%20%2C%20%20%20%2F%2Fopenstack%20uuid%EF%BC%8C%20%E5%8D%8E%E4%BA%91%E5%85%AC%E6%9C%89%E4%BA%91%0A%20%20%20%20%20%20%20%20%20%20%20%20'Disk'%20%20%3A%2020%2C%0A%20%20%20%20%20%20%20%20%7D%EF%BC%8C%0A%20%20%20%20%5D%0A%7D%0A%0A%23%20%E5%8D%8E%E4%BA%91%20%E5%85%AC%E6%9C%89%E4%BA%91%20%E5%8F%AA%E6%98%AF%E4%BD%BF%E7%94%A8%20%20Name%20%E5%92%8C%20ID%EF%BC%8C%20Name%20%E5%92%8C%20ID%20%E7%9B%B8%E5%90%8C%0A%60%60%60%0A%0A%23%23%23%20ListNetwork%0A%0A%E8%AF%B7%E6%B1%82%0A%60%60%60%0A%7B%0A%20%20%20%20'Action'%20%20%20%20%20%20%3A%20'ListNetworks'%0A%20%20%20%20'Id'%20%3A%20STRING%2C%0A%7D%0A%60%60%60%0A%0AResponse%3A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Networks'%3A%20%5B%7B%0A%20%20%20%20%20%20%20%20'Subnets'%3A%20%5B%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20'Cidr'%3A%20'192.168.1.0%2F24'%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20'Id'%3A%20%222d6e3002-410e-4dd2-98cd-04c7f310a4d0%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20'Cidr'%3A%20'192.168.2.0%2F24'%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20'Id'%3A%20%22fe7a1873-f41b-4125-9ccf-798dd8a678a3%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%5D%2C%0A%20%20%20%20%20%20%20%20'Name'%3A%20'my_vpc'%2C%0A%20%20%20%20%20%20%20%20'Id'%20%20%3A%20%223a90ae79-9b69-4b79-b7b9-5ad5f105bfd5%22%2C%0A%20%20%20%20%20%20%20%20%22Ref%22%20%3A%20%22500d9435-d3db-7bb1-c32a-fbe807fc7faf%22%0A%20%20%20%20%7D%5D%0A%7D%0A%60%60%60%0A%0A%23%23%23%20List%20Security%20Group%0A%0A%E8%AF%B7%E6%B1%82%0A%60%60%60%0A%7B%0A%20%20%20%20'Action'%20%20%20%20%20%3A%20'ListSecurityGroups'%0A%20%20%20%20'Id'%20%3A%20STRING%2C%0A%7D%0A%60%60%60%0A%0AResponse%3A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'SecurityGroup'%3A%20%5B%7B%0A%20%20%20%20%20%20%20%20'Name'%3A%20'default'%0A%20%20%20%20%20%20%20%20'ID'%20%20%3A%20%223a90ae79-9b69-4b79-b7b9-5ad5f105bfd5%22%0A%20%20%20%20%7D%5D%0A%7D%0A%60%60%60%0A%0A%23%23%23%20List%20Quota%0A%0A%E8%AF%B7%E6%B1%82%0A%60%60%60%0A%7B%0A%20%20%20%20'Action'%20%20%20%20%20%3A%20'ListQuota'%0A%20%20%20%20'Id'%20%3A%20STRING%2C%2F%2FCloudID%0A%7D%0A%60%60%60%0A%0AResponse%3A%0A%0A%60%60%60%0A%7B%22Code%22%3A0%2C%0A%22Msg%22%3A%22%E4%BF%A1%E6%81%AF%E8%8E%B7%E5%8F%96%E6%88%90%E5%8A%9F%22%2C%0A%22Data%22%3A%7B%22CPU%22%3A996%2C%22Memory%22%3A992%2C%22Disk%22%3A19718%7D%2F%2FMemory%20DIsk%E5%8D%95%E4%BD%8DGB%0A%7D%0A%60%60%60%0A%0A%23%23%23%20Create%20Instance%0A%0A%E8%AF%B7%E6%B1%82%0A%60%60%60%0A%7B%0A%20%20%20%20'Action'%20%20%20%20%20%20%20%20%20%20%20%20%3A%20'CreateInstance'%0A%20%20%20%20%22Id%22%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20string%20%20%20%20%2F%2FTaskID%0A%20%20%20%20'FlavorId'%20%20%20%20%20%20%20%20%20%20%3A%20string%20%20%20%20%2F%2Ftarget%20vm%20flavor%20id%0A%20%20%20%20'NetworkId'%20%20%20%20%20%20%20%20%20%3A%20string%20%20%20%20%2F%2Fnetwork%20id%0A%20%20%20%20'SubnetId'%20%20%20%20%20%20%20%20%20%20%3A%20string%20%20%20%20%2F%2Fsubnetwork%20id%0A%20%20%20%20'RouteId'%20%20%20%20%20%20%20%20%20%20%20%3A%20string%20%20%20%20%2F%2F%20for%20huayun%20%E5%85%AC%E6%9C%89%E4%BA%91%EF%BC%8C%20%E5%8F%AF%E9%80%89%E5%8F%82%E6%95%B0%0A%20%20%20%20'SecurityGroupId'%20%20%20%3A%20string%20%20%20%20%2F%2Fsecurity%20group%20id%0A%20%20%20%20'Bandwidth'%20%20%20%20%20%20%20%20%20%3A%20int%20%20%20%20%20%20%20%2F%2Fhuayun%E5%85%AC%E6%9C%89%E4%BA%91%2C%20Mbps%0A%20%20%20%20%22AggregateId%22%20%20%20%20%20%20%20%3A%20string%0A%20%20%20%20%22CPU%22%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20int%0A%20%20%20%20%22Sockets%22%20%20%20%20%20%20%20%20%20%20%20%3A%20int%0A%20%20%20%20%22Memory%22%20%20%20%20%20%20%20%20%20%20%20%20%3A%20int%0A%20%20%20%20%22TargetServerName%22%20%20%3A%20string%20%20%20%20%2F%2F%20%E4%BA%91%E7%AB%AF%E8%99%9A%E6%9C%BA%E5%90%8D%E7%A7%B0%20%20%20%2Cv2.0%E6%B7%BB%E5%8A%A0%0A%0A%20%20%20%20%22NetInterfaces%22%20%20%20%20%20%3A%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20only%20for%20vsphere%20no%20agent%20migrate%20now%0A%20%20%20%20%5B%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22NetworkId%22%3A%20%20%20%20%20%20%20%20string%0A%20%20%20%20%20%20%20%20%20%20%20%20%22SecurityGroupId%22%3A%20%20string%0A%20%20%20%20%20%20%20%20%20%20%20%20%22Mac%22%3A%20%20%20%20%20%20%20%20%20%20%20%20%20%20string%0A%20%20%20%20%20%20%20%20%20%20%20%20%22SubNets%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22SubnetId%22%3A%20%20%20%20%20string%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22Ip%22%3A%20%20%20%20%20%20%20%20%20%20%20string%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%5D%0A%7D%0A%60%60%60%0A%0AResponse%3A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Code'%20%3A%20%20int%20%20%20%20%20%20%20%20%2F%2F%E6%88%90%E5%8A%9F%E8%BF%94%E5%9B%9E%200%EF%BC%8C%20%20%20%E7%9B%AE%E6%A0%87%E4%B8%BB%E6%9C%BA%E9%87%8D%E5%90%8D%E8%BF%94%E5%9B%9E1%0A%20%20%20%20'Msg'%20%20%3A%20DESC%20STRING%20%2F%2FSuccess%20or%20Error%20Code%20Description%0A%20%20%20%20%22Data%22%3A%20%7B%0A%20%20%20%20%20%20%20%20%22ID%22%3A%20%22taskid%22%2C%20%20%0A%20%20%20%20%20%20%20%20%22Repeated%22%3A%5B%5D%EF%BC%8C%20%20%23%20v2.0%20%E6%B7%BB%E5%8A%A0%EF%BC%8C%E9%87%8D%E5%A4%8D%E7%9A%84%E4%B8%BB%E6%9C%BA%E5%90%8D%0A%20%20%20%20%20%7D%0A%7D%0A%60%60%60%0A%0A%23%23%23%20Get%20Task%20Recovery%20Instance%0A%0A%E8%AF%B7%E6%B1%82%0A%60%60%60%0A%7B%0A%20%20%20%20'Action'%20%3A%20'GetInstance'%0A%20%20%20%20%22Id%22%20%20%20%20%20%3A%20string%0A%7D%0A%60%60%60%0A%0AResponse%3A%0A%0A%60%60%60%0A%7B%0A%20%20%20Code%EF%BC%9A%20true%20%7Cfalse%0A%20%20%20Msg%3A%20Success%20or%20Error%20Description%0A%20%20%20%22Data%22%3A%20%7BID%3A%20%221234%22%2C%20Name%3A%20%22cmigrate0108-1234%22%7D%0A%7D%0A%60%60%60%0A%0A%23%23%23%20AddVSPlatform%0A%E6%B7%BB%E5%8A%A0vsphere%E5%B9%B3%E5%8F%B0%0A%0A%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0%EF%BC%9A%0A%60%60%60%0A%7B%0A%20%20%20%20%22Action%22%3A%20%20%20%20%20%20%20%22AddVSPlatform%22%0A%20%20%20%20%22Name%22%3A%20%20%20%20%20%20%20%20%20string%0A%20%20%20%20%22Ip%22%3A%20%20%20%20%20%20%20%20%20%20%20string%0A%20%20%20%20%22UserName%22%3A%20%20%20%20%20string%0A%20%20%20%20%22Passwd%22%3A%20%20%20%20%20%20%20string%0A%20%20%20%20%22TransId%22%3A%20%20%20%20%20%20string%0A%7D%0A%60%60%60%0A%0A%E8%BF%94%E5%9B%9E%E5%80%BC%EF%BC%9A%0A%60%60%60%0A%7B%0A%20%20%20%20'Code'%20%3A%200%20%20%20%20%20%20%20%2F%2F%E6%88%90%E5%8A%9F%E8%BF%94%E5%9B%9E%200%0A%20%20%20%20'Msg'%20%20%3A%20DESC%20STRING%20%2F%2FSuccess%20or%20Error%20Code%20Description%0A%20%20%20%20%22data%22%20%3A%20%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%22Count%22%3A%20int%20%2F%2F%20%E6%88%90%E5%8A%9F%E6%B7%BB%E5%8A%A0%E7%9A%84vsphere%E8%99%9A%E6%9C%BA%E7%9A%84%E6%95%B0%E9%87%8F%20%0A%20%20%20%20%7D%0A%7D%0A%0A%7B%0A%20%20%20%20'Code'%20%3A%201%20%20%20%20%20%20%20%2F%2Fvsphere%E5%B9%B3%E5%8F%B0%E4%B8%AD%E5%90%AB%E6%9C%89%E7%9B%B8%E5%90%8Cuuid%E7%9A%84%E8%99%9A%E6%9C%BA%0A%20%20%20%20'Msg'%20%20%3A%20DESC%20STRING%20%2F%2FSuccess%20or%20Error%20Code%20Description%0A%20%20%20%20%22data%22%20%3A%20%0A%20%20%20%20%5B%0A%20%20%20%20%20%20%20%20%22Name%22%3A%20%20%20%20%20string%0A%20%20%20%20%20%20%20%20%22EsxiHost%22%3A%20string%0A%20%20%20%20%20%20%20%20%22Uuid%22%3A%20%20%20%20%20string%0A%20%20%20%20%5D%0A%7D%0A%60%60%60%0A%0A%23%23%23%20DeleteVSPlatform%0A%E5%88%A0%E9%99%A4vsphere%E5%B9%B3%E5%8F%B0%0A%0A%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0%EF%BC%9A%0A%60%60%60%0A%7B%0A%20%20%20%20%22Action%22%3A%20%20%20%22DeleteVSPlatform%22%0A%20%20%20%20%22ID%22%3A%20%20%20%20%20%20%20string%0A%7D%0A%60%60%60%0A%E8%BF%94%E5%9B%9E%E5%80%BC%EF%BC%9A%0A%60%60%60%0A%7B%0A%20%20%20%20'Code'%20%3A%200%20%20%20%20%20%20%20%2F%2F%20%E5%88%A0%E9%99%A4%E6%88%90%E5%8A%9F%0A%20%20%20%20'Msg'%20%20%3A%20DESC%20STRING%20%2F%2FSuccess%20or%20Error%20Code%20Description%0A%7D%0A%60%60%60%0A%0A%23%23%23%20RefreshVSPlatform%0A%E5%88%B7%E6%96%B0vsphere%E5%B9%B3%E5%8F%B0%E7%9A%84%E8%99%9A%E6%9C%BA%E6%A0%91%E5%BD%A2%E7%BB%93%E6%9E%84%E4%BB%A5%E5%8F%8A%E8%99%9A%E6%9C%BA%E9%85%8D%E7%BD%AE%0A%0A%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0%EF%BC%9A%0A%60%60%60%0A%7B%0A%20%20%20%20%22Action%22%3A%20%20%20%22RefreshVSPlatform%22%0A%20%20%20%20%22ID%22%3A%20%20%20%20%20%20%20string%0A%7D%0A%60%60%60%0A%E8%BF%94%E5%9B%9E%E5%80%BC%EF%BC%9A%0A%60%60%60%0A%7B%0A%20%20%20%20'Code'%20%3A%200%20%20%20%20%20%20%20%2F%2F%20%E5%88%B7%E6%96%B0%E6%88%90%E5%8A%9F%0A%20%20%20%20'Msg'%20%20%3A%20DESC%20STRING%20%2F%2FSuccess%20or%20Error%20Code%20Description%0A%7D%0A%60%60%60%0A%0A%23%23%23%20UpdateVSPlatform%0A%E6%9B%B4%E6%96%B0vsphere%E5%B9%B3%E5%8F%B0%E4%BF%A1%E6%81%AF%0A%0A%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0%EF%BC%9A%0A%60%60%60%0A%7B%0A%20%20%20%20%22Action%22%3A%20%20%20%20%20%20%20%22UpdateVSPlatform%22%0A%20%20%20%20%22ID%22%3A%20%20%20%20%20%20%20%20%20%20%20string%0A%20%20%20%20%22Name%22%3A%20%20%20%20%20%20%20%20%20string%0A%20%20%20%20%22UserName%22%3A%20%20%20%20%20string%0A%20%20%20%20%22Passwd%22%3A%20%20%20%20%20%20%20string%0A%20%20%20%20%22TransId%22%3A%20%20%20%20%20%20string%0A%7D%0A%60%60%60%0A%0A%E8%BF%94%E5%9B%9E%E5%80%BC%EF%BC%9A%0A%60%60%60%0A%7B%0A%20%20%20%20'Code'%20%3A%200%20%20%20%20%20%20%20%2F%2F%20%E6%9B%B4%E6%96%B0%E6%88%90%E5%8A%9F%0A%20%20%20%20'Msg'%20%20%3A%20DESC%20STRING%20%2F%2FSuccess%20or%20Error%20Code%20Description%0A%7D%0A%60%60%60%0A%0A%23%23%23%20ListVSHosts%0A%E8%8E%B7%E5%8F%96vsphere%E5%B9%B3%E5%8F%B0%E7%9A%84%E8%99%9A%E6%9C%BA%E6%A0%91%E5%BD%A2%E7%BB%93%E6%9E%84%E4%BB%A5%E5%8F%8A%E6%BA%90%E4%B8%BB%E6%9C%BA%E4%BF%A1%E6%81%AF%0A%0A%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0%EF%BC%9A%0A%60%60%60%0A%7B%0A%20%20%20%20%22Action%22%3A%20%20%20%22ListVSHosts%22%0A%7D%0A%60%60%60%0A%E8%BF%94%E5%9B%9E%E5%80%BC%EF%BC%9A%0A%60%60%60%0A%7B%0A%20%20%20%20'Code'%20%3A%200%20%20%20%20%20%20%20%2F%2F%20%E5%88%B7%E6%96%B0%E6%88%90%E5%8A%9F%0A%20%20%20%20'Msg'%20%20%3A%20DESC%20STRING%20%2F%2FSuccess%20or%20Error%20Code%20Description%0A%20%20%20%20%22Data%22%20%3A%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22ID%22%3A%20%20%20%20%20%20%20%20%20%20%20string%20%20%20%2F%2F%20vsphere%20platform%20ID%0A%20%20%20%20%20%20%20%20%20%20%20%20%22Name%22%3A%20%20%20%20%20%20%20%20%20string%20%20%20%2F%2F%20vsphere%20platform%20Name%0A%20%20%20%20%20%20%20%20%20%20%20%20%22Ip%22%3A%20%20%20%20%20%20%20%20%20%20%20string%20%20%20%2F%2F%20vsphere%20platform%20ip%0A%20%20%20%20%20%20%20%20%20%20%20%20%22IsVcenter%22%3A%20%20%20%20bool%0A%20%20%20%20%20%20%20%20%20%20%20%20%22DataCenters%22%3A%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22ID%22%3A%20%20%20%20%20%20%20string%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22Name%22%3A%20%20%20%20%20string%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22PhyHosts%22%3A%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22ID%22%3A%20%20%20string%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22Name%22%3A%20string%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22VTs%22%3A%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%E5%90%8C%20GetPackerHost%20%E8%BF%94%E5%9B%9E%E7%9A%84Data%E5%86%85%E5%AE%B9%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22Clusters%22%3A%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22ID%22%3A%20%20%20%20%20%20%20string%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22Name%22%3A%20%20%20%20%20string%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22PhyHosts%22%3A%20%5B%5D%20%20%2F%2F%20%E5%90%8C%E4%B8%8A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22VmGroups%22%3A%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22ID%22%3A%20%20%20%20%20%20%20string%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22Name%22%3A%20%20%20%20%20string%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22VmGroups%22%3A%20%5B%5D%20%20%2F%2F%20%E5%B5%8C%E5%A5%97%EF%BC%8C%E5%90%8C%E4%B8%8A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22VTs%22%3A%20%20%20%20%20%20%5B%5D%20%20%2F%2F%20%E5%90%8C%E4%B8%8A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%7D%0A%7D%0A%60%60%60%0A%0A%23%23%23%20VerifyVSPlatformConnection%0A%E9%AA%8C%E8%AF%81vsphere%E5%B9%B3%E5%8F%B0%E7%9A%84%E8%BF%9E%E9%80%9A%E6%80%A7%0A%0A%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Action'%20%20%20%20%20%20%20%20%3A%20'VerifyVSPlatformConnection'%0A%20%20%20%20'VSPlatformID'%20%20%3A%20STRING%0A%20%20%20%20'TransAddr'%20%20%20%20%20%3A%20STRING%0A%7D%0A%60%60%60%0A%0A%E8%BF%94%E5%9B%9E%E5%8F%82%E6%95%B0%EF%BC%9A%0A%0A%60%60%60%0A%7B%0A%20%20%20%20'Code'%20%3A%20true%7Cfalse%2C%2F%2F%E6%88%90%E5%8A%9F%E8%BF%94%E5%9B%9ETrue%EF%BC%8C%20%E5%A4%B1%E8%B4%A5%E8%BF%94%E5%9B%9EFalse%0A%20%20%20%20'Msg'%20%20%3A%20DESC%20STRING%20%2F%2FSuccess%20or%20Error%20Code%20Description%0A%7D%0A%60%60%60%0A%0A