ITS Private Cloud API v3.13.1🎃

We are pleased to announce we released the ITS Cloud API v3.13.1 with the following improvements and bug fixes:

Improvements

VM/SCSI support sharing mode (create, update) (#1431) 

Endpoints

  • /v2/vm/<vm-id>/controller/scsi (POST)
  • /v2/vm/<vm-id>/controller/scsi/<bus>/sharing (PUT)
  • /v2/vss/vm-disk-scsi-controller-sharing (GET)

Description

SCSI controllers now support advanced settings such as sharing for both new controllers and existing controllers. SCSI controllers can be created using the following payloads:

List of SCSI controllers (types)
["lsilogic", "paravirtual"]


List of SCSI controller specification
[
 {"type": "lsilogic"},
 {"type": "paravirtual", "sharing": "virtualSharing"}
]

Supported sharing is available in the following resource.

/v2/vss/vm-disk-scsi-controller-sharing
{
	"_links": {
	"self": "https://vss-api-dev.eis.utoronto.ca/v2/vss/vm-disk-scsi-controller-sharing",
	"vss": "https://vss-api-dev.eis.utoronto.ca/v2/vss"
	},
	"data": [
		{
			"description": "The virtual SCSI bus is not shared.",
			"type": "nosharing"
		},
		{
			"description": "The virtual SCSI bus is shared between two or more virtual machines residing on different physical hosts.",
			"type": "physicalsharing"
		},
		{
			"description": "The virtual SCSI bus is shared between two or more virtual machines. In this case, no physical machine is involved.",
			"type": "virtualsharing"
	}
	],
	"meta": {
	"count": 3,
	"time": "0.00180s",
	"user": "jm"
	}
}


This is NOT a breaking change. Current method to create SCSI controllers with a list of SCSI types is still supported. The API will transform the list of valid capacities into objects.

VM/Disk support backing_mode in disk payload (create and update disk) (#1432) 

VM/Disk support backing_sharing in disk payload (create and update disk) (#1433)

Endpoints

  • /v2/vm/<vm-id>/disk (POST)
  • /v2/vm/<vm-id>/spec (GET)
  • /v2/vm (POST)

Description

Before this version, disks were created by providing an array or list of numbers which defined the new disk capacity, however in some cases there might be the need of creating a disk with a different backing mode such as independent_persistent or which are excluded from snapshots and make the revert or removal faster. 

From now on, disk definition support two payloads:

List of disks (capacity in gb)
[40, 500]
List of disk specification
[
  {"capacity_gb": 40},
  {"capacity_gb": 500, "backing_mode": "independent_persistent" }
]

With this improvement, a disk can be created with a given backing mode from the beginning instead of creating the disk and then updating the backing mode to a desired setup. If backing_mode is not included, defaults persistent.

This is NOT a breaking change. Current method to create disks with a list of numbers is still supported. The API will transform the list of valid capacities into objects.

Advanced configuration also supports backing_sharing modes in the disk specification as follows:

List of disk specification
[
 {
	"backing_mode": "persistent",
	"backing_sharing": "sharingnone",
	"capacity_gb": 10
},
{
	"backing_mode": "independent_persistent",
	"backing_sharing": "sharingnone",
	"capacity_gb": 100
},
{
	"backing_mode": "persistent",
	"backing_sharing": "sharingnone",
	"capacity_gb": 200
}
]

Supported sharing is available in the following resource.

/vss/vm-disk-sharing
{
	"_links": {
	"self": "https://vss-api-dev.eis.utoronto.ca/v2/vss/vm-disk-mode",
	"vss": "https://vss-api-dev.eis.utoronto.ca/v2/vss"
	},
	"data": [
		{
		"description": "The virtual disk is shared between multiple virtual machines.",
		"type": "sharingmultiwriter"
	},
	{
		"description": "The virtual disk is not shared.",
		"type": "sharingnone"
	}
	],
	"meta": {
	"count": 2,
	"time": "0.00171s",
	"user": "josem"
	}
}


VM/Add last_powered_on, last_powered_off, last_shutdown_on and decommissioned_on attributes   (#1437)

Endpoints

  • /v2/vm

Description

Virtual Machine summary provides last_powered_on, last_powered_off, last_shutdown which are updated based on VSS API tasks or vSphere events.

Bug Fixes

VM/Remove VSS option from vm causes ValueError: list.remove(x): x not in list (#1434)

Endpoints

  • /vm/<vm-id>/vss/option/<option> (DELETE)

VM/Performance throws IndexError: list index out of range when performance manager not providing metrics (#1435)

Endpoints

  • /vm/<vm-id>/performance (GET)

VM/Release IP issues when decommissioning a VM (#1435)

Endpoints

  • /vm/<vm-id> (DELETE)

University of Toronto - Since 1827