Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

...

Table of Contents

Introduction

This page describes how to create a virtual datacenter and deploy a VM.

This tutorial is suitable for a test environment only and it does not use proper authentication.

You will need the following resources.

Your user role must include the following privileges.

  • A user privilege, e.g. MANAGE_USERS, to retrieve enterprises

  • VDC_MANAGE

  • VDC_MANAGE_VAPP

  • VAPP_DEPLOY_UNDEPLOY

The following pages contain reference information for this tutorial:

Summary diagram

The steps in this diagram link to the API reference guide resources and data entities sections.

Mermaid
fileNamemermaid_1655195963673
themeneutral
version

...

3
{"diagramDefinition":"graph TD\n\nZ(( ))\n\nstyle Z fill:#g1g,stroke:#100,stroke-width:20px\n\nZ-->A(Requires: Allowed location and<br/>VM template in Apps library)\n\nA -->B(<font color=0052cc>Get enterprise)\n\nclick B href \"https://wiki.abiquo.com/api/latest/EnterprisesResource.html#list-enterprise-identifiers-and-names\" _blank\n\nB -->C(<font color=0052cc>Get allowed datacenters)\n\nclick C href \"https://wiki.abiquo.com/api/latest/AllowedLocationsResource.html#list-location-of-allowed-datacenters\" _blank\n\nB-->D(<font color=0052cc>Get allowed<br/>public cloud regions)\n\nclick D href \"https://wiki.abiquo.com/api/latest/AllowedLocationsResource.html#list-location-of-allowed-public-cloud-regions\" _blank\n\nC-->E(<font color=0052cc>Create VDC object)\n\nclick E href \"https://wiki.abiquo.com/api/latest/virtualdatacenter.html\" _blank\n\nD-->E\n\nE-->F(<font color=0052cc>Create the VDC)\n\nclick F href \"https://wiki.abiquo.com/api/latest/VirtualDatacentersResource.html#create-a-virtual-datacenter\" _blank\n\nF-->G(Create a virtual appliance)\n\nG-->H(Get compatible templates)\n\nH-->I(Create the VM entity)\n\nI-->J(Create a VM)\n\nJ-->K(Deploy the VM)\n\nK-->Q((<fontcolour=f3efe6> * ))\n\tstyle Q fill:#f3efe6,stroke:#030300,stroke-width:7px,color:#f3efe6"}

