Skip to content

Commit

Permalink
feat: Drop the use of the Tubular repository
Browse files Browse the repository at this point in the history
The Tubular repository has been deplrecated and the relevant
scripts have been moved to the edx-platform codebase.

* Drop the use of the Tubulas repository and install the retirement
  scripts from edx-platform..
* Add support for Tutor 18 / Open edX Redwood.

Fixes: #32
  • Loading branch information
Maari Tamm committed Aug 6, 2024
1 parent 93e40bd commit 5f2e6f3
Show file tree
Hide file tree
Showing 6 changed files with 19 additions and 13 deletions.
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
## Unreleased

* [BREAKING CHANGE] Add support for Tutor 18 and Open edX Redwood.
The Tubular repository has been deprecated and the relevant scripts
have been moved to the `edx-platform` repository (https://github.com/openedx/axim-engineering/issues/881); the plugin now installs the scripts from there.

## Version 3.4.0 (2024-08-01)

* [Bug fix] Complete the removal of (not-ever-working) support for the Ecommerce service, by also removing references to that service from the `openedx-lms-common-settings` patch.
Expand Down
4 changes: 2 additions & 2 deletions tutorretirement/patches/k8s-jobs
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,11 @@ spec:
command:
- 'bash'
- '-e'
- 'run_retirement_pipeline.sh'
- 'scripts/user_retirement/run_retirement_pipeline.sh'
- '{{ RETIREMENT_COOL_OFF_DAYS }}'
volumeMounts:
- name: pipeline-config
mountPath: '/tubular/pipeline_config/config.yml'
mountPath: '/edx-platform/scripts/user_retirement/pipeline_config/config.yml'
subPath: config.yml
volumes:
- name: pipeline-config
Expand Down
2 changes: 1 addition & 1 deletion tutorretirement/patches/local-docker-compose-jobs-services
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
retirement-job:
image: {{ RETIREMENT_DOCKER_IMAGE }}
volumes:
- ../plugins/retirement/build/retirement/pipeline_config:/tubular/pipeline_config
- ../plugins/retirement/build/retirement/pipeline_config:/edx-platform/scripts/user_retirement/pipeline_config
depends_on:
- lms
4 changes: 2 additions & 2 deletions tutorretirement/plugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
"DOCKER_IMAGE": "{{ DOCKER_REGISTRY }}retirement:{{ RETIREMENT_VERSION }}", # noqa: E501
"EDX_OAUTH2_CLIENT_ID": "retirement_service_worker",
"COOL_OFF_DAYS": 30,
"TUBULAR_VERSION": "{{ OPENEDX_COMMON_VERSION }}",
"K8S_CRONJOB_HISTORYLIMIT_FAILURE": 1,
"K8S_CRONJOB_HISTORYLIMIT_SUCCESS": 3,
"K8S_CRONJOB_SCHEDULE": "0 0 * * *",
Expand Down Expand Up @@ -51,7 +50,8 @@ def retire_users(context):
cool_off_days = config["RETIREMENT_COOL_OFF_DAYS"]
job_runner.run_task(
service="retirement",
command=f"bash -e run_retirement_pipeline.sh {cool_off_days}"
command="bash -e scripts/user_retirement/run_retirement_pipeline.sh "
f"{cool_off_days}"
)


Expand Down
10 changes: 5 additions & 5 deletions tutorretirement/templates/retirement/build/retirement/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ ENV PYTHONUNBUFFERED 1
RUN python3 -m venv /retirement/venv/
ENV PATH "/retirement/venv/bin:$PATH"
RUN apt-get update && \
git clone --depth 1 --branch {{ RETIREMENT_TUBULAR_VERSION }} https://github.com/openedx/tubular.git ./tubular
WORKDIR ./tubular
COPY run_retirement_pipeline.sh .
git clone --depth 1 --branch {{ OPENEDX_COMMON_VERSION }} https://github.com/openedx/edx-platform.git
WORKDIR ./edx-platform
COPY run_retirement_pipeline.sh scripts/user_retirement/
RUN pip install --upgrade pip && \
pip install -r requirements.txt --exists-action w && \
mkdir learners_to_retire
pip install -r scripts/user_retirement/requirements/base.txt --exists-action w && \
mkdir scripts/user_retirement/learners_to_retire
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
cool_off_days=$1
python scripts/get_learners_to_retire.py --config_file=./pipeline_config/config.yml --output_dir=learners_to_retire --cool_off_days="$cool_off_days"
for filename in learners_to_retire/*;do
python scripts/user_retirement/get_learners_to_retire.py --config_file=scripts/user_retirement/pipeline_config/config.yml --output_dir=scripts/user_retirement/learners_to_retire --cool_off_days="$cool_off_days"
for filename in scripts/user_retirement/learners_to_retire/*;do
if test ! -f "$filename";then
echo "No users to retire"
continue
else
IFS="=" read -r name username <"$filename"
echo "Retiring $username"
python scripts/retire_one_learner.py --config_file=./pipeline_config/config.yml --username="$username"
python scripts/user_retirement/retire_one_learner.py --config_file=scripts/user_retirement/pipeline_config/config.yml --username="$username"
fi
done

0 comments on commit 5f2e6f3

Please sign in to comment.