Create VM (CreateVmInstance)

Create a new Virtual Machine.

API Request

URLs
POST zstack/v1/vm-instances
Headers
Authorization: OAuth the-session-uuid
Body
{   "params": {     "name": "vm1",     "l3NetworkUuids": [       "19d22d051b063d379a2816daaf431838"     ],     "clusterUuid": "a0468dc645223f67bd0f2ab95276bbae",     "description": "this is a vm",     "strategy": "InstantStart",     "diskAOs": [       {         "boot": true,         "platform": "Linux",         "guestOsType": "Helix 8",         "architecture": "x86_64",         "primaryStorageUuid": "ff0359abb8443d2f8077cc368afa7c00",         "size": 0,         "sourceType": "VolumeVO",         "sourceUuid": "ff0eb5a723e9316bb1053ed7e4bb3100",         "systemTags": [           "volumeProvisioningStrategy::ThickProvisioning"         ],         "name": "root-volume"       },       {         "boot": false,         "primaryStorageUuid": "ff0359abb8443d2f8077cc368afa7c00",         "size": 0,         "name": "data-volume"       }     ],     "devices": {       "tpm": {         "enable": true,         "keyProviderUuid": "ff03c7091617357eb4022d11c6860e00",         "resourceKeyCreatedNew": false       }     }   },   "systemTags": [],   "userTags": [] }
Note: In the example above, systemTags and userTags fields can be omitted. They are listed to indicate that the body can contain these two fields.
Curl Example
curl -H "Content-Type: application/json;charset=UTF-8" -H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" -X POST -d '{"params":{"name":"vm1","l3NetworkUuids":["19d22d051b063d379a2816daaf431838"],"clusterUuid":"a0468dc645223f67bd0f2ab95276bbae","description":"this is a vm","strategy":"InstantStart","diskAOs":[{"boot":true,"platform":"Linux","guestOsType":"Helix 8","architecture":"x86_64","primaryStorageUuid":"ff0359abb8443d2f8077cc368afa7c00","size":0,"sourceType":"VolumeVO","sourceUuid":"ff0eb5a723e9316bb1053ed7e4bb3100","systemTags":["volumeProvisioningStrategy::ThickProvisioning"],"name":"root-volume"},{"boot":false,"primaryStorageUuid":"ff0359abb8443d2f8077cc368afa7c00","size":0,"name":"data-volume"}],"devices":{"tpm":{"enable":true,"keyProviderUuid":"ff03c7091617357eb4022d11c6860e00","resourceKeyCreatedNew":false}}}}' http://localhost:8080/zstack/v1/vm-instances
Parameter List
Name Type Location Description Allowed Values Starting Version
name String body (included in params structure) Virtual Machine name 0.6
instanceOfferingUuid (可选) String body (included in params structure) Compute offering UUID
  • Specifies the CPU, memory, and other parameters of the Virtual Machine.
0.6
imageUuid (可选) String body (included in params structure) Image UUID
  • The root disk of the Virtual Machine is created from the Image specified by this field.
0.6
l3NetworkUuids (可选) List body (included in params structure) Distributed Port Group UUID list
  • Specifies one or more Distributed Port Groups. The Virtual Machine creates a NIC on each Distributed Port Group.
0.6
vmNicParams (可选) String body (included in params structure) NIC information 4.7.0
type (可选) String body (included in params structure) Virtual Machine type
  • Reserved field, no need to specify.
  • UserVm
  • ApplianceVm
0.6
rootDiskOfferingUuid (可选) String body (included in params structure) Root disk offering UUID
  • If the Image type specified by the imageUuid field is ISO, this field must be specified to determine the root disk size to be created.
  • If the Image type is non-ISO, this field does not need to be specified.
0.6
dataDiskSizes (可选) List body (included in params structure) Custom disk size list. Specifies one or more disk sizes (can be repeated) to create one or more Data Disks for the Virtual Machine. 4.4.6
dataDiskOfferingUuids (可选) List body (included in params structure) Disk offering UUID list
  • Specifies one or more disk offering UUIDs (UUID can be repeated) to create one or more Data Disks for the Virtual Machine.
0.6
zoneUuid (可选) String body (included in params structure) Data Center UUID
  • If specified, the Virtual Machine is created in the specified Data Center.
0.6
clusterUuid (可选) String body (included in params structure) Cluster UUID
  • If specified, the Virtual Machine is created in the specified Cluster. This field has higher priority than zoneUuid.
0.6
hostUuid (可选) String body (included in params structure) Host UUID
  • If specified, the Virtual Machine is created on the specified Host. This field has higher priority than zoneUuid and clusterUuid.
0.6
primaryStorageUuidForRootVolume (可选) String body (included in params structure) Data Storage UUID
  • If specified, the root disk of the Virtual Machine is created in the specified Data Storage.
1.8
description (可选) String body (included in params structure) Virtual Machine description 0.6
defaultL3NetworkUuid (可选) String body (included in params structure) Default Distributed Port Group UUID
  • When l3NetworkUuids specifies multiple Distributed Port Groups, this field specifies the Distributed Port Group that provides the default route.
  • If not specified, the first network in l3NetworkUuids is selected as the default network.
0.6
resourceUuid (可选) String body (included in params structure) Resource UUID
  • If specified, the Virtual Machine uses this value as its UUID.
0.6
tagUuids (可选) List body (included in params structure) Tag UUID list 3.4.0
systemTags (可选) List body Virtual Machine system tags 0.6
userTags (可选) List body Virtual Machine user tags 0.6
strategy (可选) String body (included in params structure) Virtual Machine creation policy
  • Start immediately after creation
  • Do not start after creation
  • InstantStart
  • JustCreate
  • CreateStopped
