2011-01-14  jaypipes@gmail.com

	Implements the S3 store to the level of the swift store.
	
	This branch is Chris' work with a merge of trunk, fix of merge conflicts from trunk, and moving the import of boto into a conditional block so tests can run with the fakes when boto is not installed on the local machine.

2011-01-14  jaypipes@gmail.com

	Merge trunk, resolve conflicts, and move import of boto into conditional block to prevent import errors when running tests and not having boto installed.

2011-01-12  Christopher MacGown  <chris@slicehost.com>

	Fixes suggested by JayPipes review. Did not modify docstrings in non-related files.

2011-01-05  Christopher MacGown  <chris@slicehost.com>

	Merge in upstream to avoid merge conflict.

2011-01-05  Christopher MacGown  <chris@slicehost.com>

	Fixed pylint/pep8 for glance.store.s3

2011-01-05  Christopher MacGown  <chris@slicehost.com>

	Implement S3 to the level of swift

2011-01-13  jaypipes@gmail.com

	fixes bug698318.
	
	Work done by Ewan Mellor; I just fixed a conflict after merging trunk...

2011-01-13  jaypipes@gmail.com

	Merge trunk and resolve conflict in server.py

2011-01-06  Ewan Mellor  <ewan.mellor@citrix.com>

	Bug #698316: Glance reads the whole image into memory when handling a POST
	/images request
	
	Change the store API so that add takes a file-like object, not a string.
	This avoids loading the whole request body into memory before writing it out,
	and allows us to stream it instead.

2011-01-12  Rick Harris  <rick.harris@rackspace.com>

	This merge is in conjunction with lp:~rconradharris/nova/xs-snap-return-image-id-before-snapshot
	
	The patch does the following:
	
	* Image Create (POST) is broken up into 3 steps (reserve, upload and activate); reserve is used to allow the OpenStack API to return metadata about an image where the data has not been uploaded yet
	* Image Update (PUT) now takes image data as the request body and metadata as headers (just like POST); state is enforced so that image data can only be uploaded once.
	* Image statuses were changed to match the OpenStack API (queued, saving, active, killed); NOTE: preparing is not used
	* update_image and add_image client calls now return metadata instead of just the id

2011-01-11  Rick Harris  <rick.harris@rackspace.com>

	Updating docs

2011-01-11  Rick Harris  <rick.harris@rackspace.com>

	Merging trunk

2011-01-07  Rick Harris  <rick.harris@rackspace.com>

	PEP-8 Fixes

2011-01-06  Rick Harris  <rick.harris@rackspace.com>

	Fixing eventlet-raise issue

2011-01-05  Rick Harris  <rick.harris@rackspace.com>

	Merging trunk

2011-01-04  Rick Harris  <rick.harris@rackspace.com>

	removing old methods

2011-01-04  Rick Harris  <rick.harris@rackspace.com>

	refactoring so update can take image_data

2011-01-10  Cory Wright  <cory.wright@rackspace.com>

	Clean up the rest of Glance's PEP8 problems.

2011-01-04  Cory Wright  <cory.wright@rackspace.com>

	More PEP8 fixes

2011-01-04  Ewan Mellor  <ewan.mellor@citrix.com>

	Fix all Glance's pep8 problems.

2011-01-02  Ewan Mellor  <ewan.mellor@citrix.com>

	Bug #696385: Glance is not pep8-clean
	
	Fix all Glance's pep8 problems.

2011-01-04  Ewan Mellor  <ewan.mellor@citrix.com>

	Remove incorrect doccomments about there being a default for the host
	parameter, fix misdocumented default port, and remove handling of missing
	parameters in BaseClient, because the values are always specified by the
	subclass's __init__.

2011-01-02  Ewan Mellor  <ewan.mellor@citrix.com>

	Bug #696382: Glance client parameter defaults misdocumented
	
	Remove incorrect doccomments about there being a default for the host
	parameter, fix misdocumented default port, and remove handling of missing
	parameters in BaseClient, because the values are always specified by the
	subclass's __init__.

