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. # under the License.
"""Set up the development API server. """Set up the development API server.
""" """
import os
import sys import sys
from wsgiref import simple_server
from pecan import configuration from ceilometer.api.v1 import acl
from ceilometer.api.v1 import app
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 cfg
from ceilometer.openstack.common import log as logging from ceilometer.openstack.common import log as logging
@ -37,34 +32,15 @@ if __name__ == '__main__':
# inputs. # inputs.
acl.register_opts(cfg.CONF) acl.register_opts(cfg.CONF)
# Parse OpenStack config file and command line options, then # Parse config file and command line options,
# configure logging. # then configure logging.
cfg.CONF(sys.argv[1:]) cfg.CONF(sys.argv[1:])
logging.setup('ceilometer.api') logging.setup('ceilometer.api')
# Set up the pecan configuration root = app.make_app()
filename = api_config.__file__.replace('.pyc', '.py')
pecan_config = configuration.conf_from_file(filename)
# Build the WSGI app # Enable debug mode
root = app.setup_app(pecan_config, if cfg.CONF.verbose or cfg.CONF.debug:
extra_hooks=[acl.AdminAuthHook()]) root.debug = True
root = acl.install(root, cfg.CONF)
# Create the WSGI server and start it root.run(host='0.0.0.0', port=cfg.CONF.metering_api_port)
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

@ -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-novaclient>=2.6.10
python-keystoneclient>=0.2,<0.3 python-keystoneclient>=0.2,<0.3
python-swiftclient python-swiftclient
pecan
lxml lxml

View File

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