0.6
rootVolumeSystemTags (可选) List body (included in params structure) System tags required for the Virtual Machine root disk 3.0
dataVolumeSystemTags (可选) List body (included in params structure) System tags required for the Virtual Machine data disk 3.0
cpuNum (可选) Integer body (included in params structure) 3.4.0
memorySize (可选) Long body (included in params structure) 3.4.0
rootDiskSize (可选) Long body (included in params structure) 3.4.0
dataVolumeSystemTagsOnIndex (可选) Map body (included in params structure) 4.4.24
sshKeyPairUuids (可选) List body (included in params structure) 4.7.21
dataVolumeTemplateUuids (可选) List body (included in params structure) 4.7.0
diskAOs (可选) List body (included in params structure) boot=true indicates diskAO is used to set the Virtual Machine platform, architecture, operating system and root disk bus; diskAO.boot=false indicates loaded disk 4.7.0
platform String body (included in params structure) 4.7.0
guestOsType String body (included in params structure) 4.7.0
architecture String body (included in params structure) 4.7.21
reservedMemorySize (可选) Long body (included in params structure) 4.7.21
virtio (可选) Boolean body (included in params structure) 4.7.0

API Response

Response Example
{   "inventory": {     "uuid": "6efab7159c6932429c6b0e7e0b64b660",     "name": "Test-VM",     "description": "web server VM",     "zoneUuid": "d10bd7a9565138efaf6171db8e18fa7d",     "clusterUuid": "692c71639d873bf6a356cd8e285d0d9c",     "imageUuid": "28061e65e48037eda71b53a0732bf087",     "hostUuid": "f877177de7bd377e811bc6313878b2b1",     "lastHostUuid": "a3ccdc90a600334f994c69aee4270ac5",     "instanceOfferingUuid": "9a874241f867333ca0bf0ab2134f8515",     "rootVolumeUuid": "f52d7c94d69d3bbb97d36a270fe910c3",     "platform": "Linux",     "defaultL3NetworkUuid": "2ac1b70fdb0f38769a29c6ebd0262cca",     "type": "UserVm",     "hypervisorType": "KVM",     "memorySize": 8589934592,     "cpuNum": 1,     "allocatorStrategy": "LastHostPreferredAllocatorStrategy",     "createDate": "Nov 14, 2017 2:20:57 PM",     "lastOpDate": "Nov 14, 2017 2:20:57 PM",     "state": "Running",     "vmNics": [       {         "uuid": "0dfbb8a297e9349ea8799c4ce48c6d10",         "vmInstanceUuid": "6efab7159c6932429c6b0e7e0b64b660",         "usedIpUuid": "39b57596a8ba35289bd9f40efceeae03",         "l3NetworkUuid": "2ac1b70fdb0f38769a29c6ebd0262cca",         "ip": "192.168.1.10",         "mac": "00:0c:29:bd:99:fc",         "hypervisorType": "KVM",         "netmask": "255.255.255.0",         "gateway": "192.168.1.1",         "deviceId": 0,         "createDate": "Nov 14, 2017 2:20:57 PM",         "lastOpDate": "Nov 14, 2017 2:20:57 PM"       }     ],     "allVolumes": [       {         "uuid": "f52d7c94d69d3bbb97d36a270fe910c3",         "name": "Root-Volume-For-VM-6efab7159c6932429c6b0e7e0b64b660",         "primaryStorageUuid": "4ed5bbb150a034b5917e7e6c9c4b8170",         "vmInstanceUuid": "6efab7159c6932429c6b0e7e0b64b660",         "diskOfferingUuid": "0521187274d73f5b936c22b145384c74",         "rootImageUuid": "28061e65e48037eda71b53a0732bf087",         "installPath": "/zstack_ps/rootVolumes/acct-36c27e8ff05c4780bf6d2fa65700f22e/vol-f52d7c94d69d3bbb97d36a270fe910c3/f52d7c94d69d3bbb97d36a270fe910c3.qcow2",         "type": "Root",         "format": "qcow2",         "size": 107374182400,         "actualSize": 21474836480,         "deviceId": 0,         "state": "Enabled",         "status": "Ready",         "createDate": "Nov 14, 2017 2:20:57 PM",         "lastOpDate": "Nov 14, 2017 2:20:57 PM"       }     ]   } }
Name Type Description Starting Version
success boolean 0.6
error ErrorCode Error code. If not null, the operation failed. If null, the operation succeeded. See error 0.6
inventory VmInstanceInventory See inventory for details. 0.6
#error
Name Type Description Starting Version
code String Error code number, globally unique identifier for the error, for example SYS.1000, HOST.1001 0.6
description String Brief description of the error 0.6
details String Detailed error information 0.6
elaboration String Reserved field, defaults to null 0.6
opaque LinkedHashMap Reserved field, defaults to null 0.6
cause ErrorCode Root error. The error that caused this error. If there is no original error, this field is null 0.6
#inventory
Name Type Description Starting Version
uuid String Resource UUID. Uniquely identifies the resource 0.6
name String Resource name 0.6
description String Resource description 0.6
zoneUuid String Data Center UUID 0.6
clusterUuid String Cluster UUID 0.6
imageUuid String Image UUID 0.6
hostUuid String Host UUID 0.6
lastHostUuid String Host UUID where the Virtual Machine last ran 0.6
instanceOfferingUuid String Compute offering UUID 0.6
rootVolumeUuid String Root disk UUID 0.6
platform String Virtual Machine running platform 0.6
architecture String 0.6
defaultL3NetworkUuid String Default Distributed Port Group UUID 0.6
type String Virtual Machine type 0.6
hypervisorType String Hypervisor type of the Virtual Machine 0.6
memorySize Long Memory size 0.6
cpuNum Integer CPU number 0.6
cpuSpeed Long CPU speed 0.6
allocatorStrategy String Allocation strategy 0.6
createDate Timestamp Create time 0.6
lastOpDate Timestamp Last modification time 0.6
state String Virtual Machine availability state 0.6
guestOsType String 4.1.2
vmNics List See vmNics for details. 0.6
allVolumes List See allVolumes for details. 0.6
vmCdRoms List See vmCdRoms for details. 0.6
#vmNics
Name Type Description Starting Version
uuid String Resource UUID. Uniquely identifies the resource 4.7.13
vmInstanceUuid String Virtual Machine UUID 4.7.13
l3NetworkUuid String Distributed Port Group UUID 4.7.13
ip String 4.7.13
mac String 4.7.13
hypervisorType String 4.7.13
netmask String 4.7.13
gateway String 4.7.13
metaData String 4.7.13
ipVersion Integer 4.7.13
driverType String 4.7.13
internalName String 4.7.13
deviceId Integer 4.7.13
type String 4.7.13
state String NIC status 4.7.13
createDate Timestamp Create time 4.7.13
lastOpDate Timestamp Last modification time 4.7.13
usedIps List See usedIps for details. 4.7.13
#usedIps
名字 类型 描述 起始版本
uuid String Resource UUID. Uniquely identifies the resource 4.7.13
ipRangeUuid String IP range UUID 4.7.13
l3NetworkUuid String Distributed Port Group UUID 4.7.13
ipVersion Integer 4.7.13
ip String 4.7.13
netmask String 4.7.13
gateway String 4.7.13
usedFor String 4.7.13
ipInLong long 4.7.13
vmNicUuid String Virtual Machine NIC UUID 4.7.13
createDate Timestamp Create time 4.7.13
lastOpDate Timestamp Last modification time 4.7.13
#allVolumes
名字 类型 描述 起始版本
uuid String Resource UUID. Uniquely identifies the resource 4.7.13
name String Resource name 4.7.13
description String Resource description 4.7.13
primaryStorageUuid String Data Storage UUID 4.7.13
vmInstanceUuid String Virtual Machine UUID 4.7.13
diskOfferingUuid String Disk offering UUID 4.7.13
rootImageUuid String 4.7.13
installPath String 4.7.13
type String 4.7.13
format String 4.7.13
size Long 4.7.13
actualSize Long 4.7.13
deviceId Integer 4.7.13
state String 4.7.13
status String 4.7.13
createDate Timestamp Create time 4.7.13
lastOpDate Timestamp Last modification time 4.7.13
isShareable Boolean 4.7.13
volumeQos String 4.7.13
lastDetachDate Timestamp 4.7.13
lastVmInstanceUuid String 4.7.13
#vmCdRoms
名字 类型 描述 起始版本
uuid String Resource UUID. Uniquely identifies the resource 4.7.13
vmInstanceUuid String Virtual Machine UUID 4.7.13
deviceId Integer 4.7.13
isoUuid String 4.7.13
isoInstallPath String 4.7.13
name String Resource name 4.7.13
description String Resource description 4.7.13
createDate Timestamp Create time 4.7.13
lastOpDate Timestamp Last modification time 4.7.13

