...
- Get VM from the cloud and separate the VM entity
- Filter the VMs by vmlabel, for example
- Reference: https://wiki.abiquo.com/api/latest/AllVirtualMachinesResource.html#list-virtual-machines-of-the-user
cURL
Code Block curl -X GET "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualmachines?vmlabel=yVM_hd" \ -H "Accept: application/vnd.abiquo.virtualmachines+json;version=4.7" \ -u user:password | jq .
Sample response. Success status code: 200
Note that this request returns a collection of VMs, you will need to get the VM from within the collection. You can also use the edit link to obtain the VM onlyby itselfExpand Code Block { "totalSize": 1, "links": [ { "rel": "first", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualmachines?vmlabel=yVM_hd&limit=25&by=name&asc=true" }, { "rel": "last", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualmachines?vmlabel=yVM_hd&startwith=0&limit=25&by=name&asc=true" } ], "collection": [ { "id": 16493, "uuid": "9fde7006-8420-4c82-96b8-cf61157eb66e", "description": "A virtual machine", "coresPerSocket": 1, "idState": 1, "idType": 0, "type": "MANAGED", "highDisponibility": 0, "metadata": { "monitoring-metrics": [ { "name": "CPU-Mz" }, { "name": "Memory-host" }, { "name": "CPU" }, { "name": "Memory" }, { "name": "Memory-vmmemctl" }, { "name": "Memory-swap2" }, { "name": "abq-ram_usage" }, { "name": "Disk-latency" }, { "name": "Memory-swap" }, { "name": "abq-cpu_usage" }, { "name": "Uptime" }, { "name": "CPU-time" }, { "name": "Memory-physical" } ] }, "monitored": true, "protected": false, "variables": {}, "backuppolicies": [], "generateGuestInitialPassword": false, "natrules": [], "vdrpEnabled": true, "vdrpPort": 0, "password": "KnZSQW07", "name": "ABQ_9fde7006-8420-4c82-96b8-cf61157eb66e", "label": "yVM_hd", "ram": 64, "cpu": 1, "state": "NOT_ALLOCATED", "creationTimestamp": 1576236231000, "links": [ { "title": "4.7.0_Snapshot Enterprise testing", "rel": "enterprise", "type": "application/vnd.abiquo.enterprise+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/admin/enterprises/261" }, { "title": "ABQ_9fde7006-8420-4c82-96b8-cf61157eb66e", "rel": "edit", "type": "application/vnd.abiquo.virtualmachine+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493" }, { "title": "send mail", "rel": "sendmail", "type": "application/vnd.abiquo.mail+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/admin/publiccloudregions/1/enterprises/261/virtualmachines/16493/action/sendmail" }, { "title": "cloudadmin cloudadmin", "rel": "user", "type": "application/vnd.abiquo.user+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/admin/enterprises/261/users/10" }, { "title": "vdc_ESXI_vCenter", "rel": "virtualdatacenter", "type": "application/vnd.abiquo.virtualdatacenter+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896" }, { "title": "vappESXI470", "rel": "virtualappliance", "type": "application/vnd.abiquo.virtualappliance+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377" }, { "title": "metadata", "rel": "metadata", "type": "application/vnd.abiquo.metadata+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/metadata" }, { "title": "vlan network configurations", "rel": "configurations", "type": "application/vnd.abiquo.virtualmachinenetworkconfigurations+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/network/configurations" }, { "title": "nics", "rel": "nics", "type": "application/vnd.abiquo.nics+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/network/nics" }, { "title": "disks", "rel": "harddisks", "type": "application/vnd.abiquo.harddisks+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/storage/disks" }, { "title": "NOT_ALLOCATED", "rel": "state", "type": "application/vnd.abiquo.virtualmachinestate+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/state" }, { "title": "virtual machine undeploy", "rel": "undeploy", "type": "application/vnd.abiquo.acceptedrequest+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/action/undeploy" }, { "title": "virtual machine deploy", "rel": "deploy", "type": "application/vnd.abiquo.acceptedrequest+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/action/deploy" }, { "title": "virtual machine reset", "rel": "reset", "type": "application/vnd.abiquo.acceptedrequest+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/action/reset" }, { "title": "virtual machine snapshot", "rel": "instance", "type": "application/vnd.abiquo.acceptedrequest+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/action/instance" }, { "title": "remote access", "rel": "rdpaccess", "type": "application/vnd.abiquo.virtualmachineconsole+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/config/rdpaccess" }, { "title": "tasks", "rel": "tasks", "type": "application/vnd.abiquo.tasks+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/tasks" }, { "title": "firewalls", "rel": "firewalls", "type": "application/vnd.abiquo.links+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/firewalls" }, { "title": "load balancers", "rel": "loadbalancers", "type": "application/vnd.abiquo.loadbalancers+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/loadbalancers" }, { "title": "request on demand backup", "rel": "requestbackup", "type": "application/vnd.abiquo.ondemandbackup+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/backup/action/request" }, { "title": "request a restore of a backup", "rel": "requestrestore", "type": "application/vnd.abiquo.restore+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/backup/action/restore" }, { "title": "move VM to a virtual appliance", "rel": "vappmove", "type": "application/vnd.abiquo.links+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/action/vappmove" }, { "title": "move VM to another virtual datacenter", "rel": "move", "type": "application/vnd.abiquo.movevm+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/action/move" }, { "title": "volumes", "rel": "volumes", "type": "application/vnd.abiquo.volumes+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/storage/volumes" }, { "title": "ABQ_HP_1_64_08c1daf8", "rel": "hardwareprofile", "type": "application/vnd.abiquo.hardwareprofile+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/locations/1/hardwareprofiles/41457" }, { "diskControllerType": "SCSI", "length": "10", "title": "01volume470", "rel": "disk1", "type": "application/vnd.abiquo.volume+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/locations/1/volumes/14993" }, { "diskControllerType": "IDE", "diskLabel": "Hard disk 1", "length": "64", "title": "91feae48-4134-484a-9487-473f577856e1", "rel": "disk0", "type": "application/vnd.abiquo.harddisk+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/disks/15000" }, { "title": "datastoretierESXI6.0_2.29", "rel": "datastoretier0", "type": "application/vnd.abiquo.datastoretier+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/locations/1/datastoretiers/58" }, { "title": "protect", "rel": "protect", "type": "text/plain", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/action/protect" }, { "title": "unprotect", "rel": "unprotect", "type": "text/plain", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/action/unprotect" }, { "title": "metricsmetadata", "rel": "metricsmetadata", "type": "application/vnd.abiquo.metricsmetadata+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/metrics" }, { "title": "disablemonitoring", "rel": "disablemonitoring", "type": "", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/disablemonitoring" }, { "title": "collectd", "rel": "collectd", "type": "application/json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/metrics/collectd" }, { "title": "alarmssearch", "rel": "alarmssearch", "type": "application/vnd.abiquo.alarms+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/alarms" }, { "title": "clone", "rel": "clone", "type": "application/vnd.abiquo.virtualmachinecloneoptions+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/action/clone" }, { "title": "VMware vCenter", "rel": "hypervisortype", "type": "application/vnd.abiquo.hypervisortype+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/config/hypervisortypes/VMX_04" }, { "title": "yVM_Abiquo_enterprise", "rel": "virtualmachinetemplate", "type": "application/vnd.abiquo.virtualmachinetemplate+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/admin/enterprises/261/datacenterrepositories/1/virtualmachinetemplates/2" }, { "title": "Others", "rel": "category", "type": "application/vnd.abiquo.category+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/config/categories/1" } ], "usageStatistics": [] } ], "duplicatedvms": [] }
Keep the VM entity to update it. You will need the harddisks, datastore tiers, diskX, and virtualdatacenter links
Expand harddisks
Code Block { "title": "disks", "rel": "harddisks", "type": "application/vnd.abiquo.harddisks+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/storage/disks" },
diskX links for all hard disks and volumes that are already attached to the VM. In this case, there is one HD in position 0 of the boot order and one volume in position 1. Add the new disk in the next position.
Code Block { "diskControllerType": "IDE", "diskLabel": "Hard disk 1", "length": "64", "title": "91feae48-4134-484a-9487-473f577856e1", "rel": "disk0", "type": "application/vnd.abiquo.harddisk+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/disks/15000" }, { "diskControllerType": "SCSI", "length": "10", "title": "01volume470", "rel": "disk1", "type": "application/vnd.abiquo.volume+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/locations/1/volumes/14993" },
datastoretierX
Code Block { "title": "datastoretierESXI6.0_2.29", "rel": "datastoretier0", "type": "application/vnd.abiquo.datastoretier+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/locations/1/datastoretiers/58" },
virtualdatacenter
Code Block { "title": "vdc_ESXI_vCenter", "rel": "virtualdatacenter", "type": "application/vnd.abiquo.virtualdatacenter+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896" },
Use the VDC link from the VM to get the VDC
Reference: https://wiki.abiquo.com/api/latest/VirtualDatacentersResource.html#get-a-virtual-datacenter
cURL
Code Block curl -X GET "https://abiquoapi.bcn.abiquo.com/api/cloud/virtualdatacenters/1896" \ -H 'Accept: application/vnd.abiquo.virtualdatacenter+json;version=4.7' \ -u user:password --verbose
Sample response. Success status code: 200
Expand Code Block { "id": 1896, "hypervisorType": "VMX_04", "name": "vdc_ESXI_vCenter", "network": { "id": 2496, "name": "default_private_network", "address": "192.168.0.0", "mask": 24, "gateway": "192.168.0.1", "primaryDNS": "10.60.1.4", "secondaryDNS": "8.8.8.8", "sufixDNS": "", "tag": 9, "defaultNetwork": false, "type": "INTERNAL", "dhcpOptions": { "links": [], "collection": [] }, "ipv6": false, "strict": false, "restricted": false, "internetGatewayRole": false, "ipRanges": [], "excludedFromFirewall": false, "notUsableLoadBalancers": false, "notUsableVirtualMachines": false, "links": [ { "title": "vdc_ESXI_vCenter", "rel": "virtualdatacenter", "type": "application/vnd.abiquo.virtualdatacenter+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896" }, { "title": "default_private_network", "rel": "edit", "type": "application/vnd.abiquo.vlan+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/privatenetworks/2496" }, { "title": "ips", "rel": "ips", "type": "application/vnd.abiquo.privateips+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/privatenetworks/2496/ips" }, { "title": "Service Network dvSwitch", "rel": "networkservicetype", "type": "application/vnd.abiquo.networkservicetype+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/admin/datacenters/1/networkservicetypes/1" }, { "title": "load balancers", "rel": "loadbalancers", "type": "application/vnd.abiquo.loadbalancers+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/privatenetworks/2496/loadbalancers" }, { "title": "configuration", "rel": "configuration", "type": "application/vnd.abiquo.networkconfiguration+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/privatenetworks/2496/configuration" }, { "title": "192.168.0.0/24", "rel": "network_configuration", "type": "application/vnd.abiquo.networkconfiguration+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/privatenetworks/2496/configuration/2496" }, { "title": "reserve a set of ips", "rel": "reserveips", "type": "application/vnd.abiquo.ipliterals+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/privatenetworks/2496/ips/action/reserve" }, { "title": "release a set of ips", "rel": "releaseips", "type": "application/vnd.abiquo.ipliterals+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/privatenetworks/2496/ips/action/release" } ] }, "syncState": "NONE", "usersRole": [], "diskSoftLimitInMb": 0, "diskHardLimitInMb": 0, "storageSoftInMb": 0, "storageHardInMb": 0, "vmsSoft": 0, "vmsHard": 0, "vlansSoft": 0, "vlansHard": 0, "publicIpsSoft": 0, "publicIpsHard": 0, "links": [ { "title": "vdc_ESXI_vCenter", "rel": "edit", "type": "application/vnd.abiquo.virtualdatacenter+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896" }, { "title": "private networks", "rel": "privatenetworks", "type": "application/vnd.abiquo.vlans+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/privatenetworks" }, { "title": "public networks", "rel": "network", "type": "application/vnd.abiquo.vlans+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/admin/datacenters/1/network" }, { "rel": "asynctasks", "type": "application/vnd.abiquo.asynctasks+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/asynctasks" }, { "title": "default_private_network", "rel": "defaultvlan", "type": "application/vnd.abiquo.vlan+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/privatenetworks/2496" }, { "title": "4.7.0_Snapshot Enterprise testing", "rel": "enterprise", "type": "application/vnd.abiquo.enterprise+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/admin/enterprises/261" }, { "title": "virtual appliances", "rel": "virtualappliances", "type": "application/vnd.abiquo.virtualappliances+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances" }, { "title": "private ips", "rel": "privateips", "type": "application/vnd.abiquo.privateips+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/action/privateips" }, { "title": "external ips", "rel": "externalips", "type": "application/vnd.abiquo.externalips+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/action/externalips" }, { "title": "unmanaged ips", "rel": "unmanagedips", "type": "application/vnd.abiquo.unmanagedips+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/action/unmanagedips" }, { "title": "default vlan", "rel": "defaultvlan", "type": "application/vnd.abiquo.vlan+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/action/defaultvlan" }, { "title": "disks", "rel": "disks", "type": "application/vnd.abiquo.harddisks+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/disks" }, { "title": "ips to purchase", "rel": "topurchase", "type": "application/vnd.abiquo.publicips+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/publicips/topurchase" }, { "title": "ips purchased", "rel": "purchased", "type": "application/vnd.abiquo.publicips+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/publicips/purchased" }, { "title": "volumes", "rel": "volumes", "type": "application/vnd.abiquo.volumes+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/volumes" }, { "title": "tiers", "rel": "tiers", "type": "application/vnd.abiquo.tiers+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/locations/1/tiers" }, { "title": "stateful volumes", "rel": "statefulcandidates", "type": "application/vnd.abiquo.volumes+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/volumes/action/statefulcandidates" }, { "title": "available templates", "rel": "templates", "type": "application/vnd.abiquo.virtualmachinetemplates+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/action/templates" }, { "title": "all virtual machines", "rel": "virtualmachines", "type": "application/vnd.abiquo.virtualmachines+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/action/virtualmachines" }, { "title": "datastoretierESXI6.0_2.29", "rel": "defaultdatastoretier", "type": "application/vnd.abiquo.datastoretier+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/locations/1/datastoretiers/58" }, { "title": "Abiquo-DC", "rel": "location", "type": "application/vnd.abiquo.datacenter+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/locations/1" }, { "title": "tasks", "rel": "tasks", "type": "application/vnd.abiquo.tasks+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/tasks" }, { "title": "location limit", "rel": "limit", "type": "application/vnd.abiquo.limit+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/admin/enterprises/261/limits/991" }, { "title": "externalnetworks", "rel": "externalnetworks", "type": "application/vnd.abiquo.vlans+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/admin/enterprises/261/limits/991/externalnetworks" }, { "title": "virtual appliances specs", "rel": "vappspecs", "type": "application/vnd.abiquo.virtualappliancespecs+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/vappspecs" }, { "title": "Euro - €", "rel": "currency", "type": "application/vnd.abiquo.currency+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/config/currencies/2" }, { "title": "alarmssearch", "rel": "alarmssearch", "type": "application/vnd.abiquo.alarms+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/alarms" } ], "ramSoft": 0, "ramHard": 0, "cpuSoft": 0, "cpuHard": 0 }
From the virtual datacenter save the link with a rel value of "disks"
Code Block { "title": "disks", "rel": "disks", "type": "application/vnd.abiquo.harddisks+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/disks" },
Create a data object for the hard disk
- Reference: https://wiki.abiquo.com/api/latest/harddisk.html
Sample hard disk entity
Code Block { "links":[], "sizeInMb":20, "sequence":2, "allocation":"THIN", "diskControllerType":"SCSI", "label":"test disk 04", "diskController":"lsilogic" }
- Optionally specify a datastore tier with a link
Create the hard disk in the VDC
Send a POST request to the virtual datacenter disks link with the disk data object.
Code Block curl --verbose -X POST "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/disks" \ -H "Accept: application/vnd.abiquo.harddisk+json;version=4.7" \ -H "Content-Type: application/vnd.abiquo.harddisk+json;version=4.7" \ -u user:password -k \ -d '{ "links":[ ], "sizeInMb":20, "sequence":2, "allocation":"THIN", "diskControllerType":"SCSI", "label":"test disk 04", "diskController":"lsilogic" }' | jq .
Sample response. Success status code: 201
Expand Code Block { "id": 15010, "label": "test disk 04", "sequence": 0, "sizeInMb": 20, "diskFormatType": "RAW", "diskFileSize": 0, "diskControllerType": "SCSI", "diskController": "lsilogic", "bootable": false, "uuid": "8b2ea7af-1a71-48fe-aa51-79102a8873e2", "allocation": "THIN", "links": [ { "title": "vdc_ESXI_vCenter", "rel": "virtualdatacenter", "type": "application/vnd.abiquo.virtualdatacenter+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896" }, { "diskAllocation": "THIN", "diskController": "lsilogic", "diskControllerType": "SCSI", "diskLabel": "test disk 04", "rel": "edit", "type": "application/vnd.abiquo.harddisk+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/disks/15010" } ] }
Keep the edit link to use to assign the hard disk to the VM
Code Block { "diskAllocation": "THIN", "diskController": "lsilogic", "diskControllerType": "SCSI", "diskLabel": "test disk 04", "rel": "edit", "type": "application/vnd.abiquo.harddisk+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/disks/15010" }
Create disk link and to add to the VM entity
Change the edit link to diskX with the next number in the disk sequence. In this case, for the third disk, we will use "disk2"
Code Block { "diskAllocation": "THIN", "diskController": "lsilogic", "diskControllerType": "SCSI", "diskLabel": "test disk 04", "rel": "disk2", "type": "application/vnd.abiquo.harddisk+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/disks/15010" }
Power off the VM if it is deployed without hot reconfigure
- Send a PUT request to the VM state link.
- To power off, set the state attribute to "OFF". To shut down the VM, add the "gracefulShutdown" attribute and set it to "true". Note that the graceful shutdown may require VM tools.
cURL
Code Block curl --verbose -X PUT "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/3/virtualappliances/4/virtualmachines/182/state" \ -H "Content-Type: application/vnd.abiquo.virtualmachinestate+json;version=4.2" \ -d '{"state": "OFF", "gracefulShutdown": true}' \ -u user:password -k
- If the request returns a status code of 202, that means it was accepted. However, you should always check that the VM is really powered off.
Get the VM again using the VM edit link.
Code Block curl -X GET "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493" \ -H "Accept: application/vnd.abiquo.virtualmachine+json;version=4.7" \ -u user:password | jq .
This step is included in the walkthrough to ensure that your VM object is up to date!
Update the VM with a VM entity containing the new disk link
- Reference: https://wiki.abiquo.com/api/latest/VirtualMachinesResource.html#update-a-virtual-machine
cURL
Code Block curl --verbose -X PUT -u user:password \ 'https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493' -H 'Accept:application/vnd.abiquo.acceptedrequest+json;version=4.7' \ -H 'Content-type:application/vnd.abiquo.virtualmachine+json;version=4.7' \ -d @virtualMachineHD.json | jsonindent -f -nbe
Request data for this request will be in the local file named "virtualMachineHD.json".
Expand Code Block { "id": 16493, "uuid": "9fde7006-8420-4c82-96b8-cf61157eb66e", "description": "A virtual machine", "coresPerSocket": 1, "idState": 1, "idType": 0, "type": "MANAGED", "highDisponibility": 0, "metadata": { "monitoring-metrics": [ { "name": "CPU-Mz" }, { "name": "Memory-host" }, { "name": "CPU" }, { "name": "Memory" }, { "name": "Memory-vmmemctl" }, { "name": "Memory-swap2" }, { "name": "abq-ram_usage" }, { "name": "Disk-latency" }, { "name": "Memory-swap" }, { "name": "abq-cpu_usage" }, { "name": "Uptime" }, { "name": "CPU-time" }, { "name": "Memory-physical" } ] }, "monitored": true, "protected": false, "variables": {}, "backuppolicies": [], "generateGuestInitialPassword": false, "natrules": [], "vdrpEnabled": true, "vdrpPort": 0, "password": "KnZSQW07", "name": "ABQ_9fde7006-8420-4c82-96b8-cf61157eb66e", "label": "yVM_hd", "ram": 64, "cpu": 1, "state": "NOT_ALLOCATED", "creationTimestamp": 1576236231000, "links": [ { "title": "4.7.0_Snapshot Enterprise testing", "rel": "enterprise", "type": "application/vnd.abiquo.enterprise+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/admin/enterprises/261" }, { "title": "ABQ_9fde7006-8420-4c82-96b8-cf61157eb66e", "rel": "edit", "type": "application/vnd.abiquo.virtualmachine+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493" }, { "title": "send mail", "rel": "sendmail", "type": "application/vnd.abiquo.mail+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/admin/publiccloudregions/1/enterprises/261/virtualmachines/16493/action/sendmail" }, { "title": "cloudadmin cloudadmin", "rel": "user", "type": "application/vnd.abiquo.user+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/admin/enterprises/261/users/10" }, { "title": "vdc_ESXI_vCenter", "rel": "virtualdatacenter", "type": "application/vnd.abiquo.virtualdatacenter+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896" }, { "title": "vappESXI470", "rel": "virtualappliance", "type": "application/vnd.abiquo.virtualappliance+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377" }, { "title": "metadata", "rel": "metadata", "type": "application/vnd.abiquo.metadata+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/metadata" }, { "title": "vlan network configurations", "rel": "configurations", "type": "application/vnd.abiquo.virtualmachinenetworkconfigurations+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/network/configurations" }, { "title": "nics", "rel": "nics", "type": "application/vnd.abiquo.nics+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/network/nics" }, { "title": "disks", "rel": "harddisks", "type": "application/vnd.abiquo.harddisks+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/storage/disks" }, { "title": "NOT_ALLOCATED", "rel": "state", "type": "application/vnd.abiquo.virtualmachinestate+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/state" }, { "title": "virtual machine undeploy", "rel": "undeploy", "type": "application/vnd.abiquo.acceptedrequest+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/action/undeploy" }, { "title": "virtual machine deploy", "rel": "deploy", "type": "application/vnd.abiquo.acceptedrequest+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/action/deploy" }, { "title": "virtual machine reset", "rel": "reset", "type": "application/vnd.abiquo.acceptedrequest+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/action/reset" }, { "title": "virtual machine snapshot", "rel": "instance", "type": "application/vnd.abiquo.acceptedrequest+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/action/instance" }, { "title": "remote access", "rel": "rdpaccess", "type": "application/vnd.abiquo.virtualmachineconsole+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/config/rdpaccess" }, { "title": "tasks", "rel": "tasks", "type": "application/vnd.abiquo.tasks+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/tasks" }, { "title": "firewalls", "rel": "firewalls", "type": "application/vnd.abiquo.links+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/firewalls" }, { "title": "load balancers", "rel": "loadbalancers", "type": "application/vnd.abiquo.loadbalancers+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/loadbalancers" }, { "title": "request on demand backup", "rel": "requestbackup", "type": "application/vnd.abiquo.ondemandbackup+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/backup/action/request" }, { "title": "request a restore of a backup", "rel": "requestrestore", "type": "application/vnd.abiquo.restore+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/backup/action/restore" }, { "title": "move VM to a virtual appliance", "rel": "vappmove", "type": "application/vnd.abiquo.links+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/action/vappmove" }, { "title": "move VM to another virtual datacenter", "rel": "move", "type": "application/vnd.abiquo.movevm+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/action/move" }, { "title": "volumes", "rel": "volumes", "type": "application/vnd.abiquo.volumes+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/storage/volumes" }, { "title": "ABQ_HP_1_64_08c1daf8", "rel": "hardwareprofile", "type": "application/vnd.abiquo.hardwareprofile+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/locations/1/hardwareprofiles/41457" }, { "diskControllerType": "SCSI", "length": "10", "title": "01volume470", "rel": "disk1", "type": "application/vnd.abiquo.volume+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/locations/1/volumes/14993" }, { "diskControllerType": "IDE", "diskLabel": "Hard disk 1", "length": "64", "title": "91feae48-4134-484a-9487-473f577856e1", "rel": "disk0", "type": "application/vnd.abiquo.harddisk+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/disks/15000" }, { "title": "datastoretierESXI6.0_2.29", "rel": "datastoretier0", "type": "application/vnd.abiquo.datastoretier+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/locations/1/datastoretiers/58" }, { "title": "protect", "rel": "protect", "type": "text/plain", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/action/protect" }, { "title": "unprotect", "rel": "unprotect", "type": "text/plain", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/action/unprotect" }, { "title": "metricsmetadata", "rel": "metricsmetadata", "type": "application/vnd.abiquo.metricsmetadata+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/metrics" }, { "title": "disablemonitoring", "rel": "disablemonitoring", "type": "", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/disablemonitoring" }, { "title": "collectd", "rel": "collectd", "type": "application/json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/metrics/collectd" }, { "title": "alarmssearch", "rel": "alarmssearch", "type": "application/vnd.abiquo.alarms+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/alarms" }, { "title": "clone", "rel": "clone", "type": "application/vnd.abiquo.virtualmachinecloneoptions+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/virtualappliances/2377/virtualmachines/16493/action/clone" }, { "title": "VMware vCenter", "rel": "hypervisortype", "type": "application/vnd.abiquo.hypervisortype+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/config/hypervisortypes/VMX_04" }, { "title": "yVM_Abiquo_enterprise", "rel": "virtualmachinetemplate", "type": "application/vnd.abiquo.virtualmachinetemplate+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/admin/enterprises/261/datacenterrepositories/1/virtualmachinetemplates/2" }, { "title": "Others", "rel": "category", "type": "application/vnd.abiquo.category+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/config/categories/1" }, { "diskAllocation": "THIN", "diskController": "lsilogic", "diskControllerType": "SCSI", "diskLabel": "test disk 04", "rel": "disk2", "type": "application/vnd.abiquo.harddisk+json", "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/1896/disks/15010" } ], "usageStatistics": [] }
- A successful request will return a 204 no content link if the VM is not deployed. And if the VM is deployed, it will return a 202 - accepted request with a link to follow the progress of the operation.
...