From fb52104af74bbf6eeda394880666df40b4354aba Mon Sep 17 00:00:00 2001 From: Karel Klic Date: Tue, 1 Mar 2011 11:32:49 +0100 Subject: moved retrace server code to src/retrace --- src/retrace/backtrace.wsgi | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 src/retrace/backtrace.wsgi (limited to 'src/retrace/backtrace.wsgi') diff --git a/src/retrace/backtrace.wsgi b/src/retrace/backtrace.wsgi new file mode 100644 index 00000000..d6a8686a --- /dev/null +++ b/src/retrace/backtrace.wsgi @@ -0,0 +1,42 @@ +#!/usr/bin/python + +import sys +sys.path = ["/usr/share/abrt-retrace"] + sys.path + +from retrace import * + +def application(environ, start_response): + request = Request(environ) + + match = URL_PARSER.match(request.script_name) + if not match: + return response(start_response, "404 Not Found") + + taskdir = "%s/%s" % (CONFIG["SaveDir"], match.group(1)) + + if not os.path.isdir(taskdir): + return response(start_response, "404 Not Found") + + pwdpath = "%s/password" % taskdir + try: + pwdfile = open(pwdpath, "r") + pwd = pwdfile.read() + pwdfile.close() + except: + return response(start_response, "500 Internal Server Error", "Unable to verify password") + + if not "X-Task-Password" in request.headers or request.headers["X-Task-Password"] != pwd: + return response(start_response, "403 Forbidden") + + btpath = "%s/retrace_backtrace" % taskdir + if not os.path.isfile(btpath): + return response(start_response, "404 Not Found") + + try: + btfile = open(btpath, "r") + output = btfile.read() + btfile.close() + except: + return response(start_response, "500 Internal Server Error", "Unable to read backtrace file at server") + + return response(start_response, "200 OK", output) -- cgit