Detailed steps

  1. Get the link to the enterprise

    1. Get smaller result entity with the enterprises-id-name media type

    2. Specify the enterprise name with the "has" parameter to filter by name text

    3. Reference

      1. https://wiki.abiquo.com/api/latest/EnterprisesResource.html#list-enterprise-identifiers-and-names

    4. cURL

      Code Block
      curl -X GET https://abiquoapi.bcn.abiquo.com:443/api/admin/enterprises?has=video \ 
      	 -H 'Accept:application/vnd.abiquo.enterprises-id-name+json; version=4.7' \ 
      	 -u user:password --verbose


    5. Sample response. Success response code: 200
      Note: this request returns a collection of enterprises

      Expand
      Code Block
      {
          "totalSize": 1,
          "links": [
              {
                  "rel": "first",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/admin/enterprises?limit=25&has=video"
              },
              {
                  "rel": "last",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/admin/enterprises?startwith=0&limit=25&has=video"
              }
          ],
          "collection": [
              {
                  "id": 15,
                  "name": "Video_enterprise",
                  "vmsSoft": 0,
                  "vmsHard": 0,
                  "vlansSoft": 0,
                  "vlansHard": 0,
                  "publicIpsSoft": 0,
                  "publicIpsHard": 0,
                  "links": [
                      {
                          "title": "Video_enterprise",
                          "rel": "edit",
                          "type": "application/vnd.abiquo.enterprise+json",
                          "href": "https://abiquoapi.bcn.abiquo.com:443/api/admin/enterprises/15"
                      }
                  ],
                  "ramSoft": 0,
                  "ramHard": 0,
                  "cpuSoft": 0,
                  "cpuHard": 0
              }
          ]
      }


    6. You will need the edit link of the enterprise

      Code Block
                      {
                          "title": "Video_enterprise",
                          "rel": "edit",
                          "type": "application/vnd.abiquo.enterprise+json",
                          "href": "https://abiquoapi.bcn.abiquo.com:443/api/admin/enterprises/15"
                      }


  2. Get allowed locations for the current enterprise

    1. Specify datacenters or publiccloudregions using the media type in the Accept header

    2. Cloud admin can use the "enterprise" parameter to get locations for another enterprise by ID 

    3. References: 

      1. https://wiki.abiquo.com/api/latest/AllowedLocationsResource.html#list-location-of-allowed-datacenters

      2. https://wiki.abiquo.com/api/latest/AllowedLocationsResource.html#list-location-of-allowed-public-cloud-regions

    4. cURL

      Code Block
      curl -X GET https://abiquoapi.bcn.abiquo.com:443/api/cloud/locations?has=Abiquo \ 
      	 -H 'Accept:application/vnd.abiquo.datacenters+json; version=4.7' \ 
      	 -u user:password --verbose 


    5. Sample response. Success status code: 200
      Note: This request returns a collection of allowed locations

      Expand
      Code Block
      {
          "totalSize": 1,
          "links": [
              {
                  "rel": "first",
                  "href": "https://.bcn.abiquo.com:443/api/cloud/locations?limit=25&has=Abiquo&by=name&asc=true"
              },
              {
                  "rel": "last",
                  "href": "https://.bcn.abiquo.com:443/api/cloud/locations?startwith=0&limit=25&has=Abiquo&by=name&asc=true"
              }
          ],
          "collection": [
              {
                  "id": 1,
                  "name": "Abiquo-DC",
                  "location": "Teide",
                  "links": [
                      {
                          "title": "Abiquo-DC",
                          "rel": "edit",
                          "type": "application/vnd.abiquo.datacenter+json",
                          "href": "https://.bcn.abiquo.com:443/api/admin/datacenters/1"
                      },
                      {
                          "title": "racks",
                          "rel": "racks",
                          "type": "application/vnd.abiquo.racks+json",
                          "href": "https://.bcn.abiquo.com:443/api/admin/datacenters/1/racks"
                      },
                      {
                          "title": "remote services",
                          "rel": "remoteservices",
                          "type": "application/vnd.abiquo.remoteservices+json",
                          "href": "https://.bcn.abiquo.com:443/api/admin/datacenters/1/remoteservices"
                      },
                      {
                          "title": "update resources",
                          "rel": "updateusedresources",
                          "type": "",
                          "href": "https://.bcn.abiquo.com:443/api/admin/datacenters/1/action/updateusedresources"
                      },
                      {
                          "title": "datastores",
                          "rel": "datastores",
                          "type": "application/vnd.abiquo.datastores+json",
                          "href": "https://.bcn.abiquo.com:443/api/admin/datacenters/1/datastores"
                      },
                      {
                          "title": "hypervisors",
                          "rel": "hypervisors",
                          "type": "application/vnd.abiquo.hypervisortypes+json",
                          "href": "https://.bcn.abiquo.com:443/api/admin/datacenters/1/hypervisors"
                      },
                      {
                          "title": "enterprises",
                          "rel": "enterprises",
                          "type": "application/vnd.abiquo.enterprises+json",
                          "href": "https://.bcn.abiquo.com:443/api/admin/datacenters/1/action/enterprises"
                      },
                      {
                          "title": "discover",
                          "rel": "discover",
                          "type": "application/vnd.abiquo.machines+json",
                          "href": "https://.bcn.abiquo.com:443/api/admin/datacenters/1/action/discover"
                      },
                      {
                          "title": "machines state",
                          "rel": "checkmachinestate",
                          "type": "application/vnd.abiquo.machinestate+json",
                          "href": "https://.bcn.abiquo.com:443/api/admin/datacenters/1/action/checkmachinestate"
                      },
                      {
                          "title": "machines ipmi",
                          "rel": "checkmachineipmistate",
                          "type": "application/vnd.abiquo.machineipmistate+json",
                          "href": "https://.bcn.abiquo.com:443/api/admin/datacenters/1/action/checkmachineipmistate"
                      },
                      {
                          "title": "tiers",
                          "rel": "tiers",
                          "type": "application/vnd.abiquo.tiers+json",
                          "href": "https://.bcn.abiquo.com:443/api/admin/datacenters/1/storage/tiers"
                      },
                      {
                          "title": "storage devices",
                          "rel": "devices",
                          "type": "application/vnd.abiquo.storagedevices+json",
                          "href": "https://.bcn.abiquo.com:443/api/admin/datacenters/1/storage/devices"
                      },
                      {
                          "title": "devices",
                          "rel": "devices",
                          "type": "application/vnd.abiquo.devices+json",
                          "href": "https://.bcn.abiquo.com:443/api/admin/datacenters/1/devices"
                      },
                      {
                          "title": "network service types",
                          "rel": "networkservicetypes",
                          "type": "application/vnd.abiquo.networkservicetypes+json",
                          "href": "https://.bcn.abiquo.com:443/api/admin/datacenters/1/networkservicetypes"
                      },
                      {
                          "title": "public networks",
                          "rel": "network",
                          "type": "application/vnd.abiquo.vlans+json",
                          "href": "https://.bcn.abiquo.com:443/api/admin/datacenters/1/network"
                      },
                      {
                          "title": "external ips",
                          "rel": "externalips",
                          "type": "application/vnd.abiquo.externalips+json",
                          "href": "https://.bcn.abiquo.com:443/api/admin/datacenters/1/network/action/externalips"
                      },
                      {
                          "title": "limits",
                          "rel": "getLimits",
                          "type": "application/vnd.abiquo.limits+json",
                          "href": "https://.bcn.abiquo.com:443/api/admin/datacenters/1/action/getlimits"
                      },
                      {
                          "title": "excluded networks",
                          "rel": "excludednetworks",
                          "type": "application/vnd.abiquo.excludednetworks+json",
                          "href": "https://.bcn.abiquo.com:443/api/admin/datacenters/1/excludednetworks"
                      },
                      {
                          "title": "NARS",
                          "rel": "remoteservice",
                          "type": "application/vnd.abiquo.remoteservice+json",
                          "href": "https://.bcn.abiquo.com:443/api/admin/remoteservices/4"
                      },
                      {
                          "title": "REMOTEACCESS",
                          "rel": "remoteservice",
                          "type": "application/vnd.abiquo.remoteservice+json",
                          "href": "https://.bcn.abiquo.com:443/api/admin/remoteservices/61"
                      },
                      {
                          "title": "VIRTUALSYSTEMMONITOR",
                          "rel": "remoteservice",
                          "type": "application/vnd.abiquo.remoteservice+json",
                          "href": "https://.bcn.abiquo.com:443/api/admin/remoteservices/2"
                      },
                      {
                          "title": "BPMSERVICE",
                          "rel": "remoteservice",
                          "type": "application/vnd.abiquo.remoteservice+json",
                          "href": "https://.bcn.abiquo.com:443/api/admin/remoteservices/6"
                      },
                      {
                          "title": "APPLIANCEMANAGER",
                          "rel": "remoteservice",
                          "type": "application/vnd.abiquo.remoteservice+json",
                          "href": "https://.bcn.abiquo.com:443/api/admin/remoteservices/3"
                      },
                      {
                          "title": "VIRTUALFACTORY",
                          "rel": "remoteservice",
                          "type": "application/vnd.abiquo.remoteservice+json",
                          "href": "https://.bcn.abiquo.com:443/api/admin/remoteservices/1"
                      },
                      {
                          "title": "metricsmetadata",
                          "rel": "metricsmetadata",
                          "type": "application/vnd.abiquo.metricsmetadata+json",
                          "href": "https://.bcn.abiquo.com:443/api/admin/datacenters/1/metrics"
                      },
                      {
                          "title": "collectd",
                          "rel": "collectd",
                          "type": "application/json",
                          "href": "https://.bcn.abiquo.com:443/api/admin/datacenters/1/metrics/collectd"
                      },
                      {
                          "title": "alarmssearch",
                          "rel": "alarmssearch",
                          "type": "application/vnd.abiquo.alarms+json",
                          "href": "https://.bcn.abiquo.com:443/api/admin/datacenters/1/alarms"
                      },
                      {
                          "title": "natnetworks",
                          "rel": "natnetworks",
                          "type": "application/vnd.abiquo.natnetworks+json",
                          "href": "https://.bcn.abiquo.com:443/api/admin/datacenters/1/natnetworks"
                      },
                      {
                          "title": "Get nat ips",
                          "rel": "natips",
                          "type": "application/vnd.abiquo.natips+json",
                          "href": "https://.bcn.abiquo.com:443/api/admin/datacenters/1/natnetworks/action/allips"
                      },
                      {
                          "title": "Get nat rules",
                          "rel": "natrules",
                          "type": "application/vnd.abiquo.natrules+json",
                          "href": "https://.bcn.abiquo.com:443/api/admin/datacenters/1/natnetworks/action/allrules"
                      },
                      {
                          "title": "repository",
                          "rel": "datacenterrepository",
                          "type": "application/vnd.abiquo.datacenterrepository+json",
                          "href": "https://.bcn.abiquo.com:443/api/admin/enterprises/15/datacenterrepositories/1"
                      },
                      {
                          "title": "floating ips",
                          "rel": "ips",
                          "type": "application/vnd.abiquo.publicips+json",
                          "href": "https://.bcn.abiquo.com:443/api/cloud/locations/1/ips"
                      },
                      {
                          "title": "devices",
                          "rel": "devices",
                          "type": "application/vnd.abiquo.devices+json",
                          "href": "https://.bcn.abiquo.com:443/api/cloud/locations/1/devices"
                      },
                      {
                          "title": "available templates",
                          "rel": "templates",
                          "type": "application/vnd.abiquo.virtualmachinetemplates+json",
                          "href": "https://.bcn.abiquo.com:443/api/cloud/locations/1/templates"
                      },
                      {
                          "title": "remote vdcs",
                          "rel": "remotevirtualdatacenters",
                          "type": "application/vnd.abiquo.virtualdatacenters+json",
                          "href": "https://.bcn.abiquo.com:443/api/cloud/locations/1/action/remotevirtualdatacenters"
                      },
                      {
                          "title": "remote vms",
                          "rel": "remotevirtualmachines",
                          "type": "application/vnd.abiquo.virtualmachines+json",
                          "href": "https://.bcn.abiquo.com:443/api/cloud/locations/1/action/remotevirtualmachines"
                      },
                      {
                          "title": "available volumes",
                          "rel": "volumes",
                          "type": "application/vnd.abiquo.volumes+json",
                          "href": "https://.bcn.abiquo.com:443/api/cloud/locations/1/volumes"
                      },
                      {
                          "title": "available tiers",
                          "rel": "tiers",
                          "type": "application/vnd.abiquo.tiers+json",
                          "href": "https://.bcn.abiquo.com:443/api/cloud/locations/1/tiers"
                      },
                      {
                          "title": "Abiquo-DC",
                          "rel": "location",
                          "type": "application/vnd.abiquo.datacenter+json",
                          "href": "https://.bcn.abiquo.com:443/api/cloud/locations/1"
                      },
                      {
                          "title": "backup policies",
                          "rel": "backuppolicies",
                          "type": "application/vnd.abiquo.backuppolicies+json",
                          "href": "https://.bcn.abiquo.com:443/api/cloud/locations/1/backuppolicies"
                      },
                      {
                          "title": "backup location properties",
                          "rel": "backupproperties",
                          "type": "application/vnd.abiquo.backupdatacenterproperties+json",
                          "href": "https://.bcn.abiquo.com:443/api/cloud/locations/1/backupproperties"
                      },
                      {
                          "title": "compatible datastore tiers",
                          "rel": "compatibles",
                          "type": "application/vnd.abiquo.links+json",
                          "href": "https://.bcn.abiquo.com:443/api/cloud/locations/1/datastoretiers/action/compatibles"
                      },
                      {
                          "title": "datastore tiers",
                          "rel": "datastoretiers",
                          "type": "application/vnd.abiquo.datastoretiers+json",
                          "href": "https://.bcn.abiquo.com:443/api/cloud/locations/1/datastoretiers"
                      },
                      {
                          "title": "metricsmetadata",
                          "rel": "metricsmetadata",
                          "type": "application/vnd.abiquo.metricsmetadata+json",
                          "href": "https://.bcn.abiquo.com:443/api/cloud/locations/1/metrics"
                      },
                      {
                          "title": "collectd",
                          "rel": "collectd",
                          "type": "application/json",
                          "href": "https://.bcn.abiquo.com:443/api/cloud/locations/1/metrics/collectd"
                      },
                      {
                          "title": "VMware vCenter",
                          "rel": "hypervisortype",
                          "type": "application/vnd.abiquo.hypervisortype+json",
                          "href": "https://.bcn.abiquo.com:443/api/config/hypervisortypes/VMX_04"
                      }
                  ]
              }
          ]
      }


    6. You will need the edit, hypervisortype, and datacenterrepository links of the location.

      1. edit link

        Code Block
                        {
                            "title": "Abiquo-DC",
                            "rel": "edit",
                            "type": "application/vnd.abiquo.datacenter+json",
                            "href": "https://abiquoapi.bcn.abiquo.com:443/api/admin/datacenters/1"
                        },


      2. hypervisortype link for the hypervisor you would like to use in the virtual datacenter. The code of the hypervisor type is at the end of the link, for example, for VMware vCenter, the name is "VMX_04".

        Code Block
                        {
                            "title": "VMware vCenter",
                            "rel": "hypervisortype",
                            "type": "application/vnd.abiquo.hypervisortype+json",
                            "href": "https://abiquoapi.bcn.abiquo.com:443/api/config/hypervisortypes/VMX_04"
                        }


      3. datacenterrepository link to retrieve templates

        Code Block
                        {
                            "title": "repository",
                            "rel": "datacenterrepository",
                            "type": "application/vnd.abiquo.datacenterrepository+json",
                            "href": "https://abiquoapi.bcn.abiquo.com:443/api/admin/enterprises/15/datacenterrepositories/1"
                        },


  3. Create a virtualdatacenter entity

    1. Reference: https://wiki.abiquo.com/api/latest/virtualdatacenter.html

    2. Add the links to the enterprise and the location and the hypervisorType attribute.

  4. Create a virtualdatacenter

    1. Reference: https://wiki.abiquo.com/api/latest/VirtualDatacentersResource.html#create-a-virtual-datacenter

    2. cURL

      Code Block
      curl -X POST https://abiquoapi.bcn.abiquo.com/api/cloud/virtualdatacenters \ 
      	 -H 'Accept:application/vnd.abiquo.asynctask+json; version=4.7' \ 
      	 -H 'Content-Type:application/vnd.abiquo.virtualdatacenter+json; version=4.7' \ 
      	 -d @virtualdatacentercreate.json \ 
      	 -u user:password --verbose 


    3. Virtual datacenter entity

      expand

      Code Block
      {
        "hypervisorType" : "VMX_04",
        "name" : "vdc_test_create",
        "network" : {
          "name" : "Default Network",
          "address" : "192.168.0.0",
          "mask" : 24,
          "gateway" : "192.168.0.1",
          "primaryDNS" : "10.0.0.1",
          "secondaryDNS" : "10.0.0.1",
          "defaultNetwork" : false,
          "type" : "INTERNAL",
          "ipv6" : false,
          "strict" : false,
          "restricted" : false,
          "internetGatewayRole" : false,
          "ipRanges" : [ ],
          "excludedFromFirewall" : false,
          "notUsableLoadBalancers" : false,
          "notUsableVirtualMachines" : false,
          "links" : [ ]
        },
        "usersRole" : [ ],
        "vmsSoft" : 0,
        "vmsHard" : 0,
        "vlansSoft" : 0,
        "vlansHard" : 0,
        "publicIpsSoft" : 0,
        "publicIpsHard" : 0,
        "links" : [ {
          "rel" : "location",
          "href" : "https://.bcn.abiquo.com/api/cloud/locations/1"
        }, {
          "rel" : "enterprise",
          "href" : "https://.bcn.abiquo.com/api/admin/enterprises/15"
        } ],
        "ramSoft" : 0,
        "ramHard" : 0,
        "cpuSoft" : 0,
        "cpuHard" : 0
      }


    4. Sample response

      expand

      Code Block
      {
          "creationTime": 1576592419286,
          "finished": true,
          "jobs": {
              "links": [],
              "collection": []
          },
          "links": [
              {
                  "rel": "self",
                  "type": "application/vnd.abiquo.asynctask+json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/locations/1/asynctasks/1625"
              },
              {
                  "title": "vdc_test_create",
                  "rel": "owner",
                  "type": "application/vnd.abiquo.virtualdatacenter+json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/2075"
              },
              {
                  "title": "Abiquo-DC",
                  "rel": "datacenter",
                  "type": "application/vnd.abiquo.datacenter+json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/locations/1"
              },
              {
                  "title": "Video_enterprise",
                  "rel": "enterprise",
                  "type": "application/vnd.abiquo.enterprise+json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/admin/enterprises/15"
              }
          ]
      } 


      The "owner" link references the virtualdatacenter, so you can use it obtain the virtualdatacenter entity and you will also need it to create a virtual appliance.

      Code Block
              {
                  "title": "vdc_test_create",
                  "rel": "owner",
                  "type": "application/vnd.abiquo.virtualdatacenter+json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/2075"
              },


  5. Create a virtual appliance

    1. Reference: https://wiki.abiquo.com/api/latest/VirtualAppliancesResource.html#create-a-virtual-appliance

    2. cURL

      Code Block
      curl -X POST https://abiquoapi.bcn.abiquo.com/api/cloud/virtualdatacenters/2075/virtualappliances \ 
      	 -H 'Accept:application/vnd.abiquo.virtualappliance+json; version=4.7' \ 
      	 -H 'Content-Type:application/vnd.abiquo.virtualappliance+json; version=4.7' \ 
      	 -d @virtualappliancecreate.json \ 
      	 -u user:password --verbose 


    3. Virtual appliance entity

      Code Block
      {
      	"name":"vapp_test_create"
      }


    4. Sample response. Success status code: 201

      Expand
      Code Block
      {
          "id": 2596,
          "error": 0,
          "highDisponibility": 0,
          "name": "vapp_test_create",
          "publicApp": 0,
          "state": "NOT_DEPLOYED",
          "restricted": false,
          "notAllocatedVirtualMachines": 0,
          "onVirtualMachines": 0,
          "offVirtualMachines": 0,
          "pausedVirtualMachines": 0,
          "allocatedVirtualMachines": 0,
          "configuredVirtualMachines": 0,
          "unknownVirtualMachines": 0,
          "lockedVirtualMachines": 0,
          "links": [
              {
                  "title": "vapp_test_create",
                  "rel": "edit",
                  "type": "application/vnd.abiquo.virtualappliance+json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/2075/virtualappliances/2596"
              },
              {
                  "title": "vdc_test_create",
                  "rel": "virtualdatacenter",
                  "type": "application/vnd.abiquo.virtualdatacenter+json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/2075"
              },
              {
                  "title": "Video_enterprise",
                  "rel": "enterprise",
                  "type": "application/vnd.abiquo.enterprise+json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/admin/enterprises/15"
              },
              {
                  "title": "virtual machines",
                  "rel": "virtualmachines",
                  "type": "application/vnd.abiquo.virtualmachines+json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/2075/virtualappliances/2596/virtualmachines"
              },
              {
                  "title": "virtual appliances state",
                  "rel": "state",
                  "type": "application/vnd.abiquo.virtualappliancestate+json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/2075/virtualappliances/2596/state"
              },
              {
                  "title": "undeploy",
                  "rel": "undeploy",
                  "type": "application/vnd.abiquo.acceptedrequest+json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/2075/virtualappliances/2596/action/undeploy"
              },
              {
                  "title": "deploy",
                  "rel": "deploy",
                  "type": "application/vnd.abiquo.acceptedrequest+json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/2075/virtualappliances/2596/action/deploy"
              },
              {
                  "title": "price",
                  "rel": "price",
                  "type": "text/plain",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/2075/virtualappliances/2596/action/price"
              },
              {
                  "title": "layers",
                  "rel": "layers",
                  "type": "application/vnd.abiquo.layers+json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/2075/virtualappliances/2596/layers"
              },
              {
                  "title": "spec",
                  "rel": "spec",
                  "type": "application/vnd.abiquo.virtualappliancespec+json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/2075/virtualappliances/2596/action/spec"
              },
              {
                  "title": "tasks",
                  "rel": "tasks",
                  "type": "application/vnd.abiquo.tasks+json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/2075/virtualappliances/2596/tasks"
              },
              {
                  "title": "scalinggroups",
                  "rel": "scalinggroups",
                  "type": "application/vnd.abiquo.scalinggroups+json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/2075/virtualappliances/2596/scalinggroups"
              },
              {
                  "title": "metricsmetadata",
                  "rel": "metricsmetadata",
                  "type": "application/vnd.abiquo.metricsmetadata+json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/2075/virtualappliances/2596/metrics"
              },
              {
                  "title": "collectd",
                  "rel": "collectd",
                  "type": "application/json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/2075/virtualappliances/2596/metrics/collectd"
              },
              {
                  "title": "alarmssearch",
                  "rel": "alarmssearch",
                  "type": "application/vnd.abiquo.alarms+json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/2075/virtualappliances/2596/alarms"
              }
          ]
      }


    5. You will need the virtualmachines link to create a VM

      Code Block
              {
                  "title": "virtual machines",
                  "rel": "virtualmachines",
                  "type": "application/vnd.abiquo.virtualmachines+json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/2075/virtualappliances/2596/virtualmachines"
              },      


  6. Get a compatible template from the Apps library

    1. Reference: https://wiki.abiquo.com/api/latest/VirtualMachineTemplatesResource.html#list-virtual-machine-templates-in-a-datacenter-repository

    2. Perform a GET request to the URL from the datacenterrepository link of the location. Get the virtualmachinetemplates link from the datacenterrepository.

    3. Get the VM templates using parameters including:

      1. hypervisorTypeName - for compatibility

      2. limit - for convenience

      3. has - filter template names by this text string

      See the above API Reference page for more details.

    4. cURL

      Code Block
      curl --verbose -X GET "https://abiquoapi.bcn.abiquo.com/api/admin/enterprises/15/datacenterrepositories/1/virtualmachinetemplates?hypervisorTypeName=VMX_04&limit=1&has=Core" \
      -H "Accept: application/vnd.abiquo.virtualmachinetemplates+json; version=4.7;" \
      -u user:password


    5. Sample response. Success status code: 201

      Expand
      Code Block
      {
          "totalSize": 2,
          "links": [
              {
                  "rel": "first",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/admin/enterprises/15/datacenterrepositories/1/virtualmachinetemplates?hypervisorTypeName=VMX_04&limit=1&has=Core&by=state&asc=true"
              },
              {
                  "rel": "next",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/admin/enterprises/15/datacenterrepositories/1/virtualmachinetemplates?hypervisorTypeName=VMX_04&startwith=1&limit=1&has=Core&by=state&asc=true"
              },
              {
                  "rel": "last",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/admin/enterprises/15/datacenterrepositories/1/virtualmachinetemplates?hypervisorTypeName=VMX_04&startwith=1&limit=1&has=Core&by=state&asc=true"
              }
          ],
          "collection": [
              {
                  "id": "3",
                  "name": "Core",
                  "description": "root : abiquo",
                  "osType": "LINUX_64",
                  "osVersion": "",
                  "cpuRequired": 1,
                  "ramRequired": 64,
                  "shared": true,
                  "state": "DONE",
                  "creationDate": "2017-02-06T23:37:41.000+0000",
                  "creationUser": "SYSTEM",
                  "chefEnabled": false,
                  "iconUrl": "https://upload.wikimedia.org/wikipedia/commons/a/af/Tux.png",
                  "loginUser": "user",
                  "loginPassword": "password",
                  "ethernetDriverType": "E1000",
                  "variables": {},
                  "enableCpuHotAdd": false,
                  "enableRamHotAdd": false,
                  "enableDisksHotReconfigure": false,
                  "enableNicsHotReconfigure": false,
                  "enableRemoteAccessHotReconfigure": false,
                  "enableOnlyHPRecommended": false,
                  "generateGuestInitialPassword": false,
                  "productCodes": [],
                  "links": [
                      {
                          "title": "Video_enterprise",
                          "rel": "enterprise",
                          "type": "application/vnd.abiquo.enterprise+json",
                          "href": "https://abiquoapi.bcn.abiquo.com:443/api/admin/enterprises/15"
                      },
                      {
                          "title": "Others",
                          "rel": "category",
                          "type": "application/vnd.abiquo.category+json",
                          "href": "https://abiquoapi.bcn.abiquo.com:443/api/config/categories/1"
                      },
                      {
                          "title": "Core",
                          "rel": "edit",
                          "type": "application/vnd.abiquo.virtualmachinetemplate+json",
                          "href": "https://abiquoapi.bcn.abiquo.com:443/api/admin/enterprises/15/datacenterrepositories/1/virtualmachinetemplates/3"
                      },
                      {
                          "title": "tasks",
                          "rel": "tasks",
                          "type": "application/vnd.abiquo.tasks+json",
                          "href": "https://abiquoapi.bcn.abiquo.com:443/api/admin/enterprises/15/datacenterrepositories/1/virtualmachinetemplates/3/tasks"
                      },
                      {
                          "title": "repository",
                          "rel": "datacenterrepository",
                          "type": "application/vnd.abiquo.datacenterrepository+json",
                          "href": "https://abiquoapi.bcn.abiquo.com:443/api/admin/enterprises/15/datacenterrepositories/1"
                      },
                      {
                          "title": "virtual machines",
                          "rel": "virtualmachines",
                          "type": "application/vnd.abiquo.virtualmachines+json",
                          "href": "https://abiquoapi.bcn.abiquo.com:443/api/admin/enterprises/15/datacenterrepositories/1/virtualmachinetemplates/3/action/virtualmachines"
                      },
                      {
                          "title": "disks",
                          "rel": "disks",
                          "type": "application/vnd.abiquo.disks+json",
                          "href": "https://abiquoapi.bcn.abiquo.com:443/api/admin/enterprises/15/datacenterrepositories/1/virtualmachinetemplates/3/disks"
                      },
                      {
                          "rel": "disk0",
                          "type": "application/vnd.abiquo.disk+json",
                          "href": "https://abiquoapi.bcn.abiquo.com:443/api/admin/enterprises/15/datacenterrepositories/1/virtualmachinetemplates/3/disks/3"
                      },
                      {
                          "title": "template definition",
                          "rel": "templatedefinition",
                          "href": "http://rs.bcn.abiquo.com:9000/ovf/305/desc.ovf"
                      },
                      {
                          "title": "template path",
                          "rel": "templatePath",
                          "href": "https://abiquoapi.bcn.abiquo.com:443/am/erepos/15/templates/1/rs.bcn.abiquo.com/abiport9000/ovf/305/"
                      },
                      {
                          "title": "Global scope",
                          "rel": "scope",
                          "type": "application/vnd.abiquo.scope+json",
                          "href": "https://abiquoapi.bcn.abiquo.com:443/api/admin/scopes/1"
                      }
                  ]
              }
          ]
      }


    6. Select the virtualmachinetemplate object you want to use and get the edit link

      Code Block
                      {
                          "title": "Core",
                          "rel": "edit",
                          "type": "application/vnd.abiquo.virtualmachinetemplate+json",
                          "href": "https://abiquoapi.bcn.abiquo.com:443/api/admin/enterprises/15/datacenterrepositories/1/virtualmachinetemplates/3"
                      },


    7. Troubleshooting: if the request doesn't return any templates, you may need to refresh the datacenter repository. Reference: 

  7. Create a VM entity

    1. The link to specify the template is the only required attribute. In this case, we are also setting the friendly name of the VM and enabling remote access.

      Code Block
      {  
         "label":"Core_VM",
         "links":[  
            {  
               "title":"Core",
               "rel":"virtualmachinetemplate",
               "type":"application/vnd.abiquo.virtualmachinetemplate+json",
               "href":"https://abiquoapi.bcn.abiquo.com:443/api/admin/enterprises/15/datacenterrepositories/1/virtualmachinetemplates/3"
            }
         ],
         "vdrpEnabled":true
      }


  8. Create a VM

    1. Perform a POST request to the URL of the virtualmachines link from the virtual appliance

    2. cURL

      Code Block
      curl -X POST https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/2075/virtualappliances/2596/virtualmachines \ 
      	 -H 'Accept:application/vnd.abiquo.virtualmachine+json; version=4.7' \ 
      	 -H 'Content-Type:application/vnd.abiquo.virtualmachine+json; version=4.7' \ 
      	 -d @virtualmachineentity.json \ 
      	 -u user:password --verbose 


    3. The virtualmachineentity.json file to send with this request is shown in the previous step. 

    4. Sample response. Success status code: 201

      Expand
      Code Block
      {
          "id": 16644,
          "uuid": "6e28ff4d-207a-4299-9b52-a3bc6ced856a",
          "description": "root : abiquo",
          "coresPerSocket": 1,
          "idState": 1,
          "idType": 0,
          "type": "MANAGED",
          "highDisponibility": 0,
          "monitored": true,
          "protected": false,
          "variables": {},
          "backuppolicies": [],
          "generateGuestInitialPassword": false,
          "natrules": [],
          "vdrpEnabled": true,
          "vdrpPort": 0,
          "password": "h6JXpuku",
          "name": "ABQ_6e28ff4d-207a-4299-9b52-a3bc6ced856a",
          "label": "Core_VM",
          "ram": 64,
          "cpu": 1,
          "state": "NOT_ALLOCATED",
          "creationTimestamp": 1576606467000,
          "iconUrl": "https://upload.wikimedia.org/wikipedia/commons/a/af/Tux.png",
          "links": [
              {
                  "title": "Video_enterprise",
                  "rel": "enterprise",
                  "type": "application/vnd.abiquo.enterprise+json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/admin/enterprises/15"
              },
              {
                  "title": "ABQ_6e28ff4d-207a-4299-9b52-a3bc6ced856a",
                  "rel": "edit",
                  "type": "application/vnd.abiquo.virtualmachine+json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/2075/virtualappliances/2596/virtualmachines/16644"
              },
              {
                  "title": "send mail",
                  "rel": "sendmail",
                  "type": "application/vnd.abiquo.mail+json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/admin/publiccloudregions/1/enterprises/15/virtualmachines/16644/action/sendmail"
              },
              {
                  "title": "cloudadmin cloudadmin",
                  "rel": "user",
                  "type": "application/vnd.abiquo.user+json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/admin/enterprises/15/users/10"
              },
              {
                  "title": "vdc_test_create",
                  "rel": "virtualdatacenter",
                  "type": "application/vnd.abiquo.virtualdatacenter+json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/2075"
              },
              {
                  "title": "vapp_test_create",
                  "rel": "virtualappliance",
                  "type": "application/vnd.abiquo.virtualappliance+json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/2075/virtualappliances/2596"
              },
              {
                  "title": "metadata",
                  "rel": "metadata",
                  "type": "application/vnd.abiquo.metadata+json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/2075/virtualappliances/2596/virtualmachines/16644/metadata"
              },
              {
                  "title": "vlan network configurations",
                  "rel": "configurations",
                  "type": "application/vnd.abiquo.virtualmachinenetworkconfigurations+json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/2075/virtualappliances/2596/virtualmachines/16644/network/configurations"
              },
              {
                  "title": "nics",
                  "rel": "nics",
                  "type": "application/vnd.abiquo.nics+json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/2075/virtualappliances/2596/virtualmachines/16644/network/nics"
              },
              {
                  "title": "disks",
                  "rel": "harddisks",
                  "type": "application/vnd.abiquo.harddisks+json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/2075/virtualappliances/2596/virtualmachines/16644/storage/disks"
              },
              {
                  "title": "NOT_ALLOCATED",
                  "rel": "state",
                  "type": "application/vnd.abiquo.virtualmachinestate+json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/2075/virtualappliances/2596/virtualmachines/16644/state"
              },
              {
                  "title": "virtual machine undeploy",
                  "rel": "undeploy",
                  "type": "application/vnd.abiquo.acceptedrequest+json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/2075/virtualappliances/2596/virtualmachines/16644/action/undeploy"
              },
              {
                  "title": "virtual machine deploy",
                  "rel": "deploy",
                  "type": "application/vnd.abiquo.acceptedrequest+json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/2075/virtualappliances/2596/virtualmachines/16644/action/deploy"
              },
              {
                  "title": "virtual machine reset",
                  "rel": "reset",
                  "type": "application/vnd.abiquo.acceptedrequest+json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/2075/virtualappliances/2596/virtualmachines/16644/action/reset"
              },
              {
                  "title": "virtual machine snapshot",
                  "rel": "instance",
                  "type": "application/vnd.abiquo.acceptedrequest+json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/2075/virtualappliances/2596/virtualmachines/16644/action/instance"
              },
              {
                  "title": "remote access",
                  "rel": "rdpaccess",
                  "type": "application/vnd.abiquo.virtualmachineconsole+json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/2075/virtualappliances/2596/virtualmachines/16644/config/rdpaccess"
              },
              {
                  "title": "tasks",
                  "rel": "tasks",
                  "type": "application/vnd.abiquo.tasks+json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/2075/virtualappliances/2596/virtualmachines/16644/tasks"
              },
              {
                  "title": "firewalls",
                  "rel": "firewalls",
                  "type": "application/vnd.abiquo.links+json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/2075/virtualappliances/2596/virtualmachines/16644/firewalls"
              },
              {
                  "title": "load balancers",
                  "rel": "loadbalancers",
                  "type": "application/vnd.abiquo.loadbalancers+json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/2075/virtualappliances/2596/virtualmachines/16644/loadbalancers"
              },
              {
                  "title": "request on demand backup",
                  "rel": "requestbackup",
                  "type": "application/vnd.abiquo.ondemandbackup+json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/2075/virtualappliances/2596/virtualmachines/16644/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/2075/virtualappliances/2596/virtualmachines/16644/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/2075/virtualappliances/2596/virtualmachines/16644/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/2075/virtualappliances/2596/virtualmachines/16644/action/move"
              },
              {
                  "title": "volumes",
                  "rel": "volumes",
                  "type": "application/vnd.abiquo.volumes+json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/2075/virtualappliances/2596/virtualmachines/16644/storage/volumes"
              },
              {
                  "diskController": "lsilogic",
                  "diskControllerType": "SCSI",
                  "length": "100",
                  "title": "f693e374-e07e-4a94-99db-a7268a904484",
                  "rel": "disk0",
                  "type": "application/vnd.abiquo.harddisk+json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/2075/disks/15069"
              },
              {
                  "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/2075/virtualappliances/2596/virtualmachines/16644/action/protect"
              },
              {
                  "title": "unprotect",
                  "rel": "unprotect",
                  "type": "text/plain",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/2075/virtualappliances/2596/virtualmachines/16644/action/unprotect"
              },
              {
                  "title": "metricsmetadata",
                  "rel": "metricsmetadata",
                  "type": "application/vnd.abiquo.metricsmetadata+json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/2075/virtualappliances/2596/virtualmachines/16644/metrics"
              },
              {
                  "title": "disablemonitoring",
                  "rel": "disablemonitoring",
                  "type": "",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/2075/virtualappliances/2596/virtualmachines/16644/disablemonitoring"
              },
              {
                  "title": "collectd",
                  "rel": "collectd",
                  "type": "application/json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/2075/virtualappliances/2596/virtualmachines/16644/metrics/collectd"
              },
              {
                  "title": "alarmssearch",
                  "rel": "alarmssearch",
                  "type": "application/vnd.abiquo.alarms+json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/2075/virtualappliances/2596/virtualmachines/16644/alarms"
              },
              {
                  "title": "clone",
                  "rel": "clone",
                  "type": "application/vnd.abiquo.virtualmachinecloneoptions+json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/2075/virtualappliances/2596/virtualmachines/16644/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": "Core",
                  "rel": "virtualmachinetemplate",
                  "type": "application/vnd.abiquo.virtualmachinetemplate+json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/admin/enterprises/15/datacenterrepositories/1/virtualmachinetemplates/3"
              },
              {
                  "title": "Others",
                  "rel": "category",
                  "type": "application/vnd.abiquo.category+json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/config/categories/1"
              }
          ],
          "usageStatistics": []
      }


    5. You will need the deploy link to launch the VM

      Code Block
              {
                  "title": "virtual machine deploy",
                  "rel": "deploy",
                  "type": "application/vnd.abiquo.acceptedrequest+json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/2075/virtualappliances/2596/virtualmachines/16644/action/deploy"
              },


  9. Deploy the VM

    1. Reference: https://wiki.abiquo.com/api/latest/VirtualMachinesResource.html#deploy-a-virtual-machine

    2. cURL

      Code Block
      curl -X POST https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/2075/virtualappliances/2596/virtualmachines/16644/action/deploy \ 
      	 -H 'Accept:application/vnd.abiquo.acceptedrequest+json;version=4.7' \ 
      	 -u user:password --verbose 


    3. Sample response. Success status code: 202
      This request returns an acceptedrequest object with a link to track the progress of the deploy.

      expand

      Code Block
      {
          "message": "You can keep track of the progress in the link",
          "links": [
              {
                  "title": "status",
                  "rel": "status",
                  "type": "application/vnd.abiquo.task+json",
                  "href": "https://abiquoapi.bcn.abiquo.com:443/api/cloud/virtualdatacenters/2075/virtualappliances/2596/virtualmachines/16644/tasks/d49aedbe-cc20-4410-9e74-2de1243342aa"
              }
          ]
      }


    4. Alternatively, you can deploy all the VMs in the virtual appliance using the deploy link from the virtual appliance.

Your VM should now be deployed and powered on. Congratulations! You have completed this tutorial.

...