SDK Examples

Java SDK
CreateVmInstanceAction action = new CreateVmInstanceAction(); action.name = "vm1"; action.l3NetworkUuids = asList("19d22d051b063d379a2816daaf431838"); action.clusterUuid = "a0468dc645223f67bd0f2ab95276bbae"; action.description = "this is a vm"; action.strategy = "InstantStart"; action.diskAOs = asList([boot:true, platform:Linux, guestOsType:Helix 8, architecture:x86_64, primaryStorageUuid:ff0359abb8443d2f8077cc368afa7c00, size:0, sourceType:VolumeVO, sourceUuid:ff0eb5a723e9316bb1053ed7e4bb3100, systemTags:[volumeProvisioningStrategy::ThickProvisioning], name:root-volume],[boot:false, primaryStorageUuid:ff0359abb8443d2f8077cc368afa7c00, size:0, name:data-volume]); action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"; CreateVmInstanceAction.Result res = action.call();
Python SDK
action = CreateVmInstanceAction() action.name = "vm1" action.l3NetworkUuids = [19d22d051b063d379a2816daaf431838] action.clusterUuid = "a0468dc645223f67bd0f2ab95276bbae" action.description = "this is a vm" action.strategy = "InstantStart" action.diskAOs = [[boot:true, platform:Linux, guestOsType:Helix 8, architecture:x86_64, primaryStorageUuid:ff0359abb8443d2f8077cc368afa7c00, size:0, sourceType:VolumeVO, sourceUuid:ff0eb5a723e9316bb1053ed7e4bb3100, systemTags:[volumeProvisioningStrategy::ThickProvisioning], name:root-volume], [boot:false, primaryStorageUuid:ff0359abb8443d2f8077cc368afa7c00, size:0, name:data-volume]] action.sessionId = "b86c9016b4f24953a9edefb53ca0678c" res = action.call()

Create VM Instance (CreateVmInstance)

Create a new VM instance.

API Request

