1 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
2 .. http://creativecommons.org/licenses/by/4.0
3 .. Copyright (c) 2017-2018 VMware, Inc.
10 Because Multicloud provides a cloud mediation layer supporting multiple clouds.
12 introduces some function enhancements in it. Image Service could let user
13 upload/download images
14 in a convinient way just by using Multicloud.
20 The original functions which Multicloud possesses are to use urls to upload
22 spec we intend to upload images as raw file which means it has to store a copy
24 upload the images to the backend openstack. So this spec is to extend
26 download/upload images as raw file rather than a through a url
32 One typical use case is to allow users to upload/download images by Multicloud
38 The proposed change mainly means introducing glance python APIs to enable
39 multicloud support openstack image service. This feature needs two changes:
40 Upload API to import an image to backend OpenStack and the image that just
41 imported can be queried from MultiCloud. Download API to download an image
42 from backend Openstack and the image can be downloaded from MultiCloud.
44 The eventual work flow looks like as follows:::
46 user request to upload image
58 +-----------|----------+
61 | +------------------+ |
62 | | image service API| |
63 | +---------+--------+ |
64 +-----------|----------+
68 +----------------------+
70 +----------------------+
72 The APIs look like this:
76 Input of /{vimid}/{tenantid}/images/file will be
82 "imageType": string, // image type: ami, ari, aki, vhd, vhdx, vmdk, raw, qcow2, vdi, iso
83 "containerFormat": string, // image container format: ami, ari, aki, bare, ovf, ova, docker
84 "visibility": string, // public, private, shared, or community
85 "properties": arrary // list of properties
88 Output of upload_image will be
94 "description": "upload successfully",
97 "description": "the vim id or tenant UUID is wrong"
100 "description": "the vim image is not accessable"
105 Input of /{vimid}/{tenantid}/images/file/{imageid} will be
110 "imagepath": string, // the path of the downloaded image
111 "properties": arrary // list of properties
114 Output of download_image will be
120 "description": "download successfully",
123 "description": "the vim id or tenant UUID is wrong"
126 "description": "the vim image is not accessable"