def make_app(conf=None): try: import uwsgi except ImportError: class App(Isso, ThreadedMixin): pass else: class App(Isso, uWSGIMixin): pass isso = App(conf) for host in conf.getiter("general", "host"): with http.curl('HEAD', host, '/', 5) as resp: if resp is not None: logger.info("connected to HTTP server") break else: logger.warn("unable to connect to HTTP server") app = ProxyFix( wsgi.SubURI( SharedDataMiddleware( isso.wsgi_app, { '/js': join(dirname(__file__), 'js/'), '/css': join(dirname(__file__), 'css/') }))) return app
def make_app(conf=None): try: import uwsgi except ImportError: class App(Isso, ThreadedMixin): pass else: class App(Isso, uWSGIMixin): pass isso = App(conf) for host in conf.getiter("general", "host"): with http.curl('HEAD', host, '/', 5) as resp: if resp is not None: logger.info("connected to HTTP server") break else: logger.warn("unable to connect to HTTP server") if isso.conf.getboolean("server", "profile"): from werkzeug.contrib.profiler import ProfilerMiddleware isso = ProfilerMiddleware(isso, sort_by=("cumtime", ), restrictions=("isso/(?!lib)", )) app = ProxyFix( wsgi.SubURI( wsgi.CORSMiddleware( SharedDataMiddleware( isso, { '/js': join(dirname(__file__), 'js/'), '/css': join(dirname(__file__), 'css/') }), list(isso.conf.getiter("general", "host"))))) return app
def __call__(self, environ, start_response): # clear X-Script-Name as the PATH_INFO is already adjusted environ.pop('HTTP_X_SCRIPT_NAME', None) return super(Dispatcher, self).__call__(environ, start_response) def default(self, environ, start_response): #resp = Response("\n".join(self.sso.keys()), # 404, content_type="text/plain") resp = Response("Up and running", 404, content_type="text/plain") return resp(environ, start_response) settings = os.environ.get("ISSO_SETTINGS") if settings: if os.path.isdir(settings): conf_glob = os.path.join(settings, '*.cfg') confs = glob(conf_glob) application = wsgi.SubURI(Dispatcher(*confs)) else: confs = settings.split(";") for path in confs: if not os.path.isfile(path): logger.fatal("%s: no such file", path) sys.exit(1) application = wsgi.SubURI(Dispatcher(*confs)) else: logger.fatal('environment variable ISSO_SETTINGS must be set')