from flask import (Flask, request, abort, ) import os import json from functools import wraps import subprocess import time # Flask app app = Flask( __name__, static_folder='static', static_url_path='', instance_relative_config=True ) CONFIG = os.environ.get('CONFIG') or 'config.Development' app.config.from_object('config.Default') app.config.from_object(CONFIG) FIRST = 'RESOLUTION' not in os.environ # logging import logging from log.config import LoggingConfiguration LoggingConfiguration.set( logging.DEBUG if os.getenv('DEBUG') else logging.INFO, '/var/log/web.log' ) def exception_to_json(func): @wraps(func) def wrapper(*args, **kwargs): try: result = func(*args, **kwargs) return result except (BadRequest, KeyError, ValueError, ) as e: result = {'error': {'code': 400, 'message': str(e)}} except PermissionDenied as e: result = {'error': {'code': 403, 'message': ', '.join(e.args)}} except (NotImplementedError, RuntimeError, AttributeError) as e: result = {'error': {'code': 500, 'message': ', '.join(e.args)}} return json.dumps(result) return wrapper class PermissionDenied(Exception): pass class BadRequest(Exception): pass HTML_INDEX = '''