Versions Compared

Key

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

...

  • This request requires direct access to the Appliance Manager API

  • Make a backup of your template folder before you begin

  • If you are replacing a disk that was created from an instance of a captured VM,
    before you upload your new disk, add an Abiquo OVF file to the original VM template folder .
    You may be able to copy the OVF file of another template and modify it

...

You will need a JSON file to describe the disk.
The steps below describe how to obtain the values of {TEMPLATE_URL}, {DISK_URL}, and {FOLDER_PATH} from the Abiquo UI.
You must set the correct requiredHDInMB for the deployed disk in Abiquo before you deploy the VM.
Try to complete the other disk data as best you can.

...

  1. Log in to Abiquo and open developer tools in your browser

  2. Go to Network and record requests

  3. Select and edit the template.

  4. From the developer tools console, select the request to get the disks.
    Here you will find the:

    1. Template URL and disk URL

    2. Current path on the repository file system

  5. Complete the JSON object with the data from your API. For example, from the values above

    Code Block
    { 
        "virtualMachineTemplateUrl":"https://mjsabiquo.lab.example.com/admin/enterprises/1/datacenterrepositories/1/virtualmachinetemplates/72",
        "diskUrl":"https://mjsabiquo.lab.example.com/admin/enterprises/1/datacenterrepositories/1/virtualmachinetemplates/72/disks/74",
        "currentPath":"1/bundle/e05785d2-b49a-4034-9bb9-3440e1693589-4ba3b6e1-6f06-47d9-8703-9e9/daf2f2fb-d3d0-4263-a466-d1b27a0d6864-new+dsl+disk.vmdk",
        "diskController": "lsilogic",
        "diskControllerType": "SCSI",
        "diskFileFormat":"VMDK_STREAM_OPTIMIZED",
        "diskFilePath": "",
        "label": "Hard disk 1",
        "requiredHDInMB":120,    
        "sequence":0
    }
  6. Save it to a file calleddiskReplace.json

...

Obtain the URL

  • To create the URL for the request, you will need:

    • The URL to reach the Remote Services server with the AM remote service.
      The rs_url is the URL of the AM, without any /api path. For example, https://mjsremoteservices.lab.example.com.

    • The folder part the path attribute

  • The basic URL format is as follows

...

To obtain an authorization token, send a GET request to the API login resource.

Use basic authentication and get the token from the X-Abiquo-Token header.

Code Block
curl --verbose -X GET "https://abiquomjsabiquo.lab.example.com:443/api/login" -u adminuser:password -k

...

Code Block
curl --verbose -X GET "https://abiquomjsabiquo.lab.example.com:443/api/login" -H "X-Abiquo-OTP: your2FAcode"

Now you can get the token from the X-Abiquo-Token header of the response.

In your API requests, use the token in a header with the following format.

...

Code Block
-H 'Authorization: Token a2e19816735381c1d074441cbd002aa01f9ed7dc4cd9f4e0683c3c88...' 

For more details, see Authentication.

Note

The API token may expire during the process, and you may need to obtain a new token and use it in your requests

...

We recommend that you use double quotation marks around all the parameters, including the file parameters for diskInfo and diskFile.

Code Block
curl -v -k -X POST 'https://mjsremoteservices.lab.example.com/am/erepos/1/templates/1/bundle/e05785d2-b49a-4034-9bb9-3440e1693589-4ba3b6e1-6f06-47d9-8703-9e9' \
  -H 'Authorization: Token {api_token}' \
  -F "diskInfo=@diskReplace.json" -F "diskFile=@newdisk.vmdk"

Replace newdisk.vmdk  with the name of your disk file on the local file system.

...

Use double quotation marks around all the parameters, including the file parameters for diskInfo and diskFile, especially if the disk file name contains spaces!

...