From e798549e8f2c2686892cce9ef2f71a1064d864b0 Mon Sep 17 00:00:00 2001 From: Lucian Cojocar Date: Mon, 11 Aug 2014 18:18:08 +0000 Subject: [PATCH] web_services: callback: define VMCHECKER_HOME in apache conf If HOME variable is not defined (which can happen depending on the setup) then the callback functions will fail because the search path for the key is relative to this variable. Signed-off-by: Lucian Cojocar --- web_services/services.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/web_services/services.py b/web_services/services.py index cbf836f..f75aecc 100644 --- a/web_services/services.py +++ b/web_services/services.py @@ -39,6 +39,9 @@ ERR_OTHER = 3 +def __fixup_env(req): + if 'HOME' not in os.environ: + os.environ['HOME'] = req.get_options()["VMCHECKER_HOME"] ########## @ServiceMethod def uploadedFile(req, courseId, assignmentId, tmpname): @@ -73,6 +76,7 @@ def uploadedFile(req, courseId, assignmentId, tmpname): strout = websutil.OutputString() sys.stdout = strout try: + __fixup_env(req) submit.submit(tmpname, assignmentId, username, courseId) update_db.update_grades(courseId, user=username, assignment=assignmentId) except submit.SubmittedTooSoonError: @@ -136,6 +140,7 @@ def uploadAssignment(req, courseId, assignmentId, archiveFile): strout = websutil.OutputString() sys.stdout = strout try: + __fixup_env(req) submit.submit(tmpname, assignmentId, username, courseId) update_db.update_grades(courseId, user=username, assignment=assignmentId) except submit.SubmittedTooSoonError: @@ -192,6 +197,7 @@ def uploadAssignmentMd5(req, courseId, assignmentId, md5Sum): strout = websutil.OutputString() sys.stdout = strout try: + __fixup_env(req) submit.submit(tmpname, assignmentId, username, courseId) update_db.update_grades(courseId, user=username, assignment=assignmentId) except submit.SubmittedTooSoonError: @@ -249,6 +255,7 @@ def beginEvaluation(req, courseId, assignmentId, archiveFileName): sys.stdout = strout try: + __fixup_env(req) submit.evaluate_large_submission(archiveFileName, assignmentId, username, courseId) except submit.SubmittedTooSoonError: traceback.print_exc(file = strout)