Skip to content
This repository was archived by the owner on Jun 30, 2024. It is now read-only.

Commit df70c90

Browse files
committed
Move: Put Celery code in the BookServer.
Stop supporting old web2py-based LP problems as part of the move.
1 parent c4543b6 commit df70c90

File tree

7 files changed

+5
-1061
lines changed

7 files changed

+5
-1061
lines changed

controllers/ajax.py

Lines changed: 1 addition & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@
6060

6161
# Local application imports
6262
# -------------------------
63-
from feedback import is_server_feedback, fitb_feedback, lp_feedback
63+
from feedback import is_server_feedback, fitb_feedback
6464
from rs_practice import _get_qualified_questions
6565

6666
logger = logging.getLogger(settings.logger)
@@ -341,40 +341,6 @@ def hsblog():
341341
percent=pct,
342342
)
343343

344-
elif event == "lp_build" and auth.user:
345-
ret, new_fields = db.lp_answers._validate_fields(
346-
dict(sid=sid, timestamp=ts, div_id=div_id, course_name=course)
347-
)
348-
if not ret.errors:
349-
do_server_feedback, feedback = is_server_feedback(div_id, course)
350-
if do_server_feedback:
351-
try:
352-
code_snippets = json.loads(request.vars.answer)["code_snippets"]
353-
except Exception:
354-
code_snippets = []
355-
result = lp_feedback(code_snippets, feedback)
356-
# If an error occurred or we're not testing, pass the answer through.
357-
res.update(result)
358-
359-
# Record the results in the database.
360-
correct = result.get("correct")
361-
answer = result.get("answer", {})
362-
answer["code_snippets"] = code_snippets
363-
ret = db.lp_answers.validate_and_insert(
364-
sid=sid,
365-
timestamp=ts,
366-
div_id=div_id,
367-
answer=json.dumps(answer),
368-
correct=correct,
369-
course_name=course,
370-
)
371-
if ret.errors:
372-
res.setdefault("errors", []).append(ret.errors.as_dict())
373-
else:
374-
res["errors"] = ["No feedback provided."]
375-
else:
376-
res.setdefault("errors", []).append(ret.errors.as_dict())
377-
378344
response.headers["content-type"] = "application/json"
379345
if setCookie:
380346
response.cookies["ipuser"] = sid
@@ -1405,28 +1371,6 @@ def getAssessResults():
14051371
res["comment"] = srow.comment
14061372

14071373
return json.dumps(res)
1408-
elif event == "lp_build":
1409-
rows = (
1410-
db(
1411-
(db.lp_answers.div_id == div_id)
1412-
& (db.lp_answers.course_name == course)
1413-
& (db.lp_answers.sid == sid)
1414-
)
1415-
.select(
1416-
db.lp_answers.answer,
1417-
db.lp_answers.timestamp,
1418-
db.lp_answers.correct,
1419-
orderby=~db.lp_answers.id,
1420-
)
1421-
.first()
1422-
)
1423-
if not rows:
1424-
return "" # server doesn't have it so we load from local storage instead
1425-
answer = json.loads(rows.answer)
1426-
correct = rows.correct
1427-
return json.dumps(
1428-
{"answer": answer, "timestamp": str(rows.timestamp), "correct": correct}
1429-
)
14301374

14311375

14321376
def tookTimedAssessment():

docker/docker_tools.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -686,7 +686,7 @@ def _build_phase_1(
686686
"nano less ",
687687
)
688688

689-
# Build runguard and set up jobe users. Needed by `../modules/scheduled_builder.py`.
689+
# Build runguard and set up Jobe users. Needed by BookServer's ``internal/scheduled_builder.py```.
690690
xqt("mkdir /var/www/jobe")
691691
chdir("/var/www/jobe")
692692
xqt(

docker/docker_tools_misc.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,11 +87,11 @@ def _start_servers(dev: bool) -> None:
8787
# ``sudo`` doesn't pass root's env vars; provide only the env vars Celery needs when invoking it.
8888
xqt(
8989
'sudo -u www-data env "PATH=$PATH" "REDIS_URI=$REDIS_URI" '
90-
"poetry run celery --app=scheduled_builder worker --pool=threads "
90+
"poetry run celery --app=internal.scheduled_builder worker --pool=threads "
9191
"--concurrency=3 --loglevel=info "
9292
# Celery runs as the ``www-data`` user, so it doesn't have access to the root-owned log files (which are symbolic links to files owned by root -- changing permission doesn't work). Therefore, redirect output (as root) to make this work.
9393
"> /var/log/celery/access.log 2> /var/log/error.log &",
94-
cwd=f"{env.RUNESTONE_PATH}/modules",
94+
cwd=f"{env.BOOK_SERVER_PATH}/bookserver",
9595
)
9696

9797
xqt(

modules/common_builder.py

Lines changed: 0 additions & 266 deletions
This file was deleted.

0 commit comments

Comments
 (0)