heat/bin/heat-engine
Luis A. Garcia 9004239b9f Enable localizable REST API responses via the Accept-Language header
Add support for doing language resolution for a request, based on the
Accept-Language HTTP header. Using the lazy gettext functionality, from
oslo gettextutils, it is possible to use the resolved language to
translate exception messages to the user requested language and
return that translation from the API.

The patch removes individually imported _() so they don't replace the
one installed service-wide.

Also, it adds the ability to fully re-create a remote error
with the same kwargs with which it was originally created, so that we
can translate it and show it to the user.

Partially implements bp user-locale-api.

Change-Id: I63edc8463836bfff257daa8a2c66ed5d3a444254
2013-08-03 00:19:17 +00:00

69 lines
2.2 KiB
Python
Executable File

#!/usr/bin/env python
# vim: tabstop=4 shiftwidth=4 softtabstop=4
#
# 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.
"""
Heat Engine Server. This does the work of actually implementing the API
calls made by the user. Normal communications is done via the heat API
which then calls into this engine.
"""
import eventlet
eventlet.monkey_patch()
import os
import sys
# If ../heat/__init__.py exists, add ../ to Python search path, so that
# it will override what happens to be installed in /usr/(local/)lib/python...
POSSIBLE_TOPDIR = os.path.normpath(os.path.join(os.path.abspath(sys.argv[0]),
os.pardir,
os.pardir))
if os.path.exists(os.path.join(POSSIBLE_TOPDIR, 'heat', '__init__.py')):
sys.path.insert(0, POSSIBLE_TOPDIR)
from heat.openstack.common import gettextutils
gettextutils.install('heat', lazy=True)
from oslo.config import cfg
from heat.openstack.common import log as logging
from heat.openstack.common import service
from heat.db import api as db_api
from heat.rpc import api as rpc_api
LOG = logging.getLogger('heat.engine')
if __name__ == '__main__':
cfg.CONF(project='heat', prog='heat-engine')
cfg.CONF.default_log_levels = ['amqplib=WARN',
'sqlalchemy=WARN',
'qpid.messaging=INFO',
'keystone=INFO',
'eventlet.wsgi.server=WARN',
]
logging.setup('heat')
from heat.engine import service as engine
db_api.configure()
srv = engine.EngineService(cfg.CONF.host, rpc_api.ENGINE_TOPIC)
launcher = service.launch(srv)
launcher.wait()