eec5c1afa1
* 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
70 lines
2.2 KiB
Python
Executable File
70 lines
2.2 KiB
Python
Executable File
#!/usr/bin/env python
|
|
# vim: tabstop=4 shiftwidth=4 softtabstop=4
|
|
|
|
# Copyright 2010 United States Government as represented by the
|
|
# Administrator of the National Aeronautics and Space Administration.
|
|
# Copyright 2011 OpenStack LLC.
|
|
# All Rights Reserved.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
"""
|
|
Glance API Server
|
|
"""
|
|
|
|
import gettext
|
|
import optparse
|
|
import os
|
|
import sys
|
|
|
|
# If ../glance/__init__.py exists, add ../ to Python search path, so that
|
|
# it will override what happens to be installed in /usr/(local/)lib/python...
|
|
possible_topdir = os.path.normpath(os.path.join(os.path.abspath(sys.argv[0]),
|
|
os.pardir,
|
|
os.pardir))
|
|
if os.path.exists(os.path.join(possible_topdir, 'glance', '__init__.py')):
|
|
sys.path.insert(0, possible_topdir)
|
|
|
|
gettext.install('glance', unicode=1)
|
|
|
|
from glance import version
|
|
from glance.common import config
|
|
from glance.common import wsgi
|
|
|
|
|
|
def create_options(parser):
|
|
"""
|
|
Sets up the CLI and config-file options that may be
|
|
parsed and program commands.
|
|
|
|
:param parser: The option parser
|
|
"""
|
|
config.add_common_options(parser)
|
|
config.add_log_options(parser)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
oparser = optparse.OptionParser(version='%%prog %s'
|
|
% version.version_string())
|
|
create_options(oparser)
|
|
(options, args) = config.parse_options(oparser)
|
|
|
|
try:
|
|
conf, app = config.load_paste_app('glance-api', options, args)
|
|
|
|
server = wsgi.Server()
|
|
server.start(app, int(conf['bind_port']), conf['bind_host'], conf)
|
|
server.wait()
|
|
except RuntimeError, e:
|
|
sys.exit("ERROR: %s" % e)
|