2010-12-28  jaypipes@gmail.com

	Fixes a number of things that came up during initial
	coding of the admin tool:
	
	* Fix client constructor to behave like httplib.HTTPConnection
	instead of accepting a URL, it now accepts host, port, and
	use_ssl boolean switch that turns on HTTPSConnection
	* Adds headers properly to the request in client.do_request().
	Previously, was erroneously calling httplib.HTTPConnection.putheader
	after calling httplib.HTTPConnection.request, which was incorrect
	* Now returns type and size of images in index
	* Webob.Response and httplib.HTTPResponse have slightly different
	ways of accessing headers. Fixed an attribute error that was coming
	up because the tests assume webob.

2010-12-27  jaypipes@gmail.com

	Made review changes from Rick.

2010-12-26  jaypipes@gmail.com

	Duh, use_ssl should not use HTTPConnection...

2010-12-26  jaypipes@gmail.com

	Remove final debugging statement

2010-12-25  jaypipes@gmail.com

	merge trunk

2010-12-25  jaypipes@gmail.com

	Remove debugging statements

2010-12-25  jaypipes@gmail.com

	Fixes a number of things that came up during initial
	coding of the admin tool:
	
	* Fix client constructor to behave like httplib.HTTPConnection
	instead of accepting a URL, it now accepts host, port, and
	use_ssl boolean switch that turns on HTTPSConnection
	* Adds headers properly to the request in client.do_request().
	Previously, was erroneously calling httplib.HTTPConnection.putheader
	after calling httplib.HTTPConnection.request, which was incorrect
	* Now returns type and size of images in index
	* Webob.Response and httplib.HTTPResponse have slightly different
	ways of accessing headers.  Fixed an attribute error that was coming
	up because the tests assume webob.

2010-12-26  Ewan Mellor  <ewan.mellor@citrix.com>

	fix bug 694382

2010-12-26  Ewan Mellor  <ewan.mellor@citrix.com>

	Bug #694382: setup.py refers to parallax-server and teller-server, when these have been renamed
	
	Fix script references, following earlier rename.

2010-12-23  jaypipes@gmail.com

	documentation cleanup and matching to other OpenStack projects.  Glance is no longer the red-headed documentation stepchild in OpenStack...

2010-12-23  jaypipes@gmail.com

	review fixes

2010-12-22  jaypipes@gmail.com

	Update sphinx conf to match other OpenStack projects

2010-12-22  jaypipes@gmail.com

	Documentation cleanup. Splits out index.rst into multiple section docs.

2010-12-23  Rick Harris  <rick.harris@rackspace.com>

	Converts timestamp attributes to datetime objects before persisting.
	
	Refactors image_update and image_create to use the same basic code.

2010-12-23  Rick Harris  <rick.harris@rackspace.com>

	Adding __protected_attributes__, some PEP8 cleanups

2010-12-22  Rick Harris  <rick.harris@rackspace.com>

	Converting to datetime before saving image

2010-12-21  jaypipes@gmail.com

	Enhances POST /images call to, you know, actually make it work...
	
	Contains Rick's additions as well.

2010-12-21  jaypipes@gmail.com

	Merge Rick's additions branch and make tiny fixups

2010-12-20  Rick Harris  <rick.harris@rackspace.com>

	Make directory for filesystem backend

2010-12-20  jaypipes@gmail.com

	Adds POST /images work that saves image data to a store backend

2010-12-20  jaypipes@gmail.com

	Update docs for adding image...

2010-12-20  jaypipes@gmail.com

	Fix Chris minor nit on docstring