URLs
POST zstack/v1/vm-instances
Headers
Authorization: OAuth the-session-uuid
Body
{   "params": {     "name": "vm1",     "instanceOfferingUuid": "ae97ced44efc3314b8f7798972b4ba1a",     "imageUuid": "da119f7906513eccabf271991c35a65e",     "l3NetworkUuids": [       "cc0e4c5e77df3af68e59668e7f9e06c5"     ],     "dataDiskOfferingUuids": [       "19d22d051b063d379a2816daaf431838",       "905d94a6abb5398fa1995f6398e3f6fc"     ],     "clusterUuid": "a0468dc645223f67bd0f2ab95276bbae",     "description": "this is a vm",     "strategy": "InstantStart",     "rootVolumeSystemTags": [       "volumeProvisioningStrategy::ThickProvisioning"     ]   },   "systemTags": [],   "userTags": [] }
Note: In the above example, systemTags and userTags fields can be omitted. They are listed to indicate that the body can contain these two fields.
Curl Example
curl -H "Content-Type: application/json;charset=UTF-8" -H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" -X POST -d '{"params":{"name":"vm1","instanceOfferingUuid":"ae97ced44efc3314b8f7798972b4ba1a","imageUuid":"da119f7906513eccabf271991c35a65e","l3NetworkUuids":["cc0e4c5e77df3af68e59668e7f9e06c5"],"dataDiskOfferingUuids":["19d22d051b063d379a2816daaf431838","905d94a6abb5398fa1995f6398e3f6fc"],"clusterUuid":"a0468dc645223f67bd0f2ab95276bbae","description":"this is a vm","strategy":"InstantStart","rootVolumeSystemTags":["volumeProvisioningStrategy::ThickProvisioning"]}}' http://localhost:8080/zstack/v1/vm-instances
Parameter List
Name Type Location Description Allowed Values Starting Version
name String body (contained in params structure) VM name 0.6
instanceOfferingUuid (Optional) String body (contained in params structure) Instance offering UUID
  • Specifies the CPU, memory and other parameters of the VM.
0.6
imageUuid (Optional) String body (contained in params structure) Image UUID
  • The root volume of the VM will be created from the image specified by this field.
0.6
l3NetworkUuids (Optional) List body (contained in params structure) L3 network UUID list
  • You can specify one or more L3 networks. The VM will create a NIC on each L3 network.
0.6
vmNicParams (Optional) String body (contained in params structure) NIC information 4.7.0
type (Optional) String body (contained in params structure) VM type
  • Reserved field, no need to specify.
  • UserVm
  • ApplianceVm
0.6
rootDiskOfferingUuid (Optional) String body (contained in params structure) Root disk offering UUID
  • If the image type specified by imageUuid is ISO, this field must be specified to determine the root disk size.
  • If the image type is not ISO, this field is not needed.
0.6
dataDiskSizes (Optional) List body (contained in params structure) Custom disk size list. You can specify one or more disk sizes to create one or more data disks for the VM. 4.4.6
dataDiskOfferingUuids (Optional) List body (contained in params structure) Disk offering UUID list
  • You can specify one or more disk offering UUIDs (UUIDs can be duplicated) to create one or more data disks for the VM.
0.6
zoneUuid (Optional) String body (contained in params structure) Data Center UUID
  • If specified, the VM will be created in the specified Data Center.
0.6
clusterUuid (Optional) String body (contained in params structure) Cluster UUID
  • If specified, the VM will be created in the specified cluster. This field has higher priority than zoneUuid.
0.6
hostUuid (Optional) String body (contained in params structure) Host UUID
  • If specified, the VM will be created on the specified host. This field has higher priority than zoneUuid and clusterUuid.
0.6
primaryStorageUuidForRootVolume (Optional) String body (contained in params structure) Primary Storage UUID
  • If specified, the root volume of the VM will be created on the specified primary storage.
1.8
description (Optional) String body (contained in params structure) Detailed description of the VM 0.6
defaultL3NetworkUuid (Optional) String body (contained in params structure) Default L3 network UUID
  • When l3NetworkUuids specifies multiple L3 networks, this field specifies the L3 network that provides the default route.
  • If not specified, the first network in l3NetworkUuids is selected as the default network.
0.6
resourceUuid (Optional) String body (contained in params structure) Resource UUID
  • If specified, the VM will use this field value as its UUID.
0.6
tagUuids (Optional) List body (contained in params structure) Tag UUID list 3.4.0
systemTags (Optional) List body VM system tags 0.6
userTags (Optional) List body VM user tags 0.6
strategy (Optional) String body (contained in params structure) VM creation strategy
  • Start immediately after creation
  • Do not start after creation
  • InstantStart
  • JustCreate
  • CreateStopped
0.6
rootVolumeSystemTags (Optional) List body (contained in params structure) System tags required for VM root volume 3.0
dataVolumeSystemTags (Optional) List body (contained in params structure) System tags required for VM data volume 3.0
cpuNum (Optional) Integer body (contained in params structure) 3.4.0
memorySize (Optional) Long body (contained in params structure) 3.4.0
rootDiskSize (Optional) Long body (contained in params structure) 3.4.0
dataVolumeSystemTagsOnIndex (Optional) Map body (contained in params structure) 4.4.24
sshKeyPairUuids (Optional) List body (contained in params structure) 4.7.21
dataVolumeTemplateUuids (Optional) List body (contained in params structure) 4.7.0
diskAOs (Optional) List body (contained in params structure) boot=true indicates diskAO is used to set VM platform, architecture, operating system and root volume bus; diskAO.boot=false indicates loaded disk 4.7.0
platform String body (contained in params structure) 4.7.0
guestOsType String body (contained in params structure) 4.7.0
architecture String body (contained in params structure) 4.7.21
reservedMemorySize (Optional) Long body (contained in params structure) 4.7.21
virtio (Optional) Boolean body (contained in params structure) 4.7.0

API Response

