lemur/lemur/__init__.py

89 lines
2.4 KiB
Python
Raw Normal View History

2015-06-22 22:47:27 +02:00
"""
.. module: lemur
:platform: Unix
:copyright: (c) 2015 by Netflix Inc., see AUTHORS for more
:license: Apache, see LICENSE for more details.
.. moduleauthor:: Kevin Glisson <kglisson@netflix.com>
"""
2015-12-01 18:44:41 +01:00
from __future__ import absolute_import, division, print_function
2015-06-22 22:47:27 +02:00
from lemur import factory
2016-04-02 01:54:33 +02:00
from lemur.extensions import metrics
2015-06-22 22:47:27 +02:00
2015-06-29 22:51:52 +02:00
from lemur.users.views import mod as users_bp
from lemur.roles.views import mod as roles_bp
from lemur.auth.views import mod as auth_bp
from lemur.domains.views import mod as domains_bp
from lemur.destinations.views import mod as destinations_bp
2015-06-29 22:51:52 +02:00
from lemur.authorities.views import mod as authorities_bp
from lemur.certificates.views import mod as certificates_bp
2015-09-05 00:52:56 +02:00
from lemur.defaults.views import mod as defaults_bp
from lemur.plugins.views import mod as plugins_bp
from lemur.notifications.views import mod as notifications_bp
2015-08-02 00:29:34 +02:00
from lemur.sources.views import mod as sources_bp
2016-06-27 23:40:46 +02:00
from lemur.endpoints.views import mod as endpoints_bp
from lemur.logs.views import mod as logs_bp
2015-08-02 00:29:34 +02:00
2015-12-01 18:44:41 +01:00
from lemur.__about__ import (
__author__, __copyright__, __email__, __license__, __summary__, __title__,
__uri__, __version__
)
__all__ = [
"__title__", "__summary__", "__uri__", "__version__", "__author__",
"__email__", "__license__", "__copyright__",
]
2015-06-22 22:47:27 +02:00
LEMUR_BLUEPRINTS = (
2015-06-29 22:51:52 +02:00
users_bp,
roles_bp,
auth_bp,
domains_bp,
destinations_bp,
2015-06-29 22:51:52 +02:00
authorities_bp,
certificates_bp,
2015-09-05 00:52:56 +02:00
defaults_bp,
plugins_bp,
notifications_bp,
2016-06-27 23:40:46 +02:00
sources_bp,
endpoints_bp,
logs_bp
2015-06-22 22:47:27 +02:00
)
2015-07-21 22:06:13 +02:00
2015-06-22 22:47:27 +02:00
def create_app(config=None):
app = factory.create_app(app_name=__name__, blueprints=LEMUR_BLUEPRINTS, config=config)
configure_hook(app)
return app
def configure_hook(app):
"""
:param app:
:return:
"""
from flask import jsonify
from werkzeug.exceptions import HTTPException
2015-06-22 22:47:27 +02:00
from lemur.decorators import crossdomain
if app.config.get('CORS'):
@app.after_request
@crossdomain(origin=u"http://localhost:3000", methods=['PUT', 'HEAD', 'GET', 'POST', 'OPTIONS', 'DELETE'])
2015-06-22 22:47:27 +02:00
def after(response):
return response
@app.errorhandler(Exception)
def handle_error(e):
code = 500
if isinstance(e, HTTPException):
code = e.code
2016-04-02 01:54:33 +02:00
metrics.send('{}_status_code'.format(code), 'counter', 1)
app.logger.exception(e)
return jsonify(error=str(e)), code