Expose image location to trusted clients

Registered by Brian Waldon

Create a config option (show_image_direct_url=True/False) that represents whether or not the API should communicate an image's backend location (direct_url) back to HTTP clients.

Blueprint information

Status:
Complete
Approver:
Brian Waldon
Priority:
Essential
Drafter:
Brian Waldon
Direction:
Approved
Assignee:
Nikhil Komawar
Definition:
Approved
Series goal:
Accepted for folsom
Implementation:
Implemented
Milestone target:
milestone icon 2012.2
Started by
Brian Waldon
Completed by
Brian Waldon

Related branches

Sprints

Whiteboard

I've prototyped a variant of this on top of the Essex glance codebase and would like to rebase and contribut it.

The design is the following:

 - glance.store.ImageAddResult gets a new member which is the direct-url, example for that are:

   "rbd://pool/volume" or similar

  backends that don't easily support direct access will not set this member. The upload code stores this additional member in the schema, next to the actual location.

GETs on http://glance.example.com/images/ and http://glance.example.com/images/IMAGEID will return the direct-url or x-meta-direct-url parameters for images that support this kind of access.

My planned used case for this is to allow the nova libvirt driver to use directly access these images as use of copy on write backing files, and thus avoid downloading data to the compute nodes.

Gerrit topic: https://review.openstack.org/#q,topic:bp/api-v2-store-access,n,z

Addressed by: https://review.openstack.org/11040
    Allows Exposing image location based on config

Gerrit topic: https://review.openstack.org/#q,topic:bp/efficient-volumes-from-images,n,z

Addressed by: https://review.openstack.org/11140
    Update rbd store to allow copy-on-write clones

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.