* 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
Added gettext.install to glance endpoints, setup.py, and run_tests.py. Wrapped all exceptions in common/exception.py with gettext.
Included fix for bug lp:823676.
Change-Id: Ied4381e1676227afea857acd01f4754e6a181106
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.
program based on Swift's swift-init script.
Adds a crap-ton of documentation on installing Glance and
controlling Glance's server programs.
This was necessary since when glance.common.server was removed
from Glance and paste.deploy used, we lost the ability to control
server daemonization with CLI options. This adds back some of that
functionality while still using paste.deploy like Swift does.
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
outputs INFO-level log records.
Adds --log-date-format option for greater control over the log
record date format.
Makes config.setup_logging() set up all loggers, not just an application's
specific logger. Fixes issue Rick brought up about logging config file
being overridden by adding a return statement after logging.config stuff
is done.
* 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.
Fix was simple. args = FLAGS(argv) returns ALL argv's including
the program name. optparse.OptionParser.parse_args() does not
return the program name as args[0], instead it returns args[1:].
In glance.common.server.serve(), we were checking:
action = 'start':
if len(args) > 1:
action = args.pop()
Changing this to if len(args): fixed the problem.
* 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