Skip to content

CBICA/IPP-be

Repository files navigation

IPP backend

Overview

Runs experiments submitted to the IPP using DRMAA (specifically dgruber/drmaa2os).

First the program creates a SSH tunnel to the API server (as the backend routes only accepts connections from localhost) then fetches experiment definitions from queue (/experiments/queue). Experiments consist of a host (where to run job), user, app and key-value pairs that contain the app parameters the user submitted in the form. Apps themselves are defined in experiment definitions. For each experiment, input files are downloaded (/experiments/{eid}/files) and placed in ./inputs, and the experiment is turned into a job which formats the experiment parameters according to the app definition. The job is then run, the results directory is zipped and uploaded back to the API server (/experiments/{eid}/results), then the input files are deleted (/experiments/{eid}/delete).

Installation

In development, just go run

go mod download # install dependancies; only has to be run once
cd src
go run main.go

In production, go build can be used to create an optimized binary; refer to the Dockerfile

cd src
go build -o /path/to/optimized/binary

Note that root@localhost is hardcoded as the SSH login for the API server, and localhost:5000 is hardcoded as the address of the API web server, running within the SSH host; these can be adjusted at the top of main.go.

About

Image processing portal v2 beta backend

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published