List images

Overview

Lists virtual machine (VM) images.

Classification

  • List

API Operation Object

  • images

Synchronous / Asynchronous

  • synchronous

Request

HTTP Request Method

  • GET

HTTP Request Path

{api_endpoint}/v2/images

HTTP Request Header

Format

X-Auth-Token: <token_id>
  • User-Agent, Host, Accept fields are automatically added

HTTP Request Body

Format

  • none

Request Parameter

Request Parameters

name

style

format

description

required/optional

default value

action for invalid parameter

response code for invalid parameter

token_id

Header

authentication token string

keystone authentication token

required

-

Terminate

401

limit

Query

integer

Use to request a specific page size

optional

25

Terminate

400

marker

Query

UUID String

Specifies the ID of the last-seen image

optional

-

Terminate

400

name

Query

String(nolimit)

Name of the image as a string

optional

-

-

-

visibility

Query

String(public, private, shared)

Image visibility

optional

public, private, shared

Terminate

400

member_status

Query

String(accepted, pending, rejected, all)

Only show images with the specified member status

optional

accepted

Terminate

400

owner

Query

String(nolimit)

Shows images shared with me by the specified owner, where the owner is indicated by project ID

optional

-

-

-

status

Query

String(nolimit)

The image status, such as queued, saving, active, killed, deleted, and pending_delete.

optional

-

-

-

size_min

Query

integer

Value of the minimum size of the image in bytes

optional

-

Terminate

400

size_max

Query

integer

Value of the maximum size of the image in bytes

optional

-

Terminate

400

sort_key

Query

All image attributes can be used as the sort_key, except tags and link attributes

Sort key

optional

created_at

Terminate

400

sort_dir

Query

String(desc, asc)

Sort direction

optional

desc

Terminate

400

tag

Query

String(nolimit)

Image tag

optional

-

-

-

Response

HTTP Response Header

Format

HTTP/1.1 <response code> <message>       (ex. 200 OK)
  • <response code>: see "HTTP Responses" section

  • <message> message based on the response code

    • skip auto inserted field such as "X-Openstack-Request-Id", "Content-type", "Content-Length", "Date"

Response Code

Response Codes

response code

condition

200

normal end

400

limit is not integer value or not positive value

-

maker is not a existent image_id

-

visibility is invalid value (valid value : public, private, shared)

-

member_status is invalid value (valid value : accepted, pending, rejected, all)

-

size_min is not a integer value

-

size_max is not a integer value

-

sort_key is not a attribute value of image

-

sort_key is a invalid image attribute value as sort key (when choose container_format, visibility, file, self or schema)

-

sort_dir is a invalid value (valid value : asc, desc)

-

specify "changes-since" query which is no longer available on v2 API

401

unauthorized

403

Not authorized to perform the requested action

500

Internal Error

HTTP Response Body

Format

{

    "images": [
        {
            "status": "<image_status>",
            "name": "<image_name>",
            "tags": ["<tag>", <<repeat>> ],
            "container_format": "<container_format>",
            "created_at": "<created_time>",
            "disk_format": "<disk_format>",
            "locations": [
                {
                    "url": "<location_url>",
                    "metadata": <metadata>
                },
                <<repeat>>
            ],
            "direct_url": "<direct_url>",
            *"<extra_key>": "<extra_value>",
            "updated_at": "<updated_time>",
            "visibility": "<visibility>",
            "self": "<self>",
            "min_disk": <minimum_disk_size>,
            "protected": <protected_flag>,
            "id": "<image_id>",
            "file": "<file>",
            "checksum": "<checksum>",
            "owner": "<owner>",
            "size": <size>,
            "min_ram": <minimum_ram_size>,
            "schema": "<image_schema>"
        },
       <<repeat>>
    ],
    "schema": "<images_schema>",
    "first": "<first>"

}
  • * There are multiple set of <extra_key> and <extra_value> which user added

Response Parameter

Response Parameters

item

format

description

image_status

String (queued, saving, active, killed, deleted, pending_delete)

Status of the image

image_name

String (1-255 characters)

Descriptive name for the image

tag

String (1-255 characters)

String related to the image

container_format

String (bare)

Format of the container

created_time

time/date

Date and time of image registration

disk_format

String (raw, qcow2, iso)

Format of the disk

location_url

URL String

URL to access the image file kept in external store (it is shown when 'show_multiple_locations' option is enabled)

metadata

