ISO Images
Introduction
Installing a guest operating system is a very common task upon VM creation, and in order to reduce deployment time, we have included the ability of mounting an ISO image right after a VM has been created, so users can power on the VM and start installing the desired OS without remotely mounting the ISO image, which depending of user's bandwidth, could take longer because it has to transmit the ISO file contents to the VM.
On this page:
Our ISO image catalog is composed by more than 220 ISO images (and growing) stored within our virtual environment to make a faster VM-ISO interaction, where users can pick and choose the most common Linux distributions, Windows, Solaris, etc. or any other Software like SQL Server.
The following table shows a brief description and HTTP methods allowed to interact with ISO images available to customers.
Resource | URI | Description | GET | POST | PUT | PATCH | OPTIONS |
---|---|---|---|---|---|---|---|
Public ISO images | /iso | CD/DVD iso images available to customers. | |||||
Personal ISO images | /user/image/iso | CD/DVD ISO images in user's personal store |
TK stores the Cloud API Token generated as a result of the following POST request to the /auth/request-token resource:
curl -X POST https://vss-api.eis.utoronto.ca/auth/request-token -u <username>
For example, extracting the token with the jq command:
TK=$(curl -X POST https://vss-api.eis.utoronto.ca/auth/request-token -u <username> | jq -r '.token')
List Personal ISOs
In order to list available ISO images in your personal https://vskey-stor.eis.utoronto.ca account you should make a GET request to the endpoint /v2/user/image/iso passing your access token.
The following examples implements HTTPie and CURL to list available ISO images:
http GET "https://vss-api.eis.utoronto.ca/v2/user/image/iso" "Authorization: Bearer $TK" curl -H "Authorization: Bearer $TK" -X GET "https://vss-api.eis.utoronto.ca/v2/user/image/iso"
Sync personal ISOS
Before listing personal ISOs, please be sure you have uploaded the desired file to https://vskey-stor.eis.utoronto.ca and then execute a Synchronization task as follows:
http PATCH https://vss-api.eis.utoronto.ca/v2/user/image/iso "Authorization: Bearer $TK" curl -H "Authorization: Bearer $TK" -X PATCH "https://vss-api.eis.utoronto.ca/v2/user/image/iso"
A synchronization task should be submitted and your ISO images should appear momentaneously on /v2/user/image/iso
List Public ISOs
In order to list available ISO images you should make a GET request to the endpoint /v2/iso passing your access token. As a result, you will get list of ISO images URL reference.
The following examples implements HTTPie and CURL to list available ISO images:
http GET "https://vss-api.eis.utoronto.ca/v2/iso" "Authorization: Bearer $TK" curl -H "Authorization: Bearer $TK" -X GET "https://vss-api.eis.utoronto.ca/v2/iso"
Expand
You can also expand given resources by adding the parameter to the query string expand=1 as follows:
http GET "https://vss-api.eis.utoronto.ca/v2/iso?expand=1" "Authorization: Bearer $TK" curl -H "Authorization: Bearer $TK" -X GET "https://vss-api.eis.utoronto.ca/v2/iso?expand=1"
Paging
All requests to the /iso URL are paginated. The response body includes a 'meta.pages' key with everything to navigate through the results, for instance:
Key | Description |
---|---|
first_url | Contain the URLs to navigate through results. |
last_url | |
prev_url | |
next_url | |
page | Current page |
pages | Total number of pages |
per_page | Results per page. Maximum 250; Default 10. |
total | Total number of results |
Results per page can be set by including the parameter in the URL query, so we can get the desired number of elements per page, for example:
http GET "https://vss-api.eis.utoronto.ca/v2/iso?per_page=250&expand=1" "Authorization: Bearer $TK" curl -X GET -H "Authorization: Bearer $TK" "https://vss-api.eis.utoronto.ca/v2/iso?per_page=250&expand=1"
Filtering
ISOs can be filtered by adding the filter argument to the query string in the following format:
filter=<field_name>,<operator>,<value>
Operators can be:
Operator | Description |
---|---|
eq | Equals |
ne | Not equal |
lt | Lower than |
le | Lower equal |
gt | Greater than |
ge | Greater equal |
like | Matching pattern |
in | Match value in many items separated by commas |
A resource can be filtered by as many attributes the request has, for instance /iso can be filtered by name, path, created_on, updated_on, etc. Thus, the following example will filter only CentOS images:
http GET "https://vss-api.eis.utoronto.ca/v2/iso?per_page=250&expand=1&filter=name,like,CentO%" "Authorization: Bearer $TK"
Sorting
ISO images can be sorted by adding the sort parameter in the URL query string in the following format:
sort=<field_name>,<asc|desc>
The following example shows how to filter by date (latest first):
http GET "https://vss-api.eis.utoronto.ca/v2/iso?per_page=250&expand=1&filter=name,like,CentO%&sort=name,desc" "Authorization: Bearer $TK" curl -X GET -H "Authorization: Bearer $TK" "https://vss-api.eis.utoronto.ca/v2/iso?per_page=250&expand=1&filter=name,like,CentO%&sort=name,desc"