-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathapp.py
76 lines (58 loc) · 2.34 KB
/
app.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#!/usr/bin/env python
'''
Compliance Checker Web
~~~~~~~~~~~~~~~~~~~~~~
'''
from flask import Flask, url_for, jsonify
from cchecker_web import APP_ROOT
from cchecker_web.flask_environments import Environments
import os
app = Flask(__name__)
from cchecker_web.reverse_proxy import ReverseProxied
app.wsgi_app = ReverseProxied(app.wsgi_app)
env = Environments(app, default_env='COMMON')
env.from_yaml(os.path.join(APP_ROOT, 'config.yml'))
if os.path.exists('config.local.yml'):
env.from_yaml('config.local.yml')
if app.config['LOGGING'] == True:
import logging
logger = logging.getLogger('cchecker_web.app')
logger.setLevel(logging.DEBUG)
log_directory = app.config['LOG_FILE_PATH']
log_filename = os.path.join(log_directory,app.config['LOG_FILE'])
if not os.path.exists(os.path.dirname(log_filename)):
os.makedirs(os.path.dirname(log_filename))
file_handler = logging.FileHandler(log_filename, mode='a+')
stream_handler = logging.StreamHandler()
formatter = logging.Formatter('%(asctime)s - %(process)d - %(name)s - %(module)s:%(lineno)d - %(levelname)s - %(message)s')
file_handler.setFormatter(formatter)
stream_handler.setFormatter(formatter)
app.logger.addHandler(file_handler)
#app.logger.addHandler(stream_handler)
app.logger.setLevel(logging.DEBUG)
app.logger.info('Application Process Started')
from cchecker_web import cchecker_web
app.register_blueprint(cchecker_web, url_prefix='')
import redis
redis_pool = redis.ConnectionPool(host=app.config.get('REDIS_HOST'),
port=app.config.get('REDIS_PORT'),
db=app.config.get('REDIS_DB'))
app.redis = redis.Redis(connection_pool=redis_pool)
redis_connection = app.redis
# rq
from rq import Queue
app.queue = Queue('default', connection=app.redis)
@app.context_processor
def url_process():
def url_root():
return url_for('.show_root')
return {'url_root': url_root}
from cchecker_web.utils import setup_uploads
setup_uploads(app)
from cchecker_web import cache
cache.init_app(app, config=app.config['CACHE'])
# The compliance checker needs to load all plugins at runtime
from compliance_checker.runner import CheckSuite
CheckSuite.load_all_available_checkers()
if __name__ == '__main__':
app.run(host=app.config['HOST'], port=app.config['PORT'], debug=app.config['DEBUG'])