Response Example
{   "inventory": {     "uuid": "6efab7159c6932429c6b0e7e0b64b660",     "name": "Test-VM",     "description": "web server VM",     "zoneUuid": "d10bd7a9565138efaf6171db8e18fa7d",     "clusterUuid": "692c71639d873bf6a356cd8e285d0d9c",     "imageUuid": "28061e65e48037eda71b53a0732bf087",     "hostUuid": "f877177de7bd377e811bc6313878b2b1",     "lastHostUuid": "a3ccdc90a600334f994c69aee4270ac5",     "instanceOfferingUuid": "9a874241f867333ca0bf0ab2134f8515",     "rootVolumeUuid": "f52d7c94d69d3bbb97d36a270fe910c3",     "platform": "Linux",     "defaultL3NetworkUuid": "2ac1b70fdb0f38769a29c6ebd0262cca",     "type": "UserVm",     "hypervisorType": "KVM",     "memorySize": 8589934592,     "cpuNum": 1,     "allocatorStrategy": "LastHostPreferredAllocatorStrategy",     "createDate": "Nov 14, 2017 2:20:57 PM",     "lastOpDate": "Nov 14, 2017 2:20:57 PM",     "state": "Running",     "vmNics": [       {         "uuid": "0dfbb8a297e9349ea8799c4ce48c6d10",         "vmInstanceUuid": "6efab7159c6932429c6b0e7e0b64b660",         "usedIpUuid": "39b57596a8ba35289bd9f40efceeae03",         "l3NetworkUuid": "2ac1b70fdb0f38769a29c6ebd0262cca",         "ip": "192.168.1.10",         "mac": "00:0c:29:bd:99:fc",         "hypervisorType": "KVM",         "netmask": "255.255.255.0",         "gateway": "192.168.1.1",         "deviceId": 0,         "createDate": "Nov 14, 2017 2:20:57 PM",         "lastOpDate": "Nov 14, 2017 2:20:57 PM"       }     ],     "allVolumes": [       {         "uuid": "f52d7c94d69d3bbb97d36a270fe910c3",         "name": "Root-Volume-For-VM-6efab7159c6932429c6b0e7e0b64b660",         "primaryStorageUuid": "4ed5bbb150a034b5917e7e6c9c4b8170",         "vmInstanceUuid": "6efab7159c6932429c6b0e7e0b64b660",         "diskOfferingUuid": "0521187274d73f5b936c22b145384c74",         "rootImageUuid": "28061e65e48037eda71b53a0732bf087",         "installPath": "/zstack_ps/rootVolumes/acct-36c27e8ff05c4780bf6d2fa65700f22e/vol-f52d7c94d69d3bbb97d36a270fe910c3/f52d7c94d69d3bbb97d36a270fe910c3.qcow2",         "type": "Root",         "format": "qcow2",         "size": 107374182400,         "actualSize": 21474836480,         "deviceId": 0,         "state": "Enabled",         "status": "Ready",         "createDate": "Nov 14, 2017 2:20:57 PM",         "lastOpDate": "Nov 14, 2017 2:20:57 PM"       }     ]   } }
Name Type Description Starting Version
success boolean 0.6
error ErrorCode Error code. If not null, the operation failed. This field is null when the operation succeeds. See error 0.6
inventory VmInstanceInventory See inventory 0.6
#error
Name Type Description Starting Version
code String Error code number, a globally unique identifier for the error, for example SYS.1000, HOST.1001 0.6
description String Brief description of the error 0.6
details String Detailed error information 0.6
elaboration String Reserved field, defaults to null 0.6
opaque LinkedHashMap Reserved field, defaults to null 0.6
cause ErrorCode Root cause. The source error that triggered the current error. This field is null if there is no original error 0.6
#inventory
Name Type Description Starting Version
uuid String Resource UUID, uniquely identifies the resource 0.6
name String Resource name 0.6
description String Detailed description of the resource 0.6
zoneUuid String Data Center UUID 0.6
clusterUuid String Cluster UUID 0.6
imageUuid String Image UUID 0.6
hostUuid String Host UUID 0.6
lastHostUuid String Last host UUID that ran the VM 0.6
instanceOfferingUuid String Instance offering UUID 0.6
rootVolumeUuid String Root volume UUID 0.6
platform String VM platform 0.6
architecture String 0.6
defaultL3NetworkUuid String Default L3 network UUID 0.6
type String VM type 0.6
hypervisorType String VM hypervisor type 0.6
memorySize Long Memory size 0.6
cpuNum Integer CPU number 0.6
cpuSpeed Long CPU speed 0.6
allocatorStrategy String Allocation strategy 0.6
createDate Timestamp Creation time 0.6
lastOpDate Timestamp Last modification time 0.6
state String VM state 0.6
guestOsType String 4.1.2
vmNics List See vmNics 0.6
allVolumes List See allVolumes 0.6
vmCdRoms List See vmCdRoms 0.6
#vmNics
Name Type Description Starting Version
uuid String Resource UUID, uniquely identifies the resource 4.7.13
vmInstanceUuid String VM UUID 4.7.13
l3NetworkUuid String L3 network UUID 4.7.13
ip String 4.7.13
mac String 4.7.13
hypervisorType String 4.7.13
netmask String 4.7.13
gateway String 4.7.13
metaData String 4.7.13
ipVersion Integer 4.7.13
driverType String 4.7.13
internalName String 4.7.13
deviceId Integer 4.7.13
type String 4.7.13
state String NIC state 4.7.13
createDate Timestamp Creation time 4.7.13
lastOpDate Timestamp Last modification time 4.7.13
usedIps List See usedIps 4.7.13
#usedIps
Name Type Description Starting Version
uuid String Resource UUID, uniquely identifies the resource 4.7.13
ipRangeUuid String IP range UUID 4.7.13
l3NetworkUuid String L3 network UUID 4.7.13
ipVersion Integer 4.7.13
ip String 4.7.13
netmask String 4.7.13
gateway String 4.7.13
usedFor String 4.7.13
ipInLong long 4.7.13
vmNicUuid String VM NIC UUID 4.7.13
createDate Timestamp Creation time 4.7.13
lastOpDate Timestamp Last modification time 4.7.13
#allVolumes
Name Type Description Starting Version
uuid String Resource UUID, uniquely identifies the resource 4.7.13
name String Resource name 4.7.13
description String Detailed description of the resource 4.7.13
primaryStorageUuid String Primary Storage UUID 4.7.13
vmInstanceUuid String VM UUID 4.7.13
diskOfferingUuid String Disk offering UUID 4.7.13
rootImageUuid String 4.7.13
installPath String 4.7.13
type String 4.7.13
format String 4.7.13
size Long 4.7.13
actualSize Long 4.7.13
deviceId Integer 4.7.13
state String 4.7.13
status String 4.7.13
createDate Timestamp Creation time 4.7.13
lastOpDate Timestamp Last modification time 4.7.13
isShareable Boolean 4.7.13
volumeQos String 4.7.13
lastDetachDate Timestamp 4.7.13
lastVmInstanceUuid String 4.7.13
#vmCdRoms
Name Type Description Starting Version
uuid String Resource UUID, uniquely identifies the resource 4.7.13
vmInstanceUuid String VM UUID 4.7.13
deviceId Integer 4.7.13
isoUuid String 4.7.13
isoInstallPath String 4.7.13
name String Resource name 4.7.13
description String Detailed description of the resource 4.7.13
createDate Timestamp Creation time 4.7.13
lastOpDate Timestamp Last modification time 4.7.13

