Skip to content

Commit 53fb793

Browse files
committed
- Merged master
- Splitted a function into 3 functions - Changed some functions names
2 parents 4c74eb2 + f3ed156 commit 53fb793

30 files changed

+903
-114
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,3 +135,4 @@ yarn-error.log*
135135
lms/lmsweb/config.py
136136
db.sqlite
137137
vim.session
138+
devops/rabbitmq.cookie

devops/build.sh

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@ SCRIPT_FILE_PATH=$(readlink -f "${0}")
44
SCRIPT_FOLDER=$(dirname "${SCRIPT_FILE_PATH}")
55
MAIN_FOLDER="${SCRIPT_FOLDER}/.."
66

7-
echo "Asking for sudo to chown the rabbitmq cookie:"
8-
sudo chown "$USER:$USER" "$SCRIPT_FOLDER/rabbitmq.cookie"
7+
echo "Using sudo to remove the old erlang cookie"
8+
ERLANG_COOKIE_FILE="${SCRIPT_FOLDER}/rabbitmq.cookie"
9+
sudo rm -f "$ERLANG_COOKIE_FILE"
910

1011
echo "Running build on folder ${MAIN_FOLDER}"
1112
( cd "${MAIN_FOLDER}" && docker build -t lms . )

devops/lms.yml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@ version: "3"
22

33
services:
44
db:
5-
image: postgres:13-alpine
5+
image: postgres:14-alpine
66
ports:
77
- 5432:5432
88
volumes:
99
- db-data-volume:/pg_data
1010
environment:
11-
- PGDATA=/pg_data/13/data
11+
- PGDATA=/pg_data/14/data
1212
- POSTGRES_DB=${DB_NAME:-db}
1313
- POSTGRES_USER=${DB_USERNAME:-postgres}
1414
- POSTGRES_PASSWORD=${DB_PASSWORD:-postgres}
@@ -97,6 +97,7 @@ services:
9797
volumes:
9898
- ../lms:/app_dir/lms
9999
- ../../notebooks-tests:/app_dir/notebooks-tests
100+
- repositories-data-volume:/repositories
100101
environment:
101102
- DB_NAME=${DB_NAME:-db}
102103
- DB_USER=${DB_USERNAME:-postgres}
@@ -109,6 +110,7 @@ services:
109110
- CELERY_CHECKS_PUBLIC_VHOST=lmstests-public
110111
- CELERY_RABBITMQ_HOST=rabbitmq
111112
- CELERY_RABBITMQ_PORT=5672
113+
- REPOSITORY_FOLDER=/repositories
112114
links:
113115
- db
114116
- rabbitmq
@@ -126,6 +128,7 @@ volumes:
126128
docker-engine-lib:
127129
db-data-volume:
128130
rabbit-data-volume:
131+
repositories-data-volume:
129132

130133

131134
networks:

devops/rabbitmq.cookie

Lines changed: 0 additions & 1 deletion
This file was deleted.

devops/start.sh

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,12 @@ else
77
echo "Using default dev variables"
88
fi
99

10-
1110
SCRIPT_FILE_PATH=$(readlink -f "${0}")
1211
SCRIPT_FOLDER=$(dirname "${SCRIPT_FILE_PATH}")
12+
ERLANG_COOKIE_FILE="${SCRIPT_FOLDER}/rabbitmq.cookie"
13+
14+
echo erlang_cookie=AAVyo5djdSMGIZXiwEQs3JeVaBx5l14z > "$ERLANG_COOKIE_FILE"
15+
chmod 600 "$ERLANG_COOKIE_FILE"
1316

1417
docker network create lms
1518

devops/upgrade_pg/upgrade.sh

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,20 @@
11
docker stop lms_db_1
22

33
# Put values here if you've configured them before
4-
# DB_NAME=lms
5-
# DB_USERNAME=lmsweb
6-
# DB_PASSWORD=
4+
CURRENT_VERSION=11
5+
NEW_VERSION=14
6+
DB_NAME=lms
7+
DB_USERNAME=lmsweb
8+
DB_PASSWORD=
9+
10+
echo "Remove these two lines to indicate you have filled the details"
11+
return 1
712

