Corbie

Start

A real run

The same machine runs on a controller and a runner, and its record stays in a store.

corbie test runs everything in one process and keeps nothing. To keep runs, start a controller and a runner once and submit runs to them.

Set up

corbie init --ceiling all --name laptop  Next: corbie start

init creates a controller, a runner and a client in the config directory, ~/.config/corbie, and the store in it. --name laptop names them laptop-controller, laptop-runner and laptop-client. --ceiling all sets the most any job on this computer may be allowed, and a job still gets only what its own allow: list grants.

Start the processes

corbie start &

This command keeps running, in its own terminal or in the background as here.

Submit a run

corbie run submit title.yaml --input '{"url": "https://example.com"}'

run submit writes the definition, the script and the input to the store, prints the run's ID and exits. The controller starts the run. <id> below is that ID.

corbie run show <id> --wait  input: {"url":"https://example.com"}  output: {"title":"Example Domain","url":"https://example.com"}  used: net:example.com:443

--wait returns when the run has ended.

Read the record

corbie run show <id> --record  step 1  <- start {"url":"https://example.com"}  step 1  -> job get_title: a script, on laptop-runner  step 2  <- done from get_title {"title":"Example Domain","url":"https://example.com"}  step 2  done

The record holds every step of the run. <- is an event the machine received and -> is a job it started. At step 1 the controller received the start message and sent the script to the runner, and at step 2 it received the result and ended the run.

The store

The record is files in ~/.config/corbie/store, which corbie run show reads. Stop corbie start with Ctrl-C and corbie run show <id> prints the same result. A run submitted while no controller is running is shown as waiting.

Next: Install covers running Corbie on several computers, on a bucket and as serverless functions.