Each Classy VM is assigned a hostname that is re-used for a course. As Classy is not designed to run multiple instances on a host, term transitions require an exact end-date. The end-date marks a time that data from the prior term will no longer be modified and can safely be archived on a network storage location without disruption to a course.
GitHub re-configuration and VM re-configuration must occur.
- Database:
/cs/portal-backup/$HOSTNAME/classy/$org/
- Grading runs:
/cs/portal-backup/$HOSTNAME/classy/$org/runs-$(date +\%Y\%m\%dT\%H\%M\%S)
There are two types of data to archive:
- MongoDB
gzip
data dump - Container grading run tarball
MongoDB offers the mongodump
tool to dump the database and automatically export the database dump in gzip
format. The database username and password are required for this operation, which can be found in the .env
file in the /opt/classy
folder.
The grading runs of a course consist of student assignments, log information, and results that are stored on the Classy VM filesystem in the path specified in the HOST_DIR
attribute in the .env
file.
Two scripts can perform the database dump and grading run archive operations:
/opt/classy-scripts/archive-classy-runs.sh
/opt/classy-scripts/backup-classy-db.sh
A CRON job is configured to automatically back up the database and grading run data. After the end-date of the semester transition, it is no longer necessary to retain the back-ups created by the CRON jobs. Hence, delete all the database and grading run back-ups prior to the last back-up and archive of the database.
- Staff and faculty have agreed on an end-date when Classy archiving can take place without disrupting course operations
- Database has been backed-up to Back-up storage location
- Script:
/opt/classy-scripts/backup-classy-db.sh
- Script:
- Grading runs have been archived to Archive storage location
- Script:
/opt/classy-scripts/archive-classy-runs.sh
- Script:
- Once database has been backed-up, host MongoDB volume mount location has been deleted
- Command:
rm -rf /var/opt/classy/db/*
- Command:
- Once grading runs have been archived, host filesystem run have been deleted
- Command:
rm -rf /var/opt/classy/runs/*
- Command:
- ClassList API sections and term have been updated in
/opt/classy/.env
file.- Course sections found here: Course Schedule
- A new GitHub organization namespace has been created for the term (ie. cpsc210-2019w-t1)
- Instructions: Add Students and Staff to GitHub Organization
- Only the last two database and grading run back-ups are retained
- All grading run and database back-ups prior to the last back-ups have been deleted
- If another course is being offered next term, configure a new GitHub organization for the term
- A new OAuth application has been created under the new GitHub organization and integrated in the
/opt/classy/.env
file- Instructions: Setup GitHub OAuth
- An instructor may request additional GitHub configuration steps, such as adding TAs as organization owners