Victor Coutellier de8a882ce7 Add glance image import support
Interoperable image import process are introduced in the Image API v2.6. It
mainly allow image importing from an external url and let Image Service
download it by itself without sending binary data at image creation.

This commit will add a method import_image in both Image resource and proxy.

I also add a simple create_image proxy function for creating an image without
uploading it's data, as it is not required in glance API.

Change-Id: Idee9bea3f1f5db412e0ecd2105adff316aef4c4b
Story: 2005085
Task: 29671
2019-02-28 15:10:32 +00:00

39 lines
1.2 KiB
Python

# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
from examples.connect import EXAMPLE_IMAGE_NAME
"""
Create resources with the Image service.
For a full guide see
http://developer.openstack.org/sdks/python/openstacksdk/user/guides/image.html
"""
def import_image(conn):
print("Import Image:")
# Url where glance can download the image
uri = 'https://download.cirros-cloud.net/0.4.0/' \
'cirros-0.4.0-x86_64-disk.img'
# Build the image attributes and import the image.
image_attrs = {
'name': EXAMPLE_IMAGE_NAME,
'disk_format': 'qcow2',
'container_format': 'bare',
'visibility': 'public',
}
image = conn.image.create_image(**image_attrs)
conn.image.import_image(image, method="web-download", uri=uri)