json array (2^16 - 1 bytes)
<<format is shown below>>
{
"key": "value",
<<repeat>>

}

The location metadata

direct_url

URL String

URL to access the image file kept in external store (it is shown when 'show_image_direct_url' option is enabled)

extra_key

String (1-255 characters)

The key of the extra properties

extra_value

text (2^16 - 1 bytes)

The value of the extra properties

updated_time

time/date

Date and time of the last image modification

visibility

String (public, private)

Scope of image accessibility

self

URL String

URL for the virtual machine image

minimum_disk_size

integer

Amount of disk space (in GB) required to boot image

protected_flag

boolean

If true, image will not be deletable

image_id

UUID

An identifier for the image

file

URL String

URL for the virtual machine image file

checksum

MD5

md5 hash of image contents

owner

UUID(3)

Owner of the image

size

integer

Size of image file in bytes

minimum_ram_size

integer

Amount of ram (in MB) required to boot image

image_schema

URL String

URL for schema of the virtual machine image

images_schema

URL String

URL for schema of the virtual machine images

first

URL string

URL for the first page of response

Sample API Request and Response

Sample API Request

Request URI

https://example.com/v2/images

Request Header

X-Auth-Token: ajk3adjiown02
  • User-Agent, Host, Accept fields are automatically added

Request Body

  • none

Sample API Response

Response Header

HTTP/1.1 200 OK
  • <response code>: see "HTTP Responses" section

  • <message> message based on the response code

    • skip auto inserted field such as "X-Openstack-Request-Id", "Content-type", "Content-Length", "Date"

Response Body

{

    "images": [
        {
            "status": "<image_status>",
            "name": "<image_name>",
            "tags": ["<tag>", <<repeat>> ],
            "container_format": "<container_format>",
            "created_at": "<created_time>",
            "disk_format": "<disk_format>",
            "locations": [
                {
                    "url": "<location_url>",
                    "metadata": <metadata>
                },
                <<repeat>
            ],
            "direct_url": "<direct_url>",
            *"<extra_key>": "<extra_value>",
            "updated_at": "<updated_time>",
            "visibility": "<visibility>",
            "self": "<self>",
            "min_disk": <minimum_disk_size>,
            "protected": <protected_flag>,
            "id": "<image_id>",
            "file": "<file>",
            "checksum": "<checksum>",
            "owner": "<owner>",
            "size": <size>,
            "min_ram": <minimum_ram_size>,
            "schema": "<image_schema>"
        },
       <<repeat>>
    ],
    "schema": "<images_schema>",
    "first": "<first>"

}
  • * There are multiple set of <extra_key> and <extra_value> which user added

Execution Example

HTTP Request