2010-12-20  jaypipes@gmail.com

	doing the merge of this again...somehow the trunk branch never got rev26 :(

2010-12-18  jaypipes@gmail.com

	Fixes binaries, updates WSGI file to more recent version from Nova, and fixes an issue in SQLAlchemy API that was being hidden by stubs and only showed up when starting up the actual binaries and testing...

2010-12-17  jaypipes@gmail.com

	Major refactoring...

2010-12-16  jaypipes@gmail.com

	Fix testing/debug left in

2010-12-16  jaypipes@gmail.com

	Fixes from review

2010-12-14  jaypipes@gmail.com

	Documentation updates and GlanceClient -> Client

2010-12-14  jaypipes@gmail.com

	Refactor a bunch of stuff around the image files collection
	
	* Removes ImageFile table
	* Places restriction on clients and server requests to ensure
	that the image metadata location is set, or the body of the request
	is image data
	* Refactors the FilesystemBackend to be a bit more robust and throw
	NotFound properly and return a real object instead _file_iter.
	* Move some repetitive code around injecting and building x-image-meta
	HTTP headers into /glance/util.py

2010-12-14  jaypipes@gmail.com

	Cleanup around x-image-meta and x-image-meta-property HTTP headers in GET/HEAD

2010-12-14  jaypipes@gmail.com

	Update /glance/client.py to have GlanceClient do all operations
	that RegistryClient does.
	
	Update glance.server.Controller.create() to return image metadata
	in x-image-meta- headers instead of the response body.
	
	Move RegistryClient to /glance/registry/client.py
	
	Next steps:
	
	* Change GlanceClient.add_image() calls to insert metadata
	into HTTP headers and optionally send image data in the
	request body.

2010-12-13  jaypipes@gmail.com

	Merges Glance API with the registry API:
	* Makes HEAD /images/<ID> return metadata in headers
	* Make GET /images/<ID> return image data with metadata
	in headers
	Updates docs some (more needed)
	
	Next steps:
	
	* Update main GlanceClient class to encapsulate entire Glance API
	and hide RegistryClient from normal usage
	* Refactor registry database API and schema

2010-12-13  jaypipes@gmail.com

	Second step in simplifying the Glance API.
	
	* Removes the notion of Parallax
	* Renames parallax stuff to just "registry"
	
	Next steps:
	
	* Refactor the registry database API to not be so abstract
	and remove the Nova DB super-abstraction layer. Add more
	attributes to the registry database tables, including
	image size_in_bytes
	* Merge Glance API with the registry API:
	** Make HEAD /images/<ID> return metadata in headers
	** Make GET /images/<ID> return image data with metadata
	in headers
	* Update client classes to hide registry client fully within
	/glance/registry/
	* Update docs and tests

2010-12-13  jaypipes@gmail.com

	This is the first part of simplifying the Glance API and
	consolidating the Teller and Parallax APIs into a single,
	unified Glance API.
	
	The following changes were made:
	* Change the bin/teller-server to bin/glance-api
	* Remove the notion of Teller as something the user
	has to be aware of. Call the previous "Teller backends"
	simple "stores".
	* Moves /glance/teller/controllers.py to /glance/server.py
	* Break out the filesystem store into a separate file
	
	Next steps:
	* Hide Parallax behind a unified API
	* Update docs and wiki
	* Refactor image registry database to include more
	information about images
	* Refactor notion of an image identifier to be a Glance URI

2010-12-11  jaypipes@gmail.com

	Adds DELETE call to Teller API

2010-12-08  jaypipes@gmail.com

	Don't leak implementation details in Swift backend. Return None on successful delete_object call

2010-12-06  jaypipes@gmail.com

	Adds call to Swift's DELETE

2010-12-06  jaypipes@gmail.com

	Typo fixed and tiny cleanups

2010-12-06  jaypipes@gmail.com

	Adds DELETE to Teller's API.

2010-12-06  jaypipes@gmail.com

	Merge trunk

2010-12-09  Rick Harris  <rick.harris@rackspace.com>

	Fixes Swift URL Parsing in Python 2.6.5 by adding back netloc.

2010-12-08  Rick Harris  <rick.harris@rackspace.com>

	Fix Swift URL parsing for Python 2.6.5

2010-12-09  Rick Harris  <rick.harris@rackspace.com>

	Moving imports into main which will only be executed after we daemonize thus avoiding the premature initialization of epoll.

2010-12-08  Rick Harris  <rick.harris@rackspace.com>

	Delaying eventlet import until after daemonization

2010-12-05  Rick Harris  <rick.harris@rackspace.com>

	Just some small cleanups, fixing:
	* Swapped port numbers (Parallax Port <=> Teller port)
	* Removing extraneous routes in Teller API
	* Adding required slashes to do_request
	
	Ran unit-tests and they passed.
	
	Tested functionally using curl and tests/test_data.py, everything worked.

2010-12-02  Rick Harris  <rick.harris@rackspace.com>

	Fixing swapped port numbers, removing extraneous routes in Teller controller, adding required slash for do_request calls

2010-12-05  jaypipes@gmail.com

	* Changes Teller API to use REST with opaque ID sent in
	API calls instead of a "parallax URI". This hides the
	URI stuff behind the API layer in communication between
	Parallax and Teller.
	* Adds unit tests for the only complete Teller API call so
	far: GET images/<ID>, which returns a gzip'd string of
	image data
	
	I want to get feedback on these new unit tests and the
	changes to the Teller API to remove the parallax URI from
	the API calls.

2010-12-01  jaypipes@gmail.com

	* Changes Teller API to use REST with opaque ID sent in
	API calls instead of a "parallax URI".  This hides the
	URI stuff behind the API layer in communication between
	Parallax and Teller.
	* Adds unit tests for the only complete Teller API call so
	far: GET images/<ID>, which returns a gzip'd string of
	image data
	
	I want to get feedback on these new unit tests and the
	changes to the Teller API to remove the parallax URI from
	the API calls.

2010-11-29  jaypipes@gmail.com

	Add files attribute to Parallax client tests

2010-11-24  jaypipes@gmail.com

	Adds client classes for Parallax and Teller and fixes some issues where our controller was not returning proper HTTP response codes on errors...

2010-11-23  jaypipes@gmail.com

	Cleanup/fixes for Rick review

2010-11-22  jaypipes@gmail.com

	Adds client classes ParallaxClient and (stubbed) TellerClient
	to new glance.client module.
	
	Updates test cases for Parallax API to properly raise HTTP
	exceptions (which the client classes convert to Nova/Glance
	exception classes)

2010-10-21  jaypipes@gmail.com

	packaging fixups preparing for release candidate

2010-10-21  jaypipes@gmail.com

	Remove symlinks in bin/

2010-10-21  jaypipes@gmail.com

	Packaging fixups

2010-10-18  jaypipes@gmail.com

	awesomeness. merging into trunk since my parallax-api is already in trunk I believe. :)

