Pull Glance's store package out of glance

Registered by Flavio Percoco

The code in the glance.store package is a self-standing library being used to store images into different store backends. The library has support for several technologies and it has been stable for a while. Therefore, this blueprint proposes to pull this package out into its own library and allow other projects - like Nova - to use it for accessing images directly or other purposes.

M-L Thread: http://lists.openstack.org/pipermail/openstack-dev/2013-December/022872.html

Blueprint information

Flavio Percoco
Flavio Percoco
Series goal:
Accepted for juno
Milestone target:
milestone icon 2014.2
Started by
Flavio Percoco
Completed by
Mark Washenberger

Related branches



I would like to save an opportunity to review this a bit more in the mini summit. -markwash

I started to play with this here: https://github.com/FlaPer87/glance.store
-- flaper87

Gerrit topic: https://review.openstack.org/#q,topic:bp/create-store-package,n,z

Addressed by: https://review.openstack.org/70147
    Move scrubber outside the store package

Would it make sense to mark this other blueprint [1] as a dependency of this one? or does create-store-package supercede it?
[1] https://blueprints.launchpad.net/glance/+spec/framework-for-contributed-storage-systems

I'd like to defer this to Juno. I still really think we need it but I would like to have a bit more of a plan for the next steps, and I'd like to ensure that the artifacts api stuff that is being planned isn't going to immediately require rewriting the store interfaces. For next steps, you've listed several in your design doc, but I'm also really interested in how we define the testing strategy for stores.
Ack, I'm also a bit worried that the store interface needs to change a little in order to accomodate some security and direct access concerns we had at the mini summit.

FWIW, I'm already cleaning out the store interface a bit. I'm trying to reduce the changes to the API in order to keep backwards compatibility but some things have changed. I've been also working on improving the test suite. The improvements go around isolating tests, dropping dependencies on global states and developing a subset of *required* tests that need to pass to consider a store as *full featured*.

I'm ok with moving this to June. TBH, I'd have preferred making Glance and *just* glance use this code now. That'd have helped with testing the library, making progressive changes to the library and a more granular migration.

As mentioned in previous meetings, I wasn't worried about the security implications just yet because the plan was to first make Glance consume the library and then make it consumable by client libraries.
-- flaper87

Addressed by: https://review.openstack.org/96461
    Move `location`'s domain code out of glance.store

Gerrit topic: https://review.openstack.org/#q,topic:glance.store,n,z

Gerrit topic: https://review.openstack.org/#q,topic:bp/restartable-image-download,n,z

Addressed by: https://review.openstack.org/113566
    Move tests out of glance's package

Addressed by: https://review.openstack.org/100636
    Adopt glance.store library in Glance


Work Items

This blueprint contains Public information 
Everyone can see this information.