User Retirement Scripts#

This directory contains python scripts which are migrated from the tubular respository. These scripts are intended to drive the user retirement workflow which involves handling the deactivation or removal of user accounts as part of the platform’s management process.

These scripts could be called from any automation/CD framework.

How to run the scripts#

Download the Scripts#

To download the scripts, you can perform a partial clone of the edx-platform repository to obtain only the required scripts. The following steps demonstrate how to achieve this. Alternatively, you may choose other utilities or libraries for the partial clone.

repo_url=git@github.com:openedx/edx-platform.git
branch=master
directory=scripts/user_retirement

git clone --branch $branch --single-branch --depth=1 --filter=tree:0 $repo_url
cd edx-platform
git sparse-checkout init --cone
git sparse-checkout set $directory

Create Python Virtual Environment#

Create a Python virtual environment using Python 3.12:

python3.12 -m venv ../venv
source ../venv/bin/activate

Install Pip Packages#

Install the required pip packages using the provided requirements file:

pip install -r scripts/user_retirement/requirements/base.txt

In-depth Documentation and Configuration Steps#

For in-depth documentation and essential configurations follow these docs

Documentation

Configuration Docs

Execute Script#

Execute the following shell command to establish entry points for the scripts

chmod +x scripts/user_retirement/entry_points.sh
source scripts/user_retirement/entry_points.sh

To retire a specific learner, you can use the provided example script:

retire_one_learner.py \
--config_file=src/config.yml \
--username=user1

Make sure to replace src/config.yml with the actual path to your configuration file and user1 with the actual username.

You can also execute Python scripts directly using the file path:

python scripts/user_retirement/retire_one_learner.py \
--config_file=src/config.yml \
--username=user1

Feel free to customize these steps according to your specific environment and requirements.

Run Test Cases#

Before running test cases, install the testing requirements:

pip install -r scripts/user_retirement/requirements/testing.txt

Run the test cases using pytest:

pytest scripts/user_retirement