2010-10-17  Rick Harris  <rick.harris@rackspace.com>

	Moving ATTR helpers into db module

2010-10-17  Rick Harris  <rick.harris@rackspace.com>

	PUTing and POSTing using image key

2010-10-15  jaypipes@gmail.com

	Quick fix...gives base Model an update() method to make it behave like a dict.

2010-10-15  jaypipes@gmail.com

	Merge trunk:

2010-10-15  jaypipes@gmail.com

	Make returned mapping have an 'image' key to help in XML serialization

2010-10-15  jaypipes@gmail.com

	Ignore virtualenv directory in bzr

2010-10-14  jaypipes@gmail.com

	Adds DELETE to the Parallax REST API.

2010-10-14  jaypipes@gmail.com

	Implements the REST call for updating image metadata in the Parallax API

2010-10-15  Rick Harris  <rick.harris@rackspace.com>

	This patch removes unique index on the 'key' column of image_metadatum and replaces it with a compound UniqueConstraint on 'image_id' and 'key'. The 'key' column remains indexed.
	
	Adds tests to ensure that two different images can use the same key, while preventing a single image from having two keys with the same name.

2010-10-15  Rick Harris  <rick.harris@rackspace.com>

	Adds compound unique constraint to ImageMetadatum

2010-10-15  Rick Harris  <rick.harris@rackspace.com>

	Fixes lp653358
	
	Using swift.common.client rather than python-cloudfiles for Teller's Swift backend.

2010-10-15  Rick Harris  <rick.harris@rackspace.com>

	Renaming is_cloudfiles_available -> is_swift_available

2010-10-14  Rick Harris  <rick.harris@rackspace.com>

	Using swift.common.client rather than python-cloudfiles in Teller's Swift backend

2010-10-13  jaypipes@gmail.com

	Implements Parallax API call to register a new image
	
	* Adds unit test for Parallax API controller
	* Adds stubouts for glance.parallax.db.sqlalchemy.api calls
	regarding images
	* Adds unittest for bad status on image creation
	* Adds --logging-clear-handlers arg to nosetests in run_tests.sh to
	prevent extra output in running tests when tests complete successfully