SDK Examples

Java SDK
CreateVmInstanceAction action = new CreateVmInstanceAction(); action.name = "vm1"; action.l3NetworkUuids = asList("19d22d051b063d379a2816daaf431838"); action.clusterUuid = "a0468dc645223f67bd0f2ab95276bbae"; action.description = "this is a vm"; action.strategy = "InstantStart"; action.diskAOs = asList([boot:true, platform:Linux, guestOsType:Helix 8, architecture:x86_64, primaryStorageUuid:ff0359abb8443d2f8077cc368afa7c00, size:0, sourceType:VolumeVO, sourceUuid:ff0eb5a723e9316bb1053ed7e4bb3100, systemTags:[volumeProvisioningStrategy::ThickProvisioning], name:root-volume],[boot:false, primaryStorageUuid:ff0359abb8443d2f8077cc368afa7c00, size:0, name:data-volume]); action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"; CreateVmInstanceAction.Result res = action.call();
Python SDK
action = CreateVmInstanceAction() action.name = "vm1" action.l3NetworkUuids = [19d22d051b063d379a2816daaf431838] action.clusterUuid = "a0468dc645223f67bd0f2ab95276bbae" action.description = "this is a vm" action.strategy = "InstantStart" action.diskAOs = [[boot:true, platform:Linux, guestOsType:Helix 8, architecture:x86_64, primaryStorageUuid:ff0359abb8443d2f8077cc368afa7c00, size:0, sourceType:VolumeVO, sourceUuid:ff0eb5a723e9316bb1053ed7e4bb3100, systemTags:[volumeProvisioningStrategy::ThickProvisioning], name:root-volume], [boot:false, primaryStorageUuid:ff0359abb8443d2f8077cc368afa7c00, size:0, name:data-volume]] action.sessionId = "b86c9016b4f24953a9edefb53ca0678c" res = action.call()

Create VM Instance from Volume Snapshot (CreateVmInstanceFromVolumeSnapshot)

API Request

URLs
POST zstack/v1/vm-instances/from/volume-snapshots/{volumeSnapshotUuid}
Headers
Authorization: OAuth the-session-uuid
Body
{   "params": {     "name": "vm1",     "description": "this is a vm",     "instanceOfferingUuid": "6900e329296732aca0e3658bcdcdd3ce",     "l3NetworkUuids": [       "990ffab4793036d29fc92142889f9ef2"     ],     "clusterUuid": "cd44bab6f1d43e59bbc885f869e89388",     "strategy": "InstantStart"   },   "systemTags": [],   "userTags": [] }
Note: In the above example, systemTags and userTags fields can be omitted. They are listed to indicate that the body can contain these two fields.
Curl Example
curl -H "Content-Type: application/json;charset=UTF-8" \ -H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \ -X POST -d '{"params":{"name":"vm1","description":"this is a vm","instanceOfferingUuid":"6900e329296732aca0e3658bcdcdd3ce","l3NetworkUuids":["990ffab4793036d29fc92142889f9ef2"],"clusterUuid":"cd44bab6f1d43e59bbc885f869e89388","strategy":"InstantStart"}}' \ http://localhost:8080/zstack/v1/vm-instances/from/volume-snapshots/f81c959344783f19ae4fc76f1e770201
Parameter List
Name Type Location Description Allowed Values Starting Version
name String body (contained in params structure) Resource name 4.1.0
description (Optional) String body (contained in params structure) Detailed description of the resource 4.1.0
instanceOfferingUuid (Optional) String body (contained in params structure) Instance offering UUID 4.1.0
cpuNum (Optional) Integer body (contained in params structure) CPU number 4.1.0
memorySize (Optional) Long body (contained in params structure) Memory size 4.1.0
l3NetworkUuids List body (contained in params structure) L3 network UUID list 4.1.0
type (Optional) String body (contained in params structure) VM type
  • UserVm
  • ApplianceVm
4.1.0
vmNicParams (Optional) String body (contained in params structure) NIC information 4.0.0
volumeSnapshotUuid String url Volume snapshot group UUID 4.1.0
platform (Optional) String body (contained in params structure) VM platform
  • Linux
  • Windows
  • Other
  • Paravirtualization
  • WindowsVirtio
4.1.0
zoneUuid (Optional) String body (contained in params structure) Data Center UUID 4.1.0
clusterUuid (Optional) String body (contained in params structure) Cluster UUID 4.1.0
hostUuid (Optional) String body (contained in params structure) Host UUID 4.1.0
primaryStorageUuid (Optional) String body (contained in params structure) Primary Storage UUID 4.1.0
defaultL3NetworkUuid (Optional) String body (contained in params structure) Default L3 network UUID 4.1.0
strategy (Optional) String body (contained in params structure) Creation strategy
  • InstantStart
  • CreateStopped
