Versions Compared

Key

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

...

  1. User wants to upload a template from the browser and launch a vm with it on Cloudstack
  2. User wants to upload a volume from the browser and attach it to a vm on Cloudstack

Functional Requirements

...

  • feature shall

...

  • feature shall support upload of template through https POST request
  • feature shall support upload of volume through https POST request
  • uploading same volume or template shall be treated as new upload by management server
  • failure to upload volume or template is irrecoverable, it needs to be reinitiated by requesting a new upload url
  • management server (or SSVM agent ?) shall ensure cleanup of partially uploaded volume or template in case of failure (?)
  • management server shall be able to give status (percentage, bytes etc) of the upload
  • a global param to limit the max upload size (is there an existing one that can be reused?)
  • management server will use the current resource limits for templates/volumes and would error on reaching the limits. 
  • This is hypervisor agnostic and should work for all hypervisors 
  • SSVM apache will be able to handle parallel upload and will be limited by the number of connections in the apache settings

...

  1. No unencrypted or http version of this will not be available

  2. Upload progress to the user (http://creativejs.com/tutorials/advanced-uploading-techniques-part-1/ )
  3. split upload and join in apache so as to not hit browser timeouts
  4. post url should be active only for one time call - return proper error message on subsequent calls - how do we determine if its already used?

  5. Admin to list all the uploads happening and cancel any if required

  6. Multiple files for the same template/volume will not be supported for now

Design

...

process flow

The browser-based uploading process will have four main steps:

...

  1. DownloadProgressCommand will be used the check the download progress (from Management server to Agent)
  2. DownloadCommand will be used to start the download(SSVM Apache to SSVM Agent)

fault scenarios & cleanup

This section shall describe how the management server shall detect a failed volume/template upload.

...

cleanup

...

management server and SSVM agent interaction

...