This patch addresses the dependency proliferation in
the glance client stuff. It removes references to modules
that contain non-client-necessary libraries (like
eventlet, xattr, sqlalchemy-migrate and sqlalchemy)
by restructuring the modules slightly.
Note that the additional httplib2 dependency is because
that is used in the authentication strategy stuff in
glance.common.auth. This could be rewritten to use httplib
instead, further reducing the dependencies of the client lib.
IMPORTANT NOTE: This patch changes the default entrypoint
for the Images API router application, and therefore this
should be merged along with the packaging changes in this
branch:
https://code.launchpad.net/~jaypipes/glance/ubuntu/+merge/82318
Change-Id: I5dbc8584fb77e3e011fb6ff3532f792f5103e242
Implements blueprint custom-disk-buffer
When pushing an image large enough to be chunked into either a Swift
or S3 backend, the chunks are buffered to /tmp.
This change allows a user to define an alternate directory via the
configuration files.
Change-Id: I2660b6e5a76cbfd43834384b129550b66bb9afce
Since the version negotiation middleware was introduced, versions
pipeline app in the config is unused. Consequently, the versions
app factory is unused too.
Change-Id: I2d50432de215e51c1e52f8d68eaa0820e9b5bd0b
Adds documentation on managing the image cache
Adds a simple CLI program to queue an image for
caching.
Change-Id: I2b4c9708c521fdcfaf1c6b8f07505e130923c4b7
Implements blueprint swift-location-credentials
When the new option is enabled the location metadata
(which may include user credentials) is encrypted
before being sent to the registry server.
Change-Id: I072e3f5c81f187435b1c156627076d5fde087af5
Fixes LP Bug#879136 - keyerror: 'image' when doing nova image-list
Fixes LP Bug#819936 - New image cache breaks Glance on Windows
This patch refactors the image cache further by adding an
adaptable driver layer to the cache. The existing filesystem-based
driver that depended on python-xattr and conditional fstab support
has been moved to /glance/image_cache/drivers/xattr.py, and a new
default driver is now based on SQLite and has no special requirements.
The image cache now contains a simple interface for pruning the
cache. Instead of the logic being contained in
/glance/image_cache/pruner.py, now the prune logic is self-contained
within the ImageCache.prune() method, with pruning calling the
simple well-defined driver methods of get_least_recently_accessed()
and get_cache_size().
Adds a functional test case for the caching middleware and adds
documentation on how to configure the image cache drivers.
TODO: cache-manage middleware...
TODO: cache management docs
Change-Id: Id7ae73549d6bb39222eb7ac0427b0083fd1af3ec
Fixes LP Bug#874580 - keyerror 'location' when fetch errors
Fixes LP Bug#817570 - Make new image cache a true extension
Fixes LP Bug#872372 - Image cache has virtually no unit test coverage
* Adds unit tests for the image cache (coverage goes from 26% to 100%)
* Removes caching logic from the images controller and places it into
a removeable transparent caching middleware
* Adds a functional test case that verifies caching of an image
and subsequent cache hits
* Removes the image_cache_enabled configuration variable, since it's
now enabled by simply including the cache in the application
pipeline
* Adds a singular glance-cache.conf to etc/ that replaces the
multiple glance-pruner.conf, glance-reaper.conf and
glance-prefetcher.conf files
* Adds documentation on enabling and configuring the image cache
TODO: Add documentation on the image cache utilities, like reaper,
prefetcher, etc.
Change-Id: I58845871deee26f81ffabe1750adc472ce5b3797
Addresses bug 871803 by expounding on what configuration should
look like. Also fixes the example config files, which generally
had the authentication setup completely wrong.
Change-Id: I44b2b8bd340ca95b5a2c2e9408797b0308000a65
* Adds SSL configuration params to all client classes
* Adds unit test for bad SSL client configuration
* Refactors the registry methods to no longer need
configuration options passed, and to configure the
registry client once, on images.Controller.__init__
* Adds glance-api.conf options for SSL support in
registry client connections.
* Adds SSL CA file socket wrappers via a client auth
HTTPS connection class
* Adds server SSL support, but not functional tests
for SSL support yet. Still need to research self-signed
cert generation for tests...
* Updates documentation for bind and startup options
* Adds functional test case for secure communication
with API server stood up with SSL supprt. Note it is
not very DRY. There is some DRY cleanup to do in the
future...
TODO: Integrate options with bin/glance CLI tool
Change-Id: Ie9fcd36337cc93fd5beeabb9186ad5e93ae2a0f0
Break up images and members controllers in the registry api and restructure it to be more like the glance api. This is
in preparation for the future split.
Change-Id: I81e6c74815cf15adebb526b31614fd2e63982c3d
* glance-api writes out to a scrubber "queue" dir on delete
* Scrubber determines images to deleted from "queue" dir not db
Change-Id: Ia5574fc75f1a9c763bdef0f5773c2c182932b68a
Fixes LP Bug #827660 - Swift driver fails to
upload image files greater than 5GB. The swift
store driver was not using the large object
manifest methods required to upload objects
greater than 5GB into Swift.
Adds configuration options to specify the
size in MB that an image file should be considered
for large object manifest, and a configurable
chunk size. We use a disk buffer of this size,
adding chunks of the image file into Swift and
then after all chunks are saved, add the manifest
to Swift.
Change-Id: I4b4421aa1bba584ab242016a041e864ef19d0214