4.1.0
resourceUuid (Optional) String body (contained in params structure) Resource UUID 4.1.0
tagUuids (Optional) List body (contained in params structure) Tag UUID list 4.1.0
systemTags (Optional) List body System Tags 4.1.0
userTags (Optional) List body User Tags 4.1.0
rootVolumeSystemTags (Optional) List body (contained in params structure) Root volume system tags 4.1.0
reservedMemorySize (Optional) Long body (contained in params structure) 4.7.21

API Response

Response Example
{   "inventory": {     "uuid": "56331ef0c0713bc09dc2dc160fd4d48a",     "name": "Test-VM",     "description": "web server VM",     "zoneUuid": "49783ceb7da734aab1ea137f2b7b82ac",     "clusterUuid": "ebfbd2a6e08a3b78b70c9b6093f40d37",     "imageUuid": "9a4914937dcd3149810793f8b040e8ad",     "hostUuid": "2665407c38f932c08f3fb33bb6c8f3f4",     "lastHostUuid": "2a847b5699b535d7a78b57cd411ffeac",     "instanceOfferingUuid": "041ff292e60f31079dd8e6e3c9c26c72",     "rootVolumeUuid": "98648a22b2c639ee88571bf1c429caba",     "platform": "Linux",     "defaultL3NetworkUuid": "4f80edbb396b346c9af4dcce48f94fb5",     "type": "UserVm",     "hypervisorType": "KVM",     "memorySize": 8589934592,     "cpuNum": 1,     "allocatorStrategy": "LastHostPreferredAllocatorStrategy",     "createDate": "Nov 14, 2017 10:20:57 PM",     "lastOpDate": "Nov 14, 2017 10:20:57 PM",     "state": "Running",     "vmNics": [       {         "uuid": "1e1b705f391c3f40a2b6ae447d0e12ca",         "vmInstanceUuid": "56331ef0c0713bc09dc2dc160fd4d48a",         "usedIpUuid": "bf85263c007d3959a166599181daa4b7",         "l3NetworkUuid": "4f80edbb396b346c9af4dcce48f94fb5",         "ip": "192.168.1.10",         "mac": "00:0c:29:bd:99:fc",         "hypervisorType": "KVM",         "netmask": "255.255.255.0",         "gateway": "192.168.1.1",         "deviceId": 0,         "state": "enable",         "createDate": "Nov 14, 2017 10:20:57 PM",         "lastOpDate": "Nov 14, 2017 10:20:57 PM"       }     ],     "allVolumes": [       {         "uuid": "98648a22b2c639ee88571bf1c429caba",         "name": "Root-Volume-For-VM-56331ef0c0713bc09dc2dc160fd4d48a",         "primaryStorageUuid": "406362409f493e14952262df535e9cf8",         "vmInstanceUuid": "56331ef0c0713bc09dc2dc160fd4d48a",         "rootImageUuid": "9a4914937dcd3149810793f8b040e8ad",         "installPath": "/zstack_ps/rootVolumes/acct-36c27e8ff05c4780bf6d2fa65700f22e/vol-98648a22b2c639ee88571bf1c429caba/98648a22b2c639ee88571bf1c429caba.qcow2",         "type": "Root",         "format": "qcow2",         "size": 107374182400,         "actualSize": 21474836480,         "deviceId": 0,         "state": "Enabled",         "status": "Ready",         "createDate": "Nov 14, 2017 10:20:57 PM",         "lastOpDate": "Nov 14, 2017 10:20:57 PM"       }     ]   } }
Name Type Description Starting Version
success boolean 0.6
error ErrorCode Error code. If not null, the operation failed. This field is null when the operation succeeds. See error 4.1.0
inventory VmInstanceInventory See inventory 4.1.0
#error
Name Type Description Starting Version
code String Error code number, a globally unique identifier for the error, for example SYS.1000, HOST.1001 4.1.0
description String Brief description of the error 4.1.0
details String Detailed error information 4.1.0
elaboration String Reserved field, defaults to null 4.1.0
opaque LinkedHashMap Reserved field, defaults to null 4.1.0
cause ErrorCode Root cause. The source error that triggered the current error. This field is null if there is no original error 4.1.0
#inventory
Name Type Description Starting Version
uuid String Resource UUID, uniquely identifies the resource 4.1.0
name String Resource name 4.1.0
description String Detailed description of the resource 4.1.0
zoneUuid String Data Center UUID 4.1.0
clusterUuid String Cluster UUID 4.1.0
imageUuid String Image UUID 4.1.0
hostUuid String Host UUID 4.1.0
lastHostUuid String 4.1.0
instanceOfferingUuid String Instance offering UUID 4.1.0
rootVolumeUuid String Root volume UUID 4.1.0
platform String 4.1.0
defaultL3NetworkUuid String 4.1.0
type String 4.1.0
hypervisorType String 4.1.0
memorySize Long 4.1.0
cpuNum Integer 4.1.0
cpuSpeed Long 4.1.0
allocatorStrategy String 4.1.0
createDate Timestamp Creation time 4.1.0
lastOpDate Timestamp Last modification time 4.1.0
state String 4.1.0
guestOsType String 4.1.2
vmNics List See vmNics 4.1.0
allVolumes List See allVolumes 4.1.0
vmCdRoms List See vmCdRoms 0.6
#vmNics
Name Type Description Starting Version
uuid String Resource UUID, uniquely identifies the resource 4.1.0
vmInstanceUuid String VM UUID 4.1.0
l3NetworkUuid String L3 network UUID 4.1.0
ip String IP address 4.1.0
mac String MAC address 4.1.0
hypervisorType String Hypervisor type 4.1.0
netmask String Netmask 4.1.0
gateway String Gateway 4.1.0
metaData String 4.1.0
ipVersion Integer IP version 4.1.0
driverType String 4.7.13
internalName String 4.7.13
deviceId Integer Device ID 4.1.0
type String NIC type 4.1.0
state String NIC state 4.7.13
createDate Timestamp Creation time 4.1.0
lastOpDate Timestamp Last modification time 4.1.0
usedIps List See usedIps 4.1.0
#usedIps
Name Type Description Starting Version
uuid String Resource UUID, uniquely identifies the resource 4.1.0
ipRangeUuid String IP range UUID 4.1.0
l3NetworkUuid String L3 network UUID 4.1.0
ipVersion Integer IP protocol number 4.1.0
ip String IP address 4.1.0
netmask String Network mask 4.1.0
gateway String Gateway address 4.1.0
usedFor String 4.1.0
ipInLong long 4.1.0
vmNicUuid String VM NIC UUID 4.1.0
createDate Timestamp Creation time 4.1.0
lastOpDate Timestamp Last modification time 4.1.0
#allVolumes
Name Type Description Starting Version
uuid String Resource UUID, uniquely identifies the resource 4.1.0
name String Resource name 4.1.0
description String Detailed description of the resource 4.1.0
primaryStorageUuid String Primary Storage UUID 4.1.0
vmInstanceUuid String VM UUID 4.1.0
diskOfferingUuid String Disk offering UUID 4.1.0
rootImageUuid String Root image UUID 4.1.0
installPath String Volume install path on the primary storage 4.1.0
type String Volume type, data volume/root volume 4.1.0
format String Volume format 4.1.0
size Long Volume size 4.1.0
actualSize Long Actual volume size 4.1.0
deviceId Integer 4.1.0
state String Volume state 4.1.0
status String Volume status 4.1.0
createDate Timestamp Creation time 4.1.0
lastOpDate Timestamp Last modification time 4.1.0
isShareable Boolean Whether it is a shared volume 4.1.0
volumeQos String 4.1.0
lastDetachDate Timestamp 4.7.13
lastVmInstanceUuid String 4.7.13
#vmCdRoms
Name Type Description Starting Version
uuid String Resource UUID, uniquely identifies the resource 4.7.13
vmInstanceUuid String VM UUID 4.7.13
deviceId Integer 4.7.13
isoUuid String 4.7.13
isoInstallPath String 4.7.13
name String Resource name 4.7.13
description String Detailed description of the resource 4.7.13
createDate Timestamp Creation time 4.7.13
lastOpDate Timestamp Last modification time 4.7.13

