Versions Compared

Key

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

...

Jira
serverASF JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId5aa69414-a9e9-3523-82ec-879b028fb15b
keyCLOUDSTACK-8676

 

Branch

Targeted for ACS master

...

  1. Existing API deployVirtualMachine will be updated
    1. Adding 1 new optional parameter – vmsnapshotid
      1. vmsnapshotid - UUID of the VM snapshot that the VM has to be deployed from.
      2. This parameter would be mutually exclusive with the existing parameter ‘templateid’, which represents a template or iso
      3. Usage - &vmsnapshotid=<vmsnapshot-uuid>
    2. Modifying the existing parameter templateid from required to optional
  2. prepareTemplate– Existing API will be updated

  3. seedTemplateFromVmSnapshot– New API introduced
    1. Parameters –
      1. zoneid - UUID of zone
        1. Required
      Adding 1 new optional parameter – vmsnapshotid
      1. vmsnapshotid - UUID of the VM snapshot from which the template would be created from.
          This parameter would be mutually exclusive with the existing parameter ‘templateid’
          1. Required
        1. storageid - UUID of primary storage pool where the template need to be seeded onto.
          1. Required
        2. Usage - &vmsnapshotid=<vmsnapshot-uuid>
        Modifying the existing parameter templateid from required to optional
    2. createVolume -  Existing API will be updated
        1. &zoneid=<zone-uuid>&storageid=<primary-storage-uuid>

    3. createVolumeFromVmSnapshot -  New API will be introduced. In class that implements this API inherits CreateVolumeCmd class due to the functional overlap. Hence all required parameters of createVolume API would required for this API too. Following are the parameters specific to this API and doesn't belong to createVolume API.
      1. Parameters – vmsnapshotid, volumeId.
        1. vmsnapshotid
          1. UUID of the VM
      2. Adding 2 new optional parameters – vmsnapshotid, volumeId.
        1. vmsnapshotid
          1. UUID of the VM snapshot from which the volume should be extracted and created from.
          2. This parameter would be used along with volumeId parameter.
          3. This parameter would be mutually exclusive with diskofferingid, snapshotid
          4. Required parameter
          5. Usage - &vmsnapshotid=<vmsnapshot-uuid>
        2. volumeId
          1. UUID of the volume from which (content of) new volume would be created so that content of volume would be identical to that of the volume from snapshot specified by vmsnapshotid.
          2. This parameter would be used along with vmsnapshotid parameterRequired parameter
          3. Usage - &volumeId=<volume-uuid>
      3. Size of new volume would be same as that of the volume specified by <volumeid>

    DB Changes

    vmsnapshotvm_snapshot_spool_ref (id, pool_id, vm_snapshot_id, created, install_path, state) -  This table will contain the mapping between a VM snapshot and the primary storage it is on.

    ...

     

    ...

    Type

    ...

    NULL

    ...

    Key

    ...

    Default

    ...

    id

    ...

    bigint(20) unsigned

    ...

    NO

    ...

    PRI

    ...

    NULL

    ...

    vm_snapshot_id

    ...

    bigint(20) unsigned

    ...

    NO

    ...

     

    ...

    NULL

    ...

    pool_id

    ...

    bigint(20) unsigned

    ...

    NO

    ...

     

    ...

    NULL

    ...

    No Format
    +----------------+---------------------+------+-----+---------+----------------+
    | Field          | Type                | Null | Key | Default | Extra          |
    +----------------+---------------------+------+-----+---------+----------------+
    | id             | bigint(20) unsigned | NO   | PRI | NULL    | auto_increment |
    | uuid           | varchar(40)         | YES  |     | NULL    |                |
    | pool_id        | bigint(20) unsigned | NO   | MUL | NULL    |                |
    | vm_snapshot_id | bigint(20) unsigned | NO   | MUL | NULL    |                |
    | created        | datetime            | NO   |     | NULL    |                |
    | job_id         | varchar(255)        | YES  |     | NULL    |                |
    | state          | varchar(255)        | YES  |     | NULL    |                |
    | status         | varchar(255)        | YES  |     | NULL    |                |
    | install_path   | varchar(255)        | YES  |     | NULL    |                |
    | template_size  | bigint(20) unsigned | NO   |     | NULL    |                |
    | marked_for_gc  | tinyint(1) unsigned | NO   |     | 0       |                |
    +----------------+---------------------+------+-----+---------+----------------+
    
    

    Hypervisors supported

    VMware ESXi 5.0 and above.

    ...

    • Deployment of VM from VM snapshots will be available with a fresh deployment as well as an upgraded deployment.
    • In an upgraded deployment, VM deployment will be supported for VM snapshots created both before and after upgrade.

    Open Items/Questions

    1. NA