95e00c9247
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 |
||
---|---|---|
bin | ||
doc/source | ||
etc | ||
glance | ||
tools | ||
.coveragerc | ||
.gitignore | ||
.gitreview | ||
.mailmap | ||
babel.cfg | ||
HACKING.rst | ||
LICENSE | ||
MANIFEST.in | ||
openstack-common.conf | ||
pylintrc | ||
README.rst | ||
run_tests.sh | ||
setup.cfg | ||
setup.py | ||
tox.ini |
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.