Using OpenStack Image
Before working with the Image service, you'll need to create a connection
to your OpenStack cloud by following the :doc:connect
user guide. This will
provide you with the conn
variable used in the examples below.
The primary resource of the Image service is the image.
List Images
An image is a collection of files for a specific operating system
that you use to create or rebuild a server. OpenStack provides
pre-built images <http://docs.openstack.org/image-guide/obtain-images.html>
_.
You can also create custom images, or snapshots, from servers that you have
launched. Images come in different formats and are sometimes called virtual
machine images.
(鏡像image是根據(jù)操作系統(tǒng)不同的一系列的文件集合,你可以使用它去創(chuàng)建和重建一個server。
openstack提供了預(yù)建的images苛预,你也可以創(chuàng)建自定義的images匙铡,或者從運(yùn)行的server創(chuàng)建快照风响。
images有不同的格式清钥,有時候也叫虛擬機(jī)鏡像艺谆。)
.. literalinclude:: ../examples/image/list.py
:pyobject: list_images
Full example: image resource list
_
Create Image
Create an image by uploading its data and setting its attributes.
(上傳數(shù)據(jù)和設(shè)置屬性可以創(chuàng)建一個鏡像)
.. literalinclude:: ../examples/image/create.py
:pyobject: upload_image
Full example: image resource create
_
.. _download_image-stream-true:
Downloading an Image with stream=True (下載鏡像)
As images are often very large pieces of data, storing their entire contents
in the memory of your application can be less than desirable. A more
efficient method may be to iterate over a stream of the response data.
(由于image是擁有很大的數(shù)據(jù)弊决,存儲它到你應(yīng)用的內(nèi)存是不可能的窑邦。一個更加有效率的的方式是循環(huán)迭代一個數(shù)據(jù)流)
By choosing to stream the response content, you determine the chunk_size
that is appropriate for your needs, meaning only that many bytes of data are
read for each iteration of the loop until all data has been consumed.
See :meth:requests.Response.iter_content
for more information, as well
as Requests' :ref:body-content-workflow
.
(在選擇去下載鏡像內(nèi)容的時候擅威,你決定chunk_size,由你的需求決定冈钦。xxx)
When you choose to stream an image download, openstacksdk is no longer
able to compute the checksum of the response data for you. This example
shows how you might do that yourself, in a very similar manner to how
the library calculates checksums for non-streamed responses.
(當(dāng)你選擇去下載一個鏡像的數(shù)據(jù)流郊丛,openstacksdk不再有能力去計算下載的數(shù)據(jù)比例。下面的例子顯示如果你你想,你應(yīng)該怎么做厉熟,
使用一個很類似的方式庫怎么計算沒有下載的數(shù)據(jù)的校驗和)
.. literalinclude:: ../examples/image/download.py
:pyobject: download_image_stream
Downloading an Image with stream=False
If you wish to download an image's contents all at once and to memory,
simply set stream=False
, which is the default.
(如果你想去一次性下載一個鏡像的內(nèi)容导盅,保存到內(nèi)存,那么你設(shè)置stream=False)
.. literalinclude:: ../examples/image/download.py
:pyobject: download_image
Full example: image resource download
_
Delete Image
Delete an image.
(刪除一個鏡像)
.. literalinclude:: ../examples/image/delete.py
:pyobject: delete_image
Full example: image resource delete
_
(一套例子)
.. _image resource create: http://git.openstack.org/cgit/openstack/python-openstacksdk/tree/examples/image/create.py
.. _image resource delete: http://git.openstack.org/cgit/openstack/python-openstacksdk/tree/examples/image/delete.py
.. _image resource list: http://git.openstack.org/cgit/openstack/python-openstacksdk/tree/examples/image/list.py
.. _image resource download: http://git.openstack.org/cgit/openstack/python-openstacksdk/tree/examples/image/download.py