VM Related Interfaces

Attach L3 Network to VM

POST/zstack/v1/vm-instances/{vmInstanceUuid}/l3-networks/{l3NetworkUuid}

Dynamically add a network to a Running or Stopped Virtual Machine.

Headers

Authorization: OAuth the-session-uuid

Body

{
  "params": {
    "driverType": "e1000"
  },
  "systemTags": [],
  "userTags": []
}

Note: systemTags and userTags fields can be omitted in the above example. 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":{"driverType":"e1000"}}' \
http://localhost:8080/zstack/v1/vm-instances/f526e22f739838f4bcdfdd20f0ba8a73/l3-networks/00fab8159d1d3534802c588c2bd9a28b

Parameter List

NameTypeLocationDescriptionAllowed ValuesStarting Version
vmInstanceUuidStringurlVirtual Machine UUID 0.6
l3NetworkUuidStringurlL3 Network UUID 0.6
staticIp (optional)Stringbody (contained in params structure)Specify the IP address to assign to the Virtual Machine 0.6
systemTags (optional)ListbodySystem Tags 0.6
userTags (optional)ListbodyUser Tags 0.6
driverTypeStringbodyNIC Driver Type 4.0.0
customMac (optional)Stringbody (contained in params structure)Custom NIC MAC Address 4.0.0
vmNicParams (optional)Stringbody (contained in params structure)NIC Information 4.0.0

API Response

Return Example

{
  "inventory": {
    "uuid": "e300c6dbbaa1326ebca205a7b2a0e7ea",
    "name": "Test-VM",
    "description": "web server VM",
    "zoneUuid": "c9b73cde21d23866802e8a5178f29f0d",
    "clusterUuid": "24a72428e400344b88f8c2faa4c292bd",
    "imageUuid": "5484ed82cdfc366c9657c695577bee37",
    "hostUuid": "5eb00f0897603309904b418c821b1acb",
    "lastHostUuid": "b2cfad47a7923346a735008c32ef0d0b",
    "instanceOfferingUuid": "bbea469feb78345591cc9ac6c0ce0c5c",
    "rootVolumeUuid": "fc8a81afd11136ac8a48cf458ac2945b",
    "platform": "Linux",
    "defaultL3NetworkUuid": "aa3e9117d9793eff81a614b0e18bade7",
    "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": "458704a1654637209667e69847ee3a97",
        "vmInstanceUuid": "e300c6dbbaa1326ebca205a7b2a0e7ea",
        "usedIpUuid": "b6edb8e1ccc533b98cb9cc1c14baf38b",
        "l3NetworkUuid": "aa3e9117d9793eff81a614b0e18bade7",
        "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": "fc8a81afd11136ac8a48cf458ac2945b",
        "name": "Root-Volume-For-VM-e300c6dbbaa1326ebca205a7b2a0e7ea",
        "primaryStorageUuid": "91dc7f8732243262933100a509ab808a",
        "vmInstanceUuid": "e300c6dbbaa1326ebca205a7b2a0e7ea",
        "diskOfferingUuid": "26483e8eca413d809f4f8c6afba75ae2",
        "rootImageUuid": "5484ed82cdfc366c9657c695577bee37",
        "installPath": "/zstack_ps/rootVolumes/acct-36c27e8ff05c4780bf6d2fa65700f22e/vol-fc8a81afd11136ac8a48cf458ac2945b/fc8a81afd11136ac8a48cf458ac2945b.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"
      }
    ]
  }
}
NameTypeDescriptionStarting Version
successboolean 0.6
errorErrorCodeError code. If not null, indicates operation failure. This field is null when the operation succeeds. See error0.6
inventoryVmInstanceInventorySee inventory0.6

error

NameTypeDescriptionStarting Version
codeStringError code number, a globally unique identifier for the error, for example SYS.1000, HOST.10010.6
descriptionStringBrief description of the error0.6
detailsStringDetailed error information0.6
elaborationStringReserved field, defaults to null0.6
opaqueLinkedHashMapReserved field, defaults to null0.6
causeErrorCodeRoot cause, the source error that triggered the current error. If there is no original error, this field is null0.6

inventory

NameTypeDescriptionStarting Version
uuidStringResource UUID, uniquely identifies the resource0.6
nameStringResource name0.6
descriptionStringResource description0.6
zoneUuidStringData Center UUID0.6
clusterUuidStringCluster UUID0.6
imageUuidStringImage UUID0.6
hostUuidStringHost UUID0.6
lastHostUuidString 0.6
instanceOfferingUuidStringInstance Offering UUID0.6
rootVolumeUuidStringRoot Volume UUID0.6
platformString 0.6
architectureString 0.6
defaultL3NetworkUuidString 0.6
typeString 0.6
hypervisorTypeString 0.6
memorySizeLong 0.6
cpuNumInteger 0.6
cpuSpeedLong 0.6
allocatorStrategyString 0.6
createDateTimestampCreation Time0.6
lastOpDateTimestampLast Operation Date0.6
stateString 0.6
guestOsTypeString 4.1.2
vmNicsListSee vmNics0.6
allVolumesListSee allVolumes0.6
vmCdRomsListSee vmCdRoms0.6

vmNics

NameTypeDescriptionStarting Version
uuidStringResource UUID, uniquely identifies the resource0.6
vmInstanceUuidStringVirtual Machine UUID0.6
l3NetworkUuidStringL3 Network UUID0.6
ipString 0.6
macString 0.6
hypervisorTypeString 4.7.13
netmaskString 0.6
gatewayString 0.6
metaDataString 0.6
ipVersionIntegerIP Protocol Number3.1.0
driverTypeString 4.7.13
internalNameString 4.7.13
deviceIdInteger 0.6
typeString 4.7.13
stateStringNIC Status4.7.13
createDateTimestampCreation Time0.6
lastOpDateTimestampLast Operation Date0.6
usedIpsListSee usedIps0.6

usedIps

NameTypeDescriptionStarting Version
uuidStringResource UUID, uniquely identifies the resource0.6
ipRangeUuidStringIP Range UUID0.6
l3NetworkUuidStringL3 Network UUID0.6
ipVersionIntegerIP Protocol Number3.1.0
ipStringIP Address0.6
netmaskStringNetmask0.6
gatewayStringGateway Address0.6
usedForString 0.6
ipInLonglong 0.6
vmNicUuidStringVM NIC UUID3.1.0
createDateTimestampCreation Time0.6
lastOpDateTimestampLast Operation Date0.6

allVolumes

NameTypeDescriptionStarting Version
uuidStringResource UUID, uniquely identifies the resource0.6
nameStringResource name0.6
descriptionStringResource description0.6
primaryStorageUuidStringData Storage UUID0.6
vmInstanceUuidStringVirtual Machine UUID0.6
diskOfferingUuidStringDisk Offering UUID0.6
rootImageUuidString 0.6
installPathString 0.6
typeString 0.6
formatString 0.6
sizeLong 0.6
actualSizeLong 0.6
deviceIdInteger 0.6
stateString 0.6
statusString 0.6
createDateTimestampCreation Time0.6
lastOpDateTimestampLast Operation Date0.6
isShareableBoolean 0.6
volumeQosString 4.7.13
lastDetachDateTimestamp 4.7.13
lastVmInstanceUuidString 4.7.13

vmCdRoms

NameTypeDescriptionStarting Version
uuidStringResource UUID, uniquely identifies the resource4.7.13
vmInstanceUuidStringVirtual Machine UUID4.7.13
deviceIdInteger 4.7.13
isoUuidString 4.7.13
isoInstallPathString 4.7.13
nameStringResource name4.7.13
descriptionStringResource description4.7.13
createDateTimestampCreation Time4.7.13
lastOpDateTimestampLast Operation Date4.7.13

SDK Examples

Java SDK

AttachL3NetworkToVmAction action = new AttachL3NetworkToVmAction();
action.vmInstanceUuid = "f526e22f739838f4bcdfdd20f0ba8a73";
action.l3NetworkUuid = "00fab8159d1d3534802c588c2bd9a28b";
action.driverType = "e1000";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
AttachL3NetworkToVmAction.Result res = action.call();

Python SDK

action = AttachL3NetworkToVmAction()
action.vmInstanceUuid = "f526e22f739838f4bcdfdd20f0ba8a73"
action.l3NetworkUuid = "00fab8159d1d3534802c588c2bd9a28b"
action.driverType = "e1000"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
res = action.call()