* Fixes parsing of "S3 URLs" which urlparse utterly barfs on because
Amazon stupidly allows forward slashes in their secret keys
* Update /etc/glance-api.conf for S3 settings
Future refactoring:
* Make the cURL API functional test a base test class and
extend it to allow setting the default store and store settings. There's
a bit of duplicate code between this new test case and the cURL test
case, but we can rework it later.
* Document the S3 store (need to do this better with Swift, too)
Adds middleware that detects versioned URIs and also
detects media types in the Accept: header and attempts
to determine the API controller to return for the
client request.
Adds a bunch of functional test cases for variations
of calling the versioned and unversioned URIs with and
without Accept: headers.
Important notes:
* Split API and Registry configuration files out into 2 files
Therefore, we need to update the packaging/upstart scripts
and documentation
* The paste.deploy stuff is now ready to go for pipeline-style
middleware that is coming with authentication
* /images -> /v1.0/images
* /versions endpoint added
* Split out the starting/stopping of servers into a Server class
in tests.functional.FunctionalTestCase. This was really useful
to get different configuration files working well.
Adds POST/PUT capabilities to the SwiftBackend
Adds lots of unit tests for both FilesystemBackend and SwiftBackend
Removes now-unused tests.unit.fakeswifthttp module
paste.deploy configuration files. Removed ability to configure
server options from CLI options when starting the servers with
the exception of --verbose and --debug, which are useful during
debugging.
Updated the documentation controllingservers.rst.
in favour of paste.deploy.
We use a solution that is a hybrid of the code in Nova and Swift:
* We continue to use the object-based WSGI Server/Router objects
in glance.common.wsgi.
* We load options from a configuration file like Swift does, merging
in the typed options returned from glance.common.config.parse_options()
NOTE: Due to http://trac.pythonpaste.org/pythonpaste/ticket/379, we
removed the CLI option --log-format and use a hard-coded DEFAULT_LOG_FORMAT.
You are still able to adjust the log format using the --log-config-file
option, however, and setting the format string in the log config file.
configuration files.
glance-api, glance-registry, and glance-combined now process
a set of configuration files in order, with options read from
later files overriding values in earlier files:
/etc/glance.cnf
/etc/glance/glance.conf
~/glance.cnf
~/.glance/glance.cnf
./glance.cnf
The new glance.common.config.get_config_file_options() function
processes these config files into a mapping of key/value
option pairs. This mapping can now be passed to the
glance.common.config.parse_options() function as default values
Adds a sample glance.cnf to the etc/ directory
* Adds option group for logging-only configuration settings
* Adds /etc and /etc/logging.cnf.sample as an example of setting
up logging configuration directly with a config file
* Adds to glance.common.config a couple function useful in
adding logging options and setting up the logger(s)
Next round will include the addition of a --debug option and
lots more debugging output to the loggers.