GET /v2/images HTTP/1.1
User-Agent: curl/7.35.0
Host: 192.168.11.141:9292
Accept: */*
X-Auth-Token: 4086d667aa3648fd96a7886cbb6354c1

HTTP Response

HTTP/1.1 200 OK
Content-Length: 3862
Content-Type: application/json; charset=UTF-8
X-Openstack-Request-Id: req-8ceb83e3-0343-4728-8fd6-f351138842ae
Date: Wed, 24 Sep 2014 11:29:12 GMT

{"images": [{"status": "active", "schema": "/v2/schemas/image", "name": "private_admin_admin", "tags": ["tag1", "tag2", "tag3"], "updated_at": "2014-09-24T11:13:10Z", "container_format": "bare", "min_ram": 0, "disk_format": "raw", "locations": [{"url": "file:///home/stack/test", "metadata": {"replace_01": "replace_01_value"}}, {"url": "file:///home/stack/test", "metadata": {"replace_02": "replace_02_value"}}], "visibility": "private", "self": "/v2/images/5521fbf2-0b89-4b7c-91b5-e3afbecd4a35", "extra1": "extra1", "protected": false, "extra3": "extra3", "file": "/v2/images/5521fbf2-0b89-4b7c-91b5-e3afbecd4a35/file", "owner": "014908bf180c4004a6c289d2d95b2285", "min_disk": 0, "created_at": "2014-09-24T11:05:39Z", "direct_url": "file:///home/stack/test", "id": "5521fbf2-0b89-4b7c-91b5-e3afbecd4a35", "size": 25165824}, {"status": "active", "name": "Fedora-x86_64-20-20140618-sda", "tags": [], "container_format": "bare", "created_at": "2014-09-19T10:09:06Z", "size": 209649664, "disk_format": "qcow2", "updated_at": "2014-09-19T10:09:07Z", "visibility": "public", "locations": [{"url": "file:///opt/stack/data/glance/images/4c213754-3989-4632-a619-b78a92603be2", "metadata": {}}], "self": "/v2/images/4c213754-3989-4632-a619-b78a92603be2", "min_disk": 0, "protected": false, "id": "4c213754-3989-4632-a619-b78a92603be2", "file": "/v2/images/4c213754-3989-4632-a619-b78a92603be2/file", "checksum": "9e486c3bf76219a6a37add392e425b36", "owner": "8c673f31843d438ca2562a6f66531482", "direct_url": "file:///opt/stack/data/glance/images/4c213754-3989-4632-a619-b78a92603be2", "min_ram": 0, "schema": "/v2/schemas/image"}, {"status": "active", "schema": "/v2/schemas/image", "name": "cirros-0.3.2-x86_64-uec", "tags": [], "locations": [{"url": "file:///opt/stack/data/glance/images/0d2705c4-56c2-4d61-a16a-b1b36fde26dd", "metadata": {}}], "container_format": "bare", "min_ram": 0, "ramdisk_id": "07c85e37-c7ff-4094-98e3-f3846e524ef0", "disk_format": "iso", "updated_at": "2014-09-19T10:09:06Z", "visibility": "public", "self": "/v2/images/0d2705c4-56c2-4d61-a16a-b1b36fde26dd", "min_disk": 0, "protected": false, "file": "/v2/images/0d2705c4-56c2-4d61-a16a-b1b36fde26dd/file", "checksum": "4eada48c2843d2a262c814ddc92ecf2c", "owner": "8c673f31843d438ca2562a6f66531482", "created_at": "2014-09-19T10:09:05Z", "direct_url": "file:///opt/stack/data/glance/images/0d2705c4-56c2-4d61-a16a-b1b36fde26dd", "id": "0d2705c4-56c2-4d61-a16a-b1b36fde26dd", "size": 25165824}, {"status": "active", "name": "cirros-0.3.2-x86_64-uec-ramdisk", "tags": [], "container_format": "bare", "created_at": "2014-09-19T10:09:05Z", "size": 3723817, "disk_format": "qcow2", "updated_at": "2014-09-19T10:09:05Z", "visibility": "public", "locations": [{"url": "file:///opt/stack/data/glance/images/07c85e37-c7ff-4094-98e3-f3846e524ef0", "metadata": {}}], "self": "/v2/images/07c85e37-c7ff-4094-98e3-f3846e524ef0", "min_disk": 0, "protected": false, "id": "07c85e37-c7ff-4094-98e3-f3846e524ef0", "file": "/v2/images/07c85e37-c7ff-4094-98e3-f3846e524ef0/file", "checksum": "68085af2609d03e51c7662395b5b6e4b", "owner": "8c673f31843d438ca2562a6f66531482", "direct_url": "file:///opt/stack/data/glance/images/07c85e37-c7ff-4094-98e3-f3846e524ef0", "min_ram": 0, "schema": "/v2/schemas/image"}, {"status": "queued", "name": "cirros-0.3.2-x86_64-uec-kernel", "tags": [], "container_format": "bare", "created_at": "2014-09-19T10:09:04Z", "disk_format": "qcow2", "updated_at": "2014-09-19T10:09:04Z", "visibility": "public", "locations": [], "self": "/v2/images/78c84922-a2bc-4694-a546-7a0471b1668e", "min_disk": 0, "protected": false, "id": "78c84922-a2bc-4694-a546-7a0471b1668e", "file": "/v2/images/78c84922-a2bc-4694-a546-7a0471b1668e/file", "owner": "8c673f31843d438ca2562a6f66531482", "size": 4969360, "min_ram": 0, "schema": "/v2/schemas/image"}], "schema": "/v2/schemas/images", "first": "/v2/images"}

Error Execution Example

HTTP Request

GET /v2/images?limit=test HTTP/1.1
User-Agent: curl/7.35.0
Host: 192.168.56.250:9292
Accept: */*
X-Auth-Token: 9e55330892434fc78e86ee09e50a95ee

HTTP Response

HTTP/1.1 400 Bad Request
Content-Length: 156
Content-Type: text/html; charset=UTF-8
X-Openstack-Request-Id: req-7d3c0e38-58e9-4048-b3bf-de6647ecfd4f
Date: Thu, 15 Oct 2015 11:52:42 GMT

400 Bad Request

limit param must be an integer