28d95bfc66
With the split of the User Guides, there's no need anymore to have orphan and user_only flags, remove them from the user-guide directory. Only files that keep :orphan: are doc/user-guide/source/hot-guide/hot_advanced_topics.rst and hot_existing_templates.rst since these files are not currently included. Change-Id: I1ac0356d69d8668785f8b1947e8b061731aca747
134 lines
3.8 KiB
ReStructuredText
134 lines
3.8 KiB
ReStructuredText
.. highlight: python
|
|
:linenothreshold: 5
|
|
|
|
=============
|
|
Manage images
|
|
=============
|
|
|
|
When working with images in the SDK, you will call both ``glance`` and
|
|
``nova`` methods.
|
|
|
|
.. _list-images:
|
|
|
|
List images
|
|
~~~~~~~~~~~
|
|
|
|
To list the available images, call the
|
|
``glanceclient.v2.images.Controller.list`` method:
|
|
|
|
.. code-block:: python
|
|
|
|
import glanceclient.v2.client as glclient
|
|
glance = glclient.Client(...)
|
|
images = glance.images.list()
|
|
|
|
The images method returns a Python generator, as shown in the following
|
|
interaction with the Python interpreter:
|
|
|
|
::
|
|
|
|
>>> images = glance.images.list()
|
|
>>> images
|
|
<generator object list at 0x105e9c2d0>
|
|
>>> list(images)
|
|
[{u'checksum': u'f8a2eeee2dc65b3d9b6e63678955bd83',
|
|
u'container_format': u'ami',
|
|
u'created_at': u'2013-10-20T14:28:10Z',
|
|
u'disk_format': u'ami',
|
|
u'file': u'/v2/images/dbc9b2db-51d7-403d-b680-3f576380b00c/file',
|
|
u'id': u'dbc9b2db-51d7-403d-b680-3f576380b00c',
|
|
u'kernel_id': u'c002c82e-2cfa-4952-8461-2095b69c18a6',
|
|
u'min_disk': 0,
|
|
u'min_ram': 0,
|
|
u'name': u'cirros-0.3.2-x86_64-uec',
|
|
u'protected': False,
|
|
u'ramdisk_id': u'4c1c9b4f-3fe9-425a-a1ec-1d8fd90b4db3',
|
|
u'schema': u'/v2/schemas/image',
|
|
u'size': 25165824,
|
|
u'status': u'active',
|
|
u'tags': [],
|
|
u'updated_at': u'2013-10-20T14:28:11Z',
|
|
u'visibility': u'public'},
|
|
{u'checksum': u'69c33642f44ca552ba4bb8b66ad97e85',
|
|
u'container_format': u'ari',
|
|
u'created_at': u'2013-10-20T14:28:09Z',
|
|
u'disk_format': u'ari',
|
|
u'file': u'/v2/images/4c1c9b4f-3fe9-425a-a1ec-1d8fd90b4db3/file',
|
|
u'id': u'4c1c9b4f-3fe9-425a-a1ec-1d8fd90b4db3',
|
|
u'min_disk': 0,
|
|
u'min_ram': 0,
|
|
u'name': u'cirros-0.3.2-x86_64-uec-ramdisk',
|
|
u'protected': False,
|
|
u'schema': u'/v2/schemas/image',
|
|
u'size': 3714968,
|
|
u'status': u'active',
|
|
u'tags': [],
|
|
u'updated_at': u'2013-10-20T14:28:10Z',
|
|
u'visibility': u'public'},
|
|
{u'checksum': u'c352f4e7121c6eae958bc1570324f17e',
|
|
u'container_format': u'aki',
|
|
u'created_at': u'2013-10-20T14:28:08Z',
|
|
u'disk_format': u'aki',
|
|
u'file': u'/v2/images/c002c82e-2cfa-4952-8461-2095b69c18a6/file',
|
|
u'id': u'c002c82e-2cfa-4952-8461-2095b69c18a6',
|
|
u'min_disk': 0,
|
|
u'min_ram': 0,
|
|
u'name': u'cirros-0.3.2-x86_64-uec-kernel',
|
|
u'protected': False,
|
|
u'schema': u'/v2/schemas/image',
|
|
u'size': 4955792,
|
|
u'status': u'active',
|
|
u'tags': [],
|
|
u'updated_at': u'2013-10-20T14:28:09Z',
|
|
u'visibility': u'public'}]
|
|
|
|
.. _get-image-id:
|
|
|
|
Get image by ID
|
|
~~~~~~~~~~~~~~~
|
|
|
|
To retrieve an image object from its ID, call the
|
|
``glanceclient.v2.images.Controller.get`` method:
|
|
|
|
.. code-block:: python
|
|
|
|
import glanceclient.v2.client as glclient
|
|
image_id = 'c002c82e-2cfa-4952-8461-2095b69c18a6'
|
|
glance = glclient.Client(...)
|
|
image = glance.images.get(image_id)
|
|
|
|
.. _get-image-name:
|
|
|
|
Get image by name
|
|
~~~~~~~~~~~~~~~~~
|
|
|
|
The Image Service Python bindings do not support the retrieval of an
|
|
image object by name. However, the Compute Python bindings enable you to
|
|
get an image object by name. To get an image object by name, call the
|
|
``novaclient.v1\_1.images.ImageManager.find`` method:
|
|
|
|
.. code-block:: python
|
|
|
|
import novaclient.v1_1.client as nvclient
|
|
name = "cirros"
|
|
nova = nvclient.Client(...)
|
|
image = nova.images.find(name=name)
|
|
|
|
.. _upload-image:
|
|
|
|
Upload an image
|
|
~~~~~~~~~~~~~~~
|
|
|
|
To upload an image, call the ``glanceclient.v2.images.ImageManager.create``
|
|
method:
|
|
|
|
.. code-block:: python
|
|
:linenos:
|
|
|
|
import glanceclient.v2.client as glclient
|
|
imagefile = "/tmp/myimage.img"
|
|
glance = glclient.Client(...)
|
|
with open(imagefile) as fimage:
|
|
glance.images.create(name="myimage", is_public=False, disk_format="qcow2",
|
|
container_format="bare", data=fimage)
|