Pass course-run-specific resource limits to codejail
The limits can be defined in settings.CODE_JAIL['limits_overrides'], which is a dict mapping context ids (generally, course run keys) to overrides to be applied to settings.CODE_JAIL['limits']. This will allow us to temporarily alter the codejail limits for certain contexts in order to enable, for example, a certain course run's tasks to run longer while a large exam's grades are recomputed. TNL-7649
This commit is contained in:
committed by
Kyle McCormick
parent
a82ce035eb
commit
758c2b02a1
@@ -17,7 +17,14 @@ from openedx.core.djangolib.markup import HTML
|
||||
@login_required
|
||||
@ensure_csrf_cookie
|
||||
def run_python(request):
|
||||
"""A page to allow testing the Python sandbox on a production server."""
|
||||
"""
|
||||
A page to allow testing the Python sandbox on a production server.
|
||||
|
||||
Runs in the override context "debug_run_python", so resource limits with come first from:
|
||||
CODE_JAIL['limit_overrides']['debug_run_python']
|
||||
and then from:
|
||||
CODE_JAIL['limits']
|
||||
"""
|
||||
if not request.user.is_staff:
|
||||
raise Http404
|
||||
c = {}
|
||||
@@ -27,7 +34,7 @@ def run_python(request):
|
||||
py_code = c['code'] = request.POST.get('code')
|
||||
g = {}
|
||||
try:
|
||||
safe_exec(py_code, g)
|
||||
safe_exec(py_code, g, limit_overrides_context="debug_run_python")
|
||||
except Exception: # pylint: disable=broad-except
|
||||
c['results'] = traceback.format_exc()
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user