813
CURRENT_DATE=$(date +%d-%m-%Y_%H_%M_%S)
914
MOUNT_PATH=/pg_data
10-
PG_OLD_DATA=/pg_data/11/data
11-
PG_NEW_DATA=/pg_data/13/data
12-
BACKUP_FILENAME=v11.$CURRENT_DATE.sql
15+
PG_OLD_DATA=/pg_data/${CURRENT_VERSION}/data
16+
PG_NEW_DATA=/pg_data/${NEW_VERSION}/data
17+
BACKUP_FILENAME=v${CURRENT_VERSION}.${CURRENT_DATE}.sql
1318
BACKUP_PATH=$MOUNT_PATH/backup/$BACKUP_FILENAME
1419
BACKUP_DIR=$(dirname "$BACKUP_PATH")
1520
VOLUME_NAME=lms_db-data-volume
@@ -20,7 +25,7 @@ docker run --rm -v $VOLUME_NAME:$MOUNT_PATH \
2025
-e POSTGRES_DB="${DB_NAME:-db}" \
2126
-e POSTGRES_USER="${DB_USERNAME:-postgres}" \
2227
-e POSTGRES_PASSWORD="${DB_PASSWORD:-postgres}" \
23-
postgres:11-alpine \
28+
postgres:${CURRENT_VERSION}-alpine \
2429
/bin/bash -c "chown -R postgres:postgres $MOUNT_PATH \
2530
&& su - postgres /bin/bash -c \"/usr/local/bin/pg_ctl -D \\\"\$PGDATA\\\" start\" \
2631
&& mkdir -p \"$BACKUP_DIR\" \
@@ -33,7 +38,7 @@ docker run --rm -v $VOLUME_NAME:$MOUNT_PATH \
3338
-e POSTGRES_DB="${DB_NAME:-db}" \
3439
-e POSTGRES_USER="${DB_USERNAME:-postgres}" \
3540
-e POSTGRES_PASSWORD="${DB_PASSWORD:-postgres}" \
36-
postgres:13-alpine \
41+
postgres:$NEW_VERSION-alpine \
3742
/bin/bash -c "ls -la \"$BACKUP_DIR\" \
3843
&& mkdir -p \"\$PGDATA\" \
3944
&& chown -R postgres:postgres \"\$PGDATA\" \
@@ -43,3 +48,5 @@ docker run --rm -v $VOLUME_NAME:$MOUNT_PATH \
4348
&& su - postgres -c \"psql -f $BACKUP_PATH\" \
4449
&& printf \"\\\nhost all all all md5\\\n\" >> \"\$PGDATA/pg_hba.conf\" \
4550
"
51+
echo "Upgrade finished. Check for bad log messages. If none found, rerun:"
52+
echo "source ./build.sh && source ./start.sh && source ./bootstrap.sh"

lms/lmsdb/bootstrap.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -287,10 +287,20 @@ def _add_exercise_course_id_and_number_columns_constraint() -> bool:
287287
db_config.database.commit()
288288

289289

290+
def _add_user_course_constaint() -> bool:
291+
migrator = db_config.get_migrator_instance()
292+
with db_config.database.transaction():
293+
migrate(
294+
migrator.add_index('usercourse', ('user_id', 'course_id'), True),
295+
)
296+
db_config.database.commit()
297+
298+
290299
def _last_status_view_migration() -> bool:
291300
Solution = models.Solution
292301
_migrate_column_in_table_if_needed(Solution, Solution.last_status_view)
293302
_migrate_column_in_table_if_needed(Solution, Solution.last_time_view)
303+
return True
294304

295305

296306
def _uuid_migration() -> bool:
@@ -299,25 +309,37 @@ def _uuid_migration() -> bool:
299309
return True
300310

301311

312+
def _assessment_migration() -> bool:
313+
Solution = models.Solution
314+
_add_not_null_column(Solution, Solution.assessment)
315+
return True
316+
317+
302318
def main():
303319
with models.database.connection_context():
304320
if models.database.table_exists(models.Exercise.__name__.lower()):
305321
_add_exercise_course_id_and_number_columns_constraint()
306322

307323
if models.database.table_exists(models.Solution.__name__.lower()):
308324
_last_status_view_migration()
325+
_assessment_migration()
309326

310327
if models.database.table_exists(models.User.__name__.lower()):
311328
_api_keys_migration()
312329
_last_course_viewed_migration()
313330
_uuid_migration()
314331

332+
if models.database.table_exists(models.UserCourse.__name__.lower()):
333+
_add_user_course_constaint()
334+
315335
models.database.create_tables(models.ALL_MODELS, safe=True)
316336

317337
if models.Role.select().count() == 0:
318338
models.create_basic_roles()
319339
if models.User.select().count() == 0:
320340
models.create_demo_users()
341+
if models.SolutionAssessment.select().count() == 0:
342+
models.create_basic_assessments()
321343
if models.Course.select().count() == 0:
322344
course = models.create_basic_course()
323345
_exercise_course_migration(course)

0 commit comments

Comments
 (0)