虚拟机相关接口

创建虚拟机自定义操作系统规范

POST/zstack/v1/vm-custom-specifications

Headers

Authorization: OAuth the-session-uuid

Body

{
  "params": {
    "name": "custom-specification-for-vm-1",
    "description": "Test",
    "platform": "Windows",
    "hostname": "vm-1",
    "rootPassword": "password",
    "generateSID": true,
    "domainMode": "Domain",
    "domainName": "zsv.test",
    "domainUsername": "administrator",
    "domainPassword": "password",
    "organization": "OU=zsv,DC=zsv,DC=test"
  },
  "systemTags": [],
  "userTags": []
}

上述示例中systemTagsuserTags字段可以省略。列出是为了表示body中可以包含这两个字段。

Curl示例

curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"name":"custom-specification-for-vm-1","description":"Test","platform":"Windows","hostname":"vm-1","rootPassword":"password","generateSID":true,"domainMode":"Domain","domainName":"zsv.test","domainUsername":"administrator","domainPassword":"password","organization":"OU=zsv,DC=zsv,DC=test"}}' \
http://localhost:8080/zstack/v1/vm-custom-specifications

参数列表

名字

类型

位置

描述

可选值

起始版本

name

String

body(包含在params结构中)

资源名称

 

4.10.18

description (可选)

String

body(包含在params结构中)

资源的详细描述

 

4.10.18

platform

String

body(包含在params结构中)

虚拟机操作系统平台类型

  • Linux
  • Windows
  • WindowsVirtio
  • Other
  • Paravirtualization

4.10.18

hostname (可选)

String

body(包含在params结构中)

主机名称

 

4.10.18

rootPassword (可选)

String

body(包含在params结构中)

管理员密码

 

4.10.18

generateSID (可选)

Boolean

body(包含在params结构中)

是否生成SID

 

4.10.18

domainMode (可选)

String

body(包含在params结构中)

加域模式

  • WorkGroup
  • Domain

4.10.18

domainName (可选)

String

body(包含在params结构中)

域名称或工作组名称

 

4.10.18

domainUsername (可选)

String

body(包含在params结构中)

域用户名

 

4.10.18

domainPassword (可选)

String

body(包含在params结构中)

域用户密码

 

4.10.18

organization (可选)

String

body(包含在params结构中)

组织单位

 

4.10.18

resourceUuid (可选)

String

body(包含在params结构中)

资源UUID

 

4.10.18

tagUuids (可选)

List

body(包含在params结构中)

标签UUID列表

 

4.10.18

systemTags (可选)

List

body

系统标签

 

4.10.18

userTags (可选)

List

body

用户标签

 

4.10.18

API返回

返回示例

{
  "inventory": {
    "uuid": "ff0a9e874342368bb28daaf2c9b3cc00",
    "vmInstanceUuid": "ff01ec80fd11327cba7519b66119d900",
    "name": "custom-specification-for-vm-1",
    "description": "Test",
    "platform": "Windows",
    "hostname": "vm-1",
    "rootPassword": "password",
    "generateSID": true,
    "domainMode": "Domain",
    "domainName": "zsv.test",
    "domainUsername": "test",
    "domainPassword": "password",
    "organization": "OU=zsv,DC=zsv,DC=test"
  }
}
名字类型描述起始版本
successboolean请求是否成功4.10.18
inventoryVmCustomSpecificationInventory详情参考inventory4.10.18
errorErrorCode详情参考error4.10.18

inventory

名字类型描述起始版本
uuidString资源的UUID,唯一标示该资源4.10.18
vmInstanceUuidString虚拟机UUID4.10.18
nameString资源名称4.10.18
descriptionString资源的详细描述4.10.18
platformString虚拟机操作系统平台类型4.10.18
hostnameString主机名称4.10.18
generateSIDBoolean是否生成SID4.10.18
domainNameString域名称或工作组名称4.10.18
domainUsernameString域用户名4.10.18
organizationString组织单位4.10.18
createDateTimestamp创建时间4.10.18
lastOpDateTimestamp最后一次修改时间4.10.18
domainModeVmCustomSpecificationDomainMode详情参考domainMode4.10.18

domainMode

名字类型描述起始版本
WorkGroupVmCustomSpecificationDomainMode工作组4.10.18
DomainVmCustomSpecificationDomainMode4.10.18

error

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

SDK示例

Java SDK

CreateVmCustomSpecificationAction action = new CreateVmCustomSpecificationAction();
action.name = "custom-specification-for-vm-1";
action.description = "Test";
action.platform = "Windows";
action.hostname = "vm-1";
action.rootPassword = "password";
action.generateSID = true;
action.domainMode = "Domain";
action.domainName = "zsv.test";
action.domainUsername = "administrator";
action.domainPassword = "password";
action.organization = "OU=zsv,DC=zsv,DC=test";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
CreateVmCustomSpecificationAction.Result res = action.call();

Python SDK

action = CreateVmCustomSpecificationAction()
action.name = "custom-specification-for-vm-1"
action.description = "Test"
action.platform = "Windows"
action.hostname = "vm-1"
action.rootPassword = "password"
action.generateSID = true
action.domainMode = "Domain"
action.domainName = "zsv.test"
action.domainUsername = "administrator"
action.domainPassword = "password"
action.organization = "OU=zsv,DC=zsv,DC=test"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
res = action.call()