Coursemology 2 now runs code evaluations directly and no longer needs an external evaluator. See this issue.
This is the evaluator program which will query Coursemology for pending evaluation jobs.
Setting up the Evaluator Slave
System Requirements
- Ruby (>= 2.1.0)
- Linux (tested on Ubuntu 14.04)
- Docker (the user the evaluator runs as must be able to talk to the Docker Remote API endpoint)
Getting Started
-
Install the gem
$ gem install coursemology-evaluator
-
Modify
.env
to suit your environment. Point to the host to your Coursemology instance, and specify the API email and API key.- You might need to configure a new user on your Coursemology instance, enable token
authentication, and grant the
auto_grader
system/instance permission.
- You might need to configure a new user on your Coursemology instance, enable token
authentication, and grant the
-
Start the evaluator using the Procfile. You can use foreman or any similar tool to generate system scripts for boot.
Command Line Options
Compulsory Options
-
--host
: Coursemology host to connect to -
--api-user-email
: User with autograder flag set -
--api-token
: Authentication token of the user
Optional Options
Time options are expected to be strings in ISO8601 format.
-
--interval
: Time interval between checks for programming allocations. As this time is expected to be short, specify it with the time components of ISO8601 only. (Hours, minutes, seconds) The time designatorT
must be left out. -
--lifetime
: Length of time to cache Docker images. This is expected to be in the order of days. If more granularity is needed, the time designator is required.
E.g. 1DT2H5M10S
-
--one-shot
: Runs once and terminates. Primarily used for testing. -
--sleep
: Length of time to sleep before the first check for programming allocations. This time is expected to be short and has the same restrictions as those for--interval
.
Useful for staggering the start times of multiple processes when managed with systemd.