Use console scripts for ceilometer-api
Blueprint: setuptools-console-scripts Change-Id: Ia64319ba2ea5fdd2778c7faea76478272bb237a6 Signed-off-by: Julien Danjou <julien@danjou.info>
This commit is contained in:
parent
7183fd5970
commit
cc0fc91200
@ -1,63 +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 logging
|
|
||||||
import os
|
|
||||||
import sys
|
|
||||||
from wsgiref import simple_server
|
|
||||||
|
|
||||||
from oslo.config import cfg
|
|
||||||
|
|
||||||
from ceilometer.openstack.common import gettextutils
|
|
||||||
gettextutils.install('ceilometer')
|
|
||||||
|
|
||||||
from ceilometer.api import app
|
|
||||||
from ceilometer.openstack.common import log
|
|
||||||
from ceilometer import service
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
# Parse OpenStack config file and command line options, then
|
|
||||||
# configure logging.
|
|
||||||
service.prepare_service(sys.argv)
|
|
||||||
|
|
||||||
# Build the WSGI app
|
|
||||||
root = app.VersionSelectorApplication()
|
|
||||||
|
|
||||||
# Create the WSGI server and start it
|
|
||||||
host, port = cfg.CONF.api.host, cfg.CONF.api.port
|
|
||||||
srv = simple_server.make_server(host, port, root)
|
|
||||||
|
|
||||||
LOG = log.getLogger(__name__)
|
|
||||||
LOG.info('Starting server in PID %s' % os.getpid())
|
|
||||||
LOG.info("Configuration:")
|
|
||||||
cfg.CONF.log_opt_values(LOG, logging.INFO)
|
|
||||||
|
|
||||||
if host == '0.0.0.0':
|
|
||||||
LOG.info('serving on 0.0.0.0:%s, view at http://127.0.0.1:%s' %
|
|
||||||
(port, port))
|
|
||||||
else:
|
|
||||||
LOG.info("serving on http://%s:%s" % (host, port))
|
|
||||||
|
|
||||||
try:
|
|
||||||
srv.serve_forever()
|
|
||||||
except KeyboardInterrupt:
|
|
||||||
# allow CTRL+C to shutdown without an error
|
|
||||||
pass
|
|
@ -16,14 +16,22 @@
|
|||||||
# License for the specific language governing permissions and limitations
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
|
import logging
|
||||||
|
import os
|
||||||
from oslo.config import cfg
|
from oslo.config import cfg
|
||||||
import pecan
|
import pecan
|
||||||
|
import sys
|
||||||
|
|
||||||
from ceilometer.api import acl
|
from ceilometer.api import acl
|
||||||
from ceilometer.api import config as api_config
|
from ceilometer.api import config as api_config
|
||||||
from ceilometer.api import hooks
|
from ceilometer.api import hooks
|
||||||
from ceilometer.api import middleware
|
from ceilometer.api import middleware
|
||||||
|
from ceilometer import service
|
||||||
|
from ceilometer.openstack.common import log
|
||||||
|
from wsgiref import simple_server
|
||||||
|
from ceilometer.openstack.common import gettextutils
|
||||||
|
|
||||||
|
LOG = log.getLogger(__name__)
|
||||||
|
|
||||||
auth_opts = [
|
auth_opts = [
|
||||||
cfg.StrOpt('auth_strategy',
|
cfg.StrOpt('auth_strategy',
|
||||||
@ -91,3 +99,27 @@ class VersionSelectorApplication(object):
|
|||||||
if environ['PATH_INFO'].startswith('/v1/'):
|
if environ['PATH_INFO'].startswith('/v1/'):
|
||||||
return self.v1(environ, start_response)
|
return self.v1(environ, start_response)
|
||||||
return self.v2(environ, start_response)
|
return self.v2(environ, start_response)
|
||||||
|
|
||||||
|
|
||||||
|
def start():
|
||||||
|
gettextutils.install('ceilometer')
|
||||||
|
service.prepare_service(sys.argv)
|
||||||
|
|
||||||
|
# Build the WSGI app
|
||||||
|
root = VersionSelectorApplication()
|
||||||
|
|
||||||
|
# Create the WSGI server and start it
|
||||||
|
host, port = cfg.CONF.api.host, cfg.CONF.api.port
|
||||||
|
srv = simple_server.make_server(host, port, root)
|
||||||
|
|
||||||
|
LOG.info('Starting server in PID %s' % os.getpid())
|
||||||
|
LOG.info("Configuration:")
|
||||||
|
cfg.CONF.log_opt_values(LOG, logging.INFO)
|
||||||
|
|
||||||
|
if host == '0.0.0.0':
|
||||||
|
LOG.info('serving on 0.0.0.0:%s, view at http://127.0.0.1:%s' %
|
||||||
|
(port, port))
|
||||||
|
else:
|
||||||
|
LOG.info("serving on http://%s:%s" % (host, port))
|
||||||
|
|
||||||
|
srv.serve_forever()
|
||||||
|
@ -334,7 +334,7 @@ Installing the API Server
|
|||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
$ ./bin/ceilometer-api
|
$ ceilometer-api
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
|
@ -26,8 +26,6 @@ setup-hooks =
|
|||||||
[files]
|
[files]
|
||||||
packages =
|
packages =
|
||||||
ceilometer
|
ceilometer
|
||||||
scripts =
|
|
||||||
bin/ceilometer-api
|
|
||||||
|
|
||||||
[entry_points]
|
[entry_points]
|
||||||
ceilometer.collector =
|
ceilometer.collector =
|
||||||
@ -86,6 +84,7 @@ paste.filter_factory =
|
|||||||
swift = ceilometer.objectstore.swift_middleware:filter_factory
|
swift = ceilometer.objectstore.swift_middleware:filter_factory
|
||||||
|
|
||||||
console_scripts =
|
console_scripts =
|
||||||
|
ceilometer-api = ceilometer.api.app:start
|
||||||
ceilometer-agent-central = ceilometer.central.manager:agent_central
|
ceilometer-agent-central = ceilometer.central.manager:agent_central
|
||||||
ceilometer-agent-compute = ceilometer.compute.manager:agent_compute
|
ceilometer-agent-compute = ceilometer.compute.manager:agent_compute
|
||||||
ceilometer-dbsync = ceilometer.storage:dbsync
|
ceilometer-dbsync = ceilometer.storage:dbsync
|
||||||
|
@ -87,7 +87,7 @@ class BinApiTestCase(base.TestCase):
|
|||||||
"port=%s\n" % self.api_port)
|
"port=%s\n" % self.api_port)
|
||||||
tmp.write("[database]\n")
|
tmp.write("[database]\n")
|
||||||
tmp.write("connection=log://localhost\n")
|
tmp.write("connection=log://localhost\n")
|
||||||
self.subp = subprocess.Popen([self.path_get('bin/ceilometer-api'),
|
self.subp = subprocess.Popen(['ceilometer-api',
|
||||||
"--config-file=%s" % self.tempfile])
|
"--config-file=%s" % self.tempfile])
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
|
2
tox.ini
2
tox.ini
@ -24,7 +24,7 @@ deps = pep8==1.4.5
|
|||||||
flake8==2.0
|
flake8==2.0
|
||||||
hacking>=0.5.3,<0.6
|
hacking>=0.5.3,<0.6
|
||||||
commands =
|
commands =
|
||||||
flake8 ceilometer setup.py bin/ceilometer-api tests
|
flake8 ceilometer setup.py tests
|
||||||
|
|
||||||
[testenv:docs]
|
[testenv:docs]
|
||||||
deps = -r{toxinidir}/requirements.txt
|
deps = -r{toxinidir}/requirements.txt
|
||||||
|
Loading…
Reference in New Issue
Block a user