3 # Copyright 2010 United States Government as represented by the
4 # Administrator of the National Aeronautics and Space Administration.
5 # Copyright 2011 OpenStack Foundation
8 # Licensed under the Apache License, Version 2.0 (the "License"); you may
9 # not use this file except in compliance with the License. You may obtain
10 # a copy of the License at
12 # http://www.apache.org/licenses/LICENSE-2.0
14 # Unless required by applicable law or agreed to in writing, software
15 # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
16 # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
17 # License for the specific language governing permissions and limitations
29 from oslo_service import systemd
30 from oslo_config import cfg
31 from oslo_log import log as logging
32 import osprofiler.notifier
35 from escalator.common import utils
36 from escalator.common import config
37 from escalator.common import exception
38 from escalator.common import wsgi
39 from escalator import notifier
42 # Monkey patch socket, time, select, threads
43 eventlet.patcher.monkey_patch(all=False, socket=True, time=True,
44 select=True, thread=True, os=True)
46 # If ../escalator/__init__.py exists, add ../ to Python search path, so that
47 # it will override what happens to be installed in /usr/(local/)lib/python...
48 possible_topdir = os.path.normpath(os.path.join(os.path.abspath(sys.argv[0]),
51 if os.path.exists(os.path.join(possible_topdir, 'escalator', '__init__.py')):
52 sys.path.insert(0, possible_topdir)
56 CONF.import_group("profiler", "escalator.common.wsgi")
57 logging.register_options(CONF)
67 wsgi.set_eventlet_hub()
68 logging.setup(CONF, 'escalator')
70 if cfg.CONF.profiler.enabled:
71 _notifier = osprofiler.notifier.create("Messaging",
72 notifier.messaging, {},
73 notifier.get_transport(),
76 osprofiler.notifier.set(_notifier)
78 osprofiler.web.disable()
80 server = wsgi.Server()
81 server.start(config.load_paste_app('escalator-api'), default_port=9393)
84 except Exception as e:
88 if __name__ == '__main__':