2010-10-13  jaypipes@gmail.com

	Adds a /images/detail route to the Parallax controller, adds a unit test for it, and cleans up Michael's suggestions.

2010-10-12  jaypipes@gmail.com

	Adds tests for bad status set on image

2010-10-12  jaypipes@gmail.com

	Implements Parallax API call to register a new image
	
	* Adds unit test for Parallax API controller
	* Adds stubouts for glance.parallax.db.sqlalchemy.api calls
	regarding images
	* Adds --logging-clear-handlers arg to nosetests in run_tests.sh to
	prevent extra output in running tests when tests complete successfully

2010-10-12  Rick Harris  <rick.harris@rackspace.com>

	Works around non-RFC compliance in Python (< 2.6.5) urlparse library.

2010-10-12  Rick Harris  <rick.harris@rackspace.com>

	Workaround for bug in Python 2.6.1 urlparse library

2010-10-11  jaypipes@gmail.com

	This patch overhauls the testing in Glance:
	
	* Adds Nova-like run_tests.sh and tools/* files to automatically run unit tests in a virtual environment.  Just do ./run_tests.sh -V from project root.  All required dependencies will be installed into a new virtual environment at .glance-venv.
	* Adds proper mocking and stubouts using pymox.  This removes the need for all the FakeParallaxAdapter and similar code.  Unit tests now call stubs.stub_out_parallax(), etc instead of having swiftfakehttp.py and similar code.

2010-10-11  jaypipes@gmail.com

	unittest2 -> unittest. For now, since not using unittest2 features yet.

2010-10-11  jaypipes@gmail.com

	Fixes up test_teller_api.py to use stubout correctly. Fixes a few bugs that showed up in the process, and remove the now-unnecessary FakeParallaxAdapter.

2010-10-08  jaypipes@gmail.com

	First round of cleaning up the unittests. Adds test suite runner, support for virtualenv setup and library dependencies, resolves issues with ImportErrors on cloudfiles, adds pymox/stubout support and splits the backend testing into distinct unittest cases.

2010-10-05  Rick Harris  <rick.harris@rackspace.com>

	With this patch Parallax and teller now work end-to-end with the Swift backend.
	
	bash-3.2$ curl localhost:9292/image?uri=http://localhost:9191/images/2 > testimg.tar.gz
	% Total % Received % Xferd Average Speed Time Time Time Current
	Dload Upload Total Spent Left Speed
	100 189M 0 189M 0 0 203k 0 --:--:-- 0:15:52 --:--:-- 214k
	
	bash-3.2$ md5 testimg.tar.gz
	MD5 (testimg.tar.gz) = ef6c5db4f55b0030828b71dd253a2384

2010-10-04  Rick Harris  <rick.harris@rackspace.com>

	Adding missing backend files, fixing typos in comments

2010-10-01  Rick Harris  <rick.harris@rackspace.com>

	Improving symmetry between teller and parallax

2010-10-01  Rick Harris  <rick.harris@rackspace.com>

	Fixing swift authurl

2010-10-04  Rick Harris  <rick.harris@rackspace.com>

	This patch: 
	* Decouples Controller for ParallaxAdapter implementation by adding generic RegistryAdapter and providing a lookup function
	* Adds base model attributes to Parallax's JSON (created_at, etc)

2010-10-01  Rick Harris  <rick.harris@rackspace.com>

	Add RegistryAdapter, include ModelBase attributes

2010-10-01  Rick Harris  <rick.harris@rackspace.com>

	Fixing Teller image tests

2010-10-01  Rick Harris  <rick.harris@rackspace.com>

	Created teller-server.py in bin/

2010-10-01  Rick Harris  <rick.harris@rackspace.com>

	Merge trunk

2010-10-01  Rick Harris  <rick.harris@rackspace.com>

	Cleaning up Teller backend

2010-10-01  Rick Harris  <rick.harris@rackspace.com>

	Adding Image index call, nesting the Image show dict to facilitate XML serialization

2010-10-01  Rick Harris  <rick.harris@rackspace.com>

	Moving parallax models out of common and into the parallax module

2010-10-01  Christopher MacGown  <chris@slicehost.com>

	Rewrote ImageController to inherit from the work Rick Harris did in glance.common. Moved it into teller/api/images.py to make teller match parallax. Fixed tests. Renamed them to distinguish if any parallax tests ever get written.

2010-09-30  Christopher MacGown  <chris@slicehost.com>

	Updated tests

2010-09-30  Christopher MacGown  <chris@slicehost.com>

	Reimplements server.py as a wsgi api inheriting from glance.common

2010-09-30  Rick Harris  <rick.harris@rackspace.com>

	This patch:
	* pulls in a number of useful libraries from Nova under the common/ path (we can factor those out to a shared library in Bexar-release)
	* Defines the models in common.db.sqlalchemy.models.py (this should be factored out into the parallax package soon)
	* Adds the parallax api-server under /bin (if PyPI was used to pull python-daemon and python-lockfile, you may need to apply a patch I have against it)

2010-09-29  Rick Harris  <rick.harris@rackspace.com>

	ImageChunk -> ImageFile, merging APIRouter into API for now

2010-09-29  Rick Harris  <rick.harris@rackspace.com>

	Adding Apache header to test_data.py

2010-09-29  Rick Harris  <rick.harris@rackspace.com>

	Merge trunk

2010-09-29  Rick Harris  <rick.harris@rackspace.com>

	Small cleanups

2010-09-29  Rick Harris  <rick.harris@rackspace.com>

	Reconciling parallax modifications with modulization of glance

2010-09-28  Rick Harris  <rick.harris@rackspace.com>

	Adding Images controller

2010-09-28  Rick Harris  <rick.harris@rackspace.com>

	Adding API directory and server.py

2010-09-28  Rick Harris  <rick.harris@rackspace.com>

	Adding files from Nova

2010-09-30  Christopher MacGown  <chris@slicehost.com>

	Changes the obj['uri'] to obj['location'] to better sync with the representation within Nova. Adds the image_lookup_fn = ParallaxAdapter.lookup to teller.server

2010-09-29  Christopher MacGown  <chris@slicehost.com>

	Parallax will return obj['location'] instead of obj['uri'], also maybe a parallax lookup fn would be nice?

2010-09-29  Christopher MacGown  <chris@slicehost.com>

	Implements a Parallax adapter for looking up images requested from nova. Adds a size check to SwiftBackend to ensure that the chunks haven't been truncated or anything.

2010-09-28  Christopher MacGown  <chris@slicehost.com>

	Modulify the imports

2010-09-28  Christopher MacGown  <chris@slicehost.com>

	Merge with trunk

2010-09-28  Christopher MacGown  <chris@slicehost.com>

	Implements Parallax adapter for lookups from Teller, also adds size expectations to the backend adapters.

2010-09-28  jaypipes@gmail.com

	Makes glance a module, containing teller and parallax sub-modules.
	
	Makes tests and tests.unit packages so nosetests will find the unit tests.

2010-09-27  jaypipes@gmail.com

	libify glance into teller and parallax modules. Make nosetests work by making tests and tests/unit/ into packages.

2010-09-27  Monty Taylor  <mordred@inaugust.com>

	Rearranged the code a little. Added a setup.py. Added sphinx doc skeleton.

2010-09-26  Monty Taylor  <mordred@inaugust.com>

	Added setup.py and sphinx docs.

2010-09-26  Monty Taylor  <mordred@inaugust.com>

	Reorg to make Monty's build pedanticness side happier.

2010-09-24  jaypipes@gmail.com

	Merge Chris' swift work.

2010-09-24  jaypipes@gmail.com

	Implements Swift backend for teller

2010-09-24  jaypipes@gmail.com

	ignore all .pyc files

2010-09-22  Rick Clark  <rclark@chat-blanc>

	Merging ricks changes

2010-08-25  Rick Harris  <rick.harris@rackspace.com>

	Adding basic image controller and mock backends

2010-08-23  Cory Wright  <cory.wright@rackspace.com>

	Adding description of registry data structure

2010-08-11  Cory Wright  <cory.wright@rackspace.com>

	Adding teller_server

2010-08-11  Cory Wright  <cory.wright@rackspace.com>

	adding filesystem and http backends

2010-08-05  Rick Harris  <rick@quasar.racklabs.com>

	Initial check-in

