Versions Compared

Key

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

...

  • No change in User experience during template registration
  • Once template is downloaded and installed in the secondary storage it will be post processed
  • Post processing will be handled by 2 new Agent commands - GetDataDisksCommand and CreateDataDiskTemplateCommand
    • GetDataDisksCommand
      • Will temporarily import the OVA into CloudStack to identify the ROOT disk and additional data disks present (if any). If present, path and size of each of the data disks will be returned
      • Identifying the ROOT disk (remaining disks will be considered as data disks)
        • OVA template custom property "cloud.ova.bootdisk" will be used to determine the ROOT disk. If this property is not set the first disk will be identified as the ROOT disk
        • The value of parameter “cloud.ova.bootdisk” should be in format ”<controllertype><controllerId>:<devicenumber_on_this_controller>” e.g. “cloud.ova.bootdisk”=”scsi0:2”
          • Possible values for <controllertype> - "ide" or "scsi", <controllerId> - 0, 1, 2, 3, <devicenumber_on_this_controller> - 0 to 15
          • Custom property can be added to VM before creating OVA from the VM per VMware documentation. Refer -  Modifying Virtual machine custom property
      • For each of the additional disks, Datadisk template entries will be made in the DB
        • Entries will be made in vm_templates and vm_template_store_ref table
        • Datadisk Template will be referenced to the corresponding VM template by with DB column parent_template_id where parent_template_id points to the VM template
    • CreateDataDiskTemplateCommand
      • This agent command will be invoked for each of the Datadisk templates returned by GetDataDisksCommand
      • As part of the Datadisk template creation following files will be created to represent the template
        • An OVF descriptor based on the disk properties returned by GetDataDisksCommand
        • An OVA .meta file to represent an OVA
        • template.properties file to encapsulate the properties of the Datadisk template
      • Datadisk, OVF, META and template.properties file will be present in a separate folder inside the parent template folder. e.g. -
        • Say VM the Datadisk template id is 206, then the 1st data disk of a template 223 then it will be present in folder  - template/tmpl/2/206223/1
        • Sample contents of the Datadisk template folder will be
          • MultipleVolumes.meta MultipleVolumes.ovf MultipleVolumes223-2-9f6a1c42-472b-3bd1-9fac-1101a6228df9.ova.meta multipledisk.ovf multipledisk-disk1.vmdk template.properties
      • If creation of any of the individual Datadisk templates fails then we will not rollback the VM template that was created. Instead we will log a warning and continue with the creation of remaining data disks

...