Image Service
=================
-Because Multicloud provides a cloud mediation layer supporting multiple clouds. It's necessary to
-introduces some function enhancements in it. Image Service could let user upload/download images
+Because Multicloud provides a cloud mediation layer supporting multiple clouds.
+It's necessary to
+introduces some function enhancements in it. Image Service could let user
+upload/download images
in a convinient way just by using Multicloud.
Problem Description
===================
-The original functions which Multicloud possesses are to use urls to upload images, while in this
-spec we intend to upload images as raw file which means it has to store a copy in Multicloud then
-upload the images to the backend openstack. So this spec is to extend multicloud to support
+The original functions which Multicloud possesses are to use urls to upload
+images, while in this
+spec we intend to upload images as raw file which means it has to store a copy
+in Multicloud then
+upload the images to the backend openstack. So this spec is to extend
+multicloud to support
download/upload images as raw file rather than a through a url
Proposed change
===================
-The proposed change mainly means introducing glance python APIs to enable multicloud support openstack
-image service. This feature needs two changes: Upload API to import an image to backend OpenStack
-and the image that just imported can be queried from MultiCloud. Download API to download an image
+The proposed change mainly means introducing glance python APIs to enable
+multicloud support openstack image service. This feature needs two changes:
+Upload API to import an image to backend OpenStack and the image that just
+imported can be queried from MultiCloud. Download API to download an image
from backend Openstack and the image can be downloaded from MultiCloud.
-The eventual work flow looks like as follows:
+The eventual work flow looks like as follows:::
user request to upload image
|
Input of /{vimid}/{tenantid}/images/file will be
::
+
required: image file
{
"imageType": string, // image type: ami, ari, aki, vhd, vhdx, vmdk, raw, qcow2, vdi, iso
Output of upload_image will be
::
+
"responses": {
"201": {
"description": "upload successfully",
Input of /{vimid}/{tenantid}/images/file/{imageid} will be
::
+
{
"imagepath": string, // the path of the downloaded image
"properties": arrary // list of properties
Output of download_image will be
::
+
"responses": {
"200": {
"description": "download successfully",