Obsolete:GlanceAPISpec

= Glance API Specification =

Glance <=> Nova Integration requires these components:


 * Glance - VM Image Management Service
 * Parallax - Image Registry service
 * Teller - Image Delivery service
 * Client Classes
 * `glance.client.GlanceClient` - A client used in Nova to query Glance about images
 * `glance.client.ParallaxClient` - A client tool for querying Parallax about available images
 * `glance.client.TellerClient` - A client tool for the chunked retrieval of an image

Parallax API Commands
This section describes the Parallax REST API for creating, listing, modifying, and deleting image metadata.

Fetch id/name basic information on all public images
GET http://parallax.openstack.org/images

Returns a mapping containing a list of mappings containing details information about the public images encoded in JSON:

{ "images": [ {"id": 1, "name": "My Image 1"}, {"id": 2, "name": "My Image 2"}, ] }

Fetch detailed information on all public images
GET http://parallax.openstack.org/images/detail

Returns a mapping containing a list of mappings containing details information about the public images encoded in JSON:

{ "images": [   {    "id": 1, "name": "My Image", "status": "available", "image_type": "kernel" "is_public": true, "properties": { "mykey": "myvalue" }, "files": [ { "location": "swift://user:passwd@acct/container/obj.tar.gz.0", "size": 101 } ] } ] }

Fetch a single image's metadata
GET http://parallax.openstack.org/images/

Returns the image's metadata encoded in JSON:

{ "image": { "id": 1, "name": "My Image", "status": "available", "image_type": "kernel" "is_public": true, "properties": { "mykey": "myvalue" }, "files": [ { "location": "swift://user:passwd@acct/container/obj.tar.gz.0", "size": 101 } ] } }

Exceptions
404:: Image was not found

Register/create a new image
POST http://parallax.openstack.org/images

The body of the request shall be a JSON encoded mapping of the image's metadata:

{ "image": { "name": "My Image", "status": "available", "image_type": "kernel" "is_public": true, "properties": { "mykey": "myvalue" }, "files": [ { "location": "swift://user:passwd@acct/container/obj.tar.gz.0", "size": 101 } ] } }

The returned response, is successful, will be a JSON encoded mapping of the newly-created image in Parallax, including a populated `id` column with the new image's internal identifier:

{ "image": { "id": 1, "name": "My Image", "status": "available", "image_type": "kernel" "is_public": true, "properties": { "mykey": "myvalue" }, "files": [ { "location": "swift://user:passwd@acct/container/obj.tar.gz.0", "size": 101 } ] } }

Update an existing image's metadata
PUT http://parallax.openstack.org/images/

The body of the request shall be a JSON encoded mapping of the image's metadata:

{ "image": { "id": 2349823, "name": "My Image", "status": "disabled", "image_type": "kernel" "is_public": true, "properties": { "mykey": "myvalue" }, "files": [ { "location": "swift://user:passwd@acct/container/obj.tar.gz.0", "size": 101 } ] } }

The returned response, if successful, will be a JSON encoded mapping of the updated image metadata in Parallax:

{ "image": { "id": 2349823, "name": "My Image", "status": "disabled", "image_type": "kernel" "is_public": true, "metadata": { "mykey": "myvalue" }, "files": [ { "location": "swift://user:passwd@acct/container/obj.tar.gz.0", "size": 101 } ] } }

Exceptions
404:: Image was not found

Delete an existing image from the registry
DELETE http://parallax.openstack.org/images/

The body of the request will be ignored.

Exceptions
404:: Image was not found

Teller API Commands
This section describes the Teller REST API.

Fetch an Image
GET http://teller.openstack.org/images/

Returns the virtual machine image data as response body.

Exceptions
404:: Image was not found

Store an Image
POST http://teller.openstack.org/images/

The body of the POST request shall be a mime-encoded blob of data representing the image to be stored.

Note: All this does is store the raw image data in Teller's backend. If you are responsible for storing the metadata about the image, you should do that with a similar call to Parallax's API.

Immediately returns a mapping of image information indicating status of the image:

{ 'image': {   'id': identifier for image, 'status': 'pending' } }

Update an Image
There is no operation for updating an image. All images are immutable once created.

Delete an Image
DELETE http://teller.openstack.org/images/

Returns 200 OK on success

Returns 404 when image with URI does not exist