Move back api-v1 to the main api

API v2 is not finished and should only be optionnal. Move the binary as
api-v2 and remove the dep on pecan, only use it for tests.

This also fixes bug #1092227.

Change-Id: Ifaf0ad3918460bc2107e1563f0539695467a1856
Signed-off-by: Julien Danjou <julien@danjou.info>
This commit is contained in:
Julien Danjou 2012-12-20 14:53:57 +01:00
parent 26a3886f6a
commit 29f5edad8e
6 changed files with 81 additions and 80 deletions

View File

@ -18,15 +18,10 @@
# under the License.
"""Set up the development API server.
"""
import os
import sys
from wsgiref import simple_server
from pecan import configuration
from ceilometer.api import acl
from ceilometer.api import app
from ceilometer.api import config as api_config
from ceilometer.api.v1 import acl
from ceilometer.api.v1 import app
from ceilometer.openstack.common import cfg
from ceilometer.openstack.common import log as logging
@ -37,34 +32,15 @@ if __name__ == '__main__':
# inputs.
acl.register_opts(cfg.CONF)
# Parse OpenStack config file and command line options, then
# configure logging.
# Parse config file and command line options,
# then configure logging.
cfg.CONF(sys.argv[1:])
logging.setup('ceilometer.api')
# Set up the pecan configuration
filename = api_config.__file__.replace('.pyc', '.py')
pecan_config = configuration.conf_from_file(filename)
root = app.make_app()
# Build the WSGI app
root = app.setup_app(pecan_config,
extra_hooks=[acl.AdminAuthHook()])
root = acl.install(root, cfg.CONF)
# Enable debug mode
if cfg.CONF.verbose or cfg.CONF.debug:
root.debug = True
# Create the WSGI server and start it
host, port = '0.0.0.0', int(cfg.CONF.metering_api_port)
srv = simple_server.make_server(host, port, root)
print 'Starting server in PID %s' % os.getpid()
if host == '0.0.0.0':
print 'serving on 0.0.0.0:%s, view at http://127.0.0.1:%s' % \
(port, port)
else:
print "serving on http://%s:%s" % (host, port)
try:
srv.serve_forever()
except KeyboardInterrupt:
# allow CTRL+C to shutdown without an error
pass
root.run(host='0.0.0.0', port=cfg.CONF.metering_api_port)

View File

@ -1,46 +0,0 @@
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
#
# Copyright © 2012 New Dream Network, LLC (DreamHost)
#
# Author: Doug Hellmann <doug.hellmann@dreamhost.com>
#
# 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.
"""Set up the development API server.
"""
import sys
from ceilometer.api.v1 import acl
from ceilometer.api.v1 import app
from ceilometer.openstack.common import cfg
from ceilometer.openstack.common import log as logging
if __name__ == '__main__':
# Register keystone middleware option before
# parsing the config file and command line
# inputs.
acl.register_opts(cfg.CONF)
# Parse config file and command line options,
# then configure logging.
cfg.CONF(sys.argv[1:])
logging.setup('ceilometer.api')
root = app.make_app()
# Enable debug mode
if cfg.CONF.verbose or cfg.CONF.debug:
root.debug = True
root.run(host='0.0.0.0', port=cfg.CONF.metering_api_port)

70
bin/ceilometer-api-v2 Executable file
View File

@ -0,0 +1,70 @@
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
#
# Copyright © 2012 New Dream Network, LLC (DreamHost)
#
# Author: Doug Hellmann <doug.hellmann@dreamhost.com>
#
# 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.
"""Set up the development API server.
"""
import os
import sys
from wsgiref import simple_server
from pecan import configuration
from ceilometer.api import acl
from ceilometer.api import app
from ceilometer.api import config as api_config
from ceilometer.openstack.common import cfg
from ceilometer.openstack.common import log as logging
if __name__ == '__main__':
# Register keystone middleware option before
# parsing the config file and command line
# inputs.
acl.register_opts(cfg.CONF)
# Parse OpenStack config file and command line options, then
# configure logging.
cfg.CONF(sys.argv[1:])
logging.setup('ceilometer.api')
# Set up the pecan configuration
filename = api_config.__file__.replace('.pyc', '.py')
pecan_config = configuration.conf_from_file(filename)
# Build the WSGI app
root = app.setup_app(pecan_config,
extra_hooks=[acl.AdminAuthHook()])
root = acl.install(root, cfg.CONF)
# Create the WSGI server and start it
host, port = '0.0.0.0', int(cfg.CONF.metering_api_port)
srv = simple_server.make_server(host, port, root)
print 'Starting server in PID %s' % os.getpid()
if host == '0.0.0.0':
print 'serving on 0.0.0.0:%s, view at http://127.0.0.1:%s' % \
(port, port)
else:
print "serving on http://%s:%s" % (host, port)
try:
srv.serve_forever()
except KeyboardInterrupt:
# allow CTRL+C to shutdown without an error
pass

View File

@ -15,5 +15,4 @@ python-glanceclient
python-novaclient>=2.6.10
python-keystoneclient>=0.2,<0.3
python-swiftclient
pecan
lxml

View File

@ -20,3 +20,4 @@ setuptools-git>=0.4
# checkout on bitbucket. I hope to have that resolved
# very soon.
hg+https://bitbucket.org/cdevienne/wsme
pecan

View File

@ -20,3 +20,4 @@ setuptools-git>=0.4
# checkout on bitbucket. I hope to have that resolved
# very soon.
hg+https://bitbucket.org/cdevienne/wsme
pecan