SDK Examples

Java SDK
CreateVmInstanceFromVolumeSnapshotAction action = new CreateVmInstanceFromVolumeSnapshotAction(); action.name = "vm1"; action.description = "this is a vm"; action.instanceOfferingUuid = "6900e329296732aca0e3658bcdcdd3ce"; action.l3NetworkUuids = asList("990ffab4793036d29fc92142889f9ef2"); action.volumeSnapshotUuid = "f81c959344783f19ae4fc76f1e770201"; action.clusterUuid = "cd44bab6f1d43e59bbc885f869e89388"; action.strategy = "InstantStart"; action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"; CreateVmInstanceFromVolumeSnapshotAction.Result res = action.call();
Python SDK
action = CreateVmInstanceFromVolumeSnapshotAction() action.name = "vm1" action.description = "this is a vm" action.instanceOfferingUuid = "6900e329296732aca0e3658bcdcdd3ce" action.l3NetworkUuids = [990ffab4793036d29fc92142889f9ef2] action.volumeSnapshotUuid = "f81c959344783f19ae4fc76f1e770201" action.clusterUuid = "cd44bab6f1d43e59bbc885f869e89388" action.strategy = "InstantStart" action.sessionId = "b86c9016b4f24953a9edefb53ca0678c" res = action.call()











































































































































































Archives

Download Document Archives

Download

Already filled the basic info?Click here.

Enter at least 2 characters.
Cannot be empty.
Invalid mobile number.
Enter at least 4 characters.
Invalid email address.
Wrong code. Try again. Send Code Resend Code (60s)

An email with a verification code will be sent to you. Make sure the address you provided is valid and correct.

同意 不同意

I have read and concur with the Site TermsPrivacy PolicyRules and Conventions on User Management of ZStack Cloud

Download

Not filled the basic info yet? Click here.

Invalid email address or mobile number.
同意 不同意

I have read and concur with the Site TermsPrivacy PolicyRules and Conventions on User Management of ZStack Cloud

Email Us

contact@zstack.io
ZStack Training and Certification
Enter at least 2 characters.
Invalid mobile number.
Enter at least 4 characters.
Invalid email address.
Wrong code. Try again. Send Code Resend Code (60s)

同意 不同意

I have read and concur with the Site TermsPrivacy PolicyRules and Conventions on User Management of ZStack Cloud

Email Us

contact@zstack.io
Request Trial
Enter at least 2 characters.
Invalid mobile number.
Enter at least 4 characters.
Invalid email address.
Wrong code. Try again. Send Code Resend Code (60s)

同意 不同意

I have read and concur with the Site TermsPrivacy PolicyRules and Conventions on User Management of ZStack Cloud

Email Us

contact@zstack.io

The download link is sent to your email address.

If you don't see it, check your spam folder, subscription folder, or AD folder. After receiving the email, click the URL to download the documentation.

The download link is sent to your email address.

If you don't see it, check your spam folder, subscription folder, or AD folder.
Or click on the URL below. (For Internet Explorer, right-click the URL and save it.)

Thank you for using ZStack products and services.

Submit successfully.

We'll connect soon.

Thank you for using ZStack products and services.