diff options
author | Karel Klic <kklic@redhat.com> | 2011-03-01 11:32:49 +0100 |
---|---|---|
committer | Karel Klic <kklic@redhat.com> | 2011-03-01 11:32:49 +0100 |
commit | fb52104af74bbf6eeda394880666df40b4354aba (patch) | |
tree | 52b3318f050284cbac8ec96cac1701a1bf28f921 /src/retrace/backtrace.wsgi | |
parent | 5e89938bd01a92dd2166f78e5a3541c185bae10f (diff) | |
download | abrt-fb52104af74bbf6eeda394880666df40b4354aba.tar.gz abrt-fb52104af74bbf6eeda394880666df40b4354aba.tar.xz abrt-fb52104af74bbf6eeda394880666df40b4354aba.zip |
moved retrace server code to src/retrace
Diffstat (limited to 'src/retrace/backtrace.wsgi')
-rw-r--r-- | src/retrace/backtrace.wsgi | 42 |
1 files changed, 42 insertions, 0 deletions
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) |