From 29f5edad8ee6a1949839e946ab60861c141702e5 Mon Sep 17 00:00:00 2001 From: Julien Danjou Date: Thu, 20 Dec 2012 14:53:57 +0100 Subject: [PATCH] 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 --- bin/ceilometer-api | 42 +++++------------------ bin/ceilometer-api-v1 | 46 ------------------------- bin/ceilometer-api-v2 | 70 ++++++++++++++++++++++++++++++++++++++ tools/pip-requires | 1 - tools/test-requires | 1 + tools/test-requires-folsom | 1 + 6 files changed, 81 insertions(+), 80 deletions(-) delete mode 100755 bin/ceilometer-api-v1 create mode 100755 bin/ceilometer-api-v2 diff --git a/bin/ceilometer-api b/bin/ceilometer-api index 3b650a542..1a7c121dd 100755 --- a/bin/ceilometer-api +++ b/bin/ceilometer-api @@ -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) diff --git a/bin/ceilometer-api-v1 b/bin/ceilometer-api-v1 deleted file mode 100755 index 1a7c121dd..000000000 --- a/bin/ceilometer-api-v1 +++ /dev/null @@ -1,46 +0,0 @@ -#!/usr/bin/env python -# -*- encoding: utf-8 -*- -# -# Copyright © 2012 New Dream Network, LLC (DreamHost) -# -# Author: Doug Hellmann -# -# 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) diff --git a/bin/ceilometer-api-v2 b/bin/ceilometer-api-v2 new file mode 100755 index 000000000..3b650a542 --- /dev/null +++ b/bin/ceilometer-api-v2 @@ -0,0 +1,70 @@ +#!/usr/bin/env python +# -*- encoding: utf-8 -*- +# +# Copyright © 2012 New Dream Network, LLC (DreamHost) +# +# Author: Doug Hellmann +# +# 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 diff --git a/tools/pip-requires b/tools/pip-requires index 4a0755eb5..4b7e7d923 100644 --- a/tools/pip-requires +++ b/tools/pip-requires @@ -15,5 +15,4 @@ python-glanceclient python-novaclient>=2.6.10 python-keystoneclient>=0.2,<0.3 python-swiftclient -pecan lxml diff --git a/tools/test-requires b/tools/test-requires index 607a005c0..d34e21c52 100644 --- a/tools/test-requires +++ b/tools/test-requires @@ -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 \ No newline at end of file diff --git a/tools/test-requires-folsom b/tools/test-requires-folsom index 15f5078ce..202e24722 100644 --- a/tools/test-requires-folsom +++ b/tools/test-requires-folsom @@ -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 \ No newline at end of file