虚拟机相关接口

获取目的地列表

GET/zstack/v1/vm-instances/candidate-destinations

获取可以创建指定虚拟机参数的目的数据中心、集群、主机。用户可以使用该API,通过指定虚拟机参数获得可以创建满足参数虚拟机的目的地。

Headers

Authorization: OAuth the-session-uuid

Curl示例

curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/vm-instances/candidate-destinations?\
instanceOfferingUuid=0a3d761b0e3031a9b3c62f418fdade09&imageUuid=f6885d39912b347880517a58a9f5ad5b\
&l3NetworkUuids=51f30f4fcd3b3a0da2998b37f1a8d8a3\
&dataDiskOfferingUuids=cf8aa933d58230ee80a4181a66772d0b\
&dataDiskOfferingUuids=6a5ea214bc88372285ff3c301d64428c&clusterUuid=1f6b12b24aa03d4bb57f84a2df4a03f4

参数列表

名字类型位置描述可选值起始版本
instanceOfferingUuid(可选)Stringquery计算规格UUID 0.6
imageUuidStringquery镜像UUID 0.6
l3NetworkUuidsListquery分布式端口组列表 0.6
rootDiskOfferingUuid (可选)Stringquery根硬盘规格。仅在imageUuid指定的镜像是ISO时需要指定 0.6
dataDiskOfferingUuids (可选)Listquery硬盘规格列表 0.6
zoneUuid (可选)Stringquery数据中心UUID 0.6
clusterUuid (可选)Stringquery集群UUID 0.6
defaultL3NetworkUuid (可选)Stringquery默认分布式端口组UUID 0.6
cpuNum (可选)intqueryCPU数目 3.10.0
memorySize (可选)longquery内存大小, 单位Byte 3.10.0
systemTags (可选)Listquery系统标签 0.6
userTags (可选)Listquery用户标签 0.6
rootDiskSize (可选)Longquery根硬盘规格大小。仅在imageUuid指定的镜像是ISO时且rootDiskOfferingUuid为空:需要指定 4.1.2

API返回

返回示例

{
  "zones": [
    {
      "uuid": "88a4f663c5c63a80b74cb8d1bf54a5a5",
      "name": "zone",
      "isDefault": false
    }
  ],
  "clusters": [
    {
      "name": "cluster1",
      "uuid": "779ab0160e9734f8b2de0f75612f794f",
      "hypervisorType": "KVM",
      "createDate": "Nov 14, 2017 10:20:57 PM",
      "lastOpDate": "Nov 14, 2017 10:20:57 PM",
      "zoneUuid": "cb1001af731e3500a07269049e695eaa"
    }
  ],
  "hosts": [
    {
      "zoneUuid": "88a4f663c5c63a80b74cb8d1bf54a5a5",
      "name": "example",
      "uuid": "dee308ca7bf931edbc1adc31735cd9c8",
      "clusterUuid": "0ea74049ad863b3185465ca2e9b7ae06",
      "description": "example",
      "managementIp": "192.168.0.1",
      "hypervisorType": "KVM",
      "state": "Enabled",
      "status": "Connected",
      "totalCpuCapacity": 4,
      "availableCpuCapacity": 2,
      "totalMemoryCapacity": 4,
      "availableMemoryCapacity": 4,
      "createDate": "Nov 14, 2017 10:20:57 PM",
      "lastOpDate": "Nov 14, 2017 10:20:57 PM"
    }
  ]
}
名字类型描述起始版本
successboolean操作是否成功0.6
errorErrorCode错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error0.6
zonesList详情参考zones0.6
clustersList详情参考clusters0.6
hostsList详情参考hosts0.6

error

名字类型描述起始版本
codeString错误码号,错误的全局唯一标识,例如SYS.1000, HOST.10010.6
descriptionString错误的概要描述0.6
detailsString错误的详细信息0.6
elaborationString保留字段,默认为null0.6
opaqueLinkedHashMap保留字段,默认为null0.6
causeErrorCode根错误,引发当前错误的源错误,若无原错误,该字段为null0.6

zones

名字类型描述起始版本
uuidString资源的UUID,唯一标示该资源0.6
nameString资源名称0.6
descriptionString资源的详细描述0.6
stateString 0.6
typeString 0.6
createDateTimestamp创建时间0.6
lastOpDateTimestamp最后一次修改时间0.6

clusters

名字类型描述起始版本
nameString资源名称0.6
uuidString资源的UUID,唯一标示该资源0.6
descriptionString资源的详细描述0.6
stateString集群状态0.6
hypervisorTypeString虚拟机管理程序类型0.6
createDateTimestamp创建时间0.6
lastOpDateTimestamp最后一次修改时间0.6
zoneUuidString数据中心UUID0.6
typeString保留域0.6

hosts

