RETIRED, further work has moved to Debian project infrastructure
Go to file
Paul Bourke 95e00c9247 Fix cache not handling backend failures
1) caching_iter doesn't handle backend exceptions:

caching_iter assumes any exception that occurs is the result of being
unable to cache.  Hence the IOError raised from size_checked_iter, which
indicates a problem with the backend, means the caching_iter will
continuing trying to serve non-existent data.  The exception was not
been re-raised in this case, making wsgi keep the connection open and
clients stuck forever waiting for more data.

Raising a GlanceException in size_checked_iter rather than an IOError
allows caching_iter to distinguish between a problem fetching data, and
a problem writing to the cache.

2) Checksum verification happens after cache commit rather than before:

This block was outside the context manager block which meant the
GlanceException was not caught by open_for_write and the rollback didn't
happen.  This resulted in an error been logged, but the bad image still
placed in and subsequently served from the cache.

Also:

* Fix test_gate_caching_iter_bad_checksum - the loop to consume the
  iterator in was in a subroutine that never got called.

* Move test_gate_caching_iter_(good|bad)_checksum into
  ImageCacheTestCase to excercise both the sql and xattr drivers.

* Remove invalid registry_host/registry_port params from
  TestImageCacheXattr/TestImageCacheSqlite setup which caused a failure
  when testing the file on it's own using nosetests.

Fixes bug 1045792

Change-Id: I8aedec347e7f50566c44c5b6c6db424573c5ebaf
2012-09-04 13:39:39 +01:00
bin Fix auth cred opts for glance-cache-manage 2012-08-17 11:23:51 -04:00
doc/source Merge "Document how to deploy cachemanage middleware" 2012-09-03 21:23:15 +00:00
etc Clean up comments in paste files 2012-09-03 12:51:56 -07:00
glance Fix cache not handling backend failures 2012-09-04 13:39:39 +01:00
tools Add nosehtmloutput as a test dependency. 2012-08-22 17:24:05 -07:00
.coveragerc Fix coverage jobs. Also, clean up the tox.ini. 2012-06-04 15:29:26 -04:00
.gitignore Move to tag-based versioning. 2012-08-12 16:10:03 +00:00
.gitreview Add .gitreview config file for gerrit. 2011-10-24 11:02:16 -04:00
.mailmap Updated RST docs on containers, fewer references to OVF format. 2012-04-02 12:03:16 -04:00
babel.cfg Added first step of babel-based translations. 2012-02-28 02:00:37 -08:00
HACKING.rst Standardize logger instantiation 2012-06-25 08:27:08 -07:00
LICENSE Add a LICENSE file. 2012-01-03 10:14:01 -05:00
MANIFEST.in Add glance/versioninfo to MANIFEST.in. 2012-08-23 08:56:05 -07:00
openstack-common.conf Move to tag-based versioning. 2012-08-12 16:10:03 +00:00
pylintrc Packaging fixups 2010-10-21 15:51:44 -04:00
README.rst Few small cleanups to align with Nova 2012-01-25 11:14:51 -05:00
run_tests.sh Updates run_tests.sh to exclude openstack-common. 2012-07-13 14:10:56 -04:00
setup.cfg Fix coverage jobs. Also, clean up the tox.ini. 2012-06-04 15:29:26 -04:00
setup.py Move to tag-based versioning. 2012-08-12 16:10:03 +00:00
tox.ini Ignore openstack-common in pep8 check 2012-07-09 14:39:29 -07:00

Glance

Glance is a project that defines services for discovering, registering, retrieving and storing virtual machine images. The discovery and registration responsibilities are handled by the glance-registry component while the retrieval and storage responsiblities are handled by the glance-api component.

Quick Start

If you'd like to run trunk, you can clone the git repo:

git clone git@github.com:openstack/glance.git

Install Glance by running:

python setup.py build
sudo python setup.py install

By default, glance-registry will use a SQLite database. If you'd like to use MySQL, or make other adjustments, you can modify the glance.cnf file (see documentation for more details).

Now that Glance is installed, you can start the service. The easiest way to do that is by using the glance-control utility which runs both the glance-api and glance-registry services:

glance-control all start

Once both services are running, you can now use the glance tool to register new images in Glance.

glance add name="My Image" < /path/to/my/image

With an image registered, you can now configure your IAAS provider to use Glance as its image service and begin spinning up instances from your newly registered images.