名字类型描述起始版本
zoneUuidString数据中心UUID0.6
nameString资源名称0.6
uuidString资源的UUID,唯一标示该资源0.6
clusterUuidString集群UUID0.6
descriptionString资源的详细描述0.6
managementIpString 0.6
hypervisorTypeString 0.6
stateString 0.6
statusString 0.6
totalCpuCapacityLong 0.6
availableCpuCapacityLong 0.6
cpuSocketsInteger物理CPU插槽数量0.6
totalMemoryCapacityLong 0.6
availableMemoryCapacityLong 0.6
cpuNumInteger逻辑CPU数量0.6
ipmiAddressStringIPMI地址0.6
ipmiUsernameStringIPMI用户名0.6
ipmiPortIntegerIPMI端口0.6
ipmiPowerStatusStringIPMI电源状态0.6
architectureString 0.6
nqnStringNVMe 限定名称4.10.6
hostnameString主机名4.10.20
createDateTimestamp创建时间0.6
lastOpDateTimestamp最后一次修改时间0.6
cpuStatusHwMonitorStatus详情参考cpuStatus4.10.0
memoryStatusHwMonitorStatus详情参考memoryStatus4.10.0
diskStatusHwMonitorStatus详情参考diskStatus4.10.0
nicStatusHwMonitorStatus详情参考nicStatus4.10.0
gpuStatusHwMonitorStatus详情参考gpuStatus4.10.0
powerSupplyStatusHwMonitorStatus详情参考powerSupplyStatus4.10.0
fanStatusHwMonitorStatus详情参考fanStatus4.10.0
raidStatusHwMonitorStatus详情参考raidStatus4.10.0
temperatureStatusHwMonitorStatus详情参考temperatureStatus4.10.0

cpuStatus

名字类型描述起始版本
NormalHwMonitorStatus正常4.10.0
ErrorHwMonitorStatus异常4.10.0
UnknownHwMonitorStatus未知4.10.0

memoryStatus

名字类型描述起始版本
NormalHwMonitorStatus正常4.10.0
ErrorHwMonitorStatus异常4.10.0
UnknownHwMonitorStatus未知4.10.0

diskStatus

名字类型描述起始版本
NormalHwMonitorStatus正常4.10.0
ErrorHwMonitorStatus异常4.10.0
UnknownHwMonitorStatus未知4.10.0

nicStatus

名字类型描述起始版本
NormalHwMonitorStatus正常4.10.0
ErrorHwMonitorStatus异常4.10.0
UnknownHwMonitorStatus未知4.10.0

gpuStatus

名字类型描述起始版本
NormalHwMonitorStatus正常4.10.0
ErrorHwMonitorStatus异常4.10.0
UnknownHwMonitorStatus未知4.10.0

powerSupplyStatus

名字类型描述起始版本
NormalHwMonitorStatus正常4.10.0
ErrorHwMonitorStatus异常4.10.0
UnknownHwMonitorStatus未知4.10.0

fanStatus

名字类型描述起始版本
NormalHwMonitorStatus正常4.10.0
ErrorHwMonitorStatus异常4.10.0
UnknownHwMonitorStatus未知4.10.0

raidStatus

名字类型描述起始版本
NormalHwMonitorStatus正常4.10.0
ErrorHwMonitorStatus异常4.10.0
UnknownHwMonitorStatus未知4.10.0

temperatureStatus

名字类型描述起始版本
NormalHwMonitorStatus正常4.10.0
ErrorHwMonitorStatus异常4.10.0
UnknownHwMonitorStatus未知4.10.0

SDK示例

Java SDK

GetCandidateZonesClustersHostsForCreatingVmAction action = new GetCandidateZonesClustersHostsForCreatingVmAction();
action.instanceOfferingUuid = "0a3d761b0e3031a9b3c62f418fdade09";
action.imageUuid = "f6885d39912b347880517a58a9f5ad5b";
action.l3NetworkUuids = asList("51f30f4fcd3b3a0da2998b37f1a8d8a3");
action.dataDiskOfferingUuids = asList("cf8aa933d58230ee80a4181a66772d0b","6a5ea214bc88372285ff3c301d64428c");
action.clusterUuid = "1f6b12b24aa03d4bb57f84a2df4a03f4";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
GetCandidateZonesClustersHostsForCreatingVmAction.Result res = action.call();

Python SDK

action = GetCandidateZonesClustersHostsForCreatingVmAction()
action.instanceOfferingUuid = "0a3d761b0e3031a9b3c62f418fdade09"
action.imageUuid = "f6885d39912b347880517a58a9f5ad5b"
action.l3NetworkUuids = [51f30f4fcd3b3a0da2998b37f1a8d8a3]
action.dataDiskOfferingUuids = [cf8aa933d58230ee80a4181a66772d0b, 6a5ea214bc88372285ff3c301d64428c]
action.clusterUuid = "1f6b12b24aa03d4bb57f84a2df4a03f4"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
res = action.call()