This is a RESTful API which provides a convenient way for interaction with different types of grid engines (SGE, SLURM, etc.)
- Helps to unify work with different types of grid engines
- Allows to simplify interaction with different grid engines for other services
- Provides remote interaction with grid engines
To build and run this application locally you'll need Java 11 or later, Git and Docker to be installed on your computer. From your command line:
# Clone this repository
$ git clone https://github.com/ekazachkova/grid-engine-api.git
# Go into the repository
$ cd grid-engine-api
# Build
$ ./gradlew build
# Run the app
$ java -jar build/libs/grid-engine-api-1.0-SNAPSHOT.jar
# Clone this repository
$ git clone https://github.com/ekazachkova/grid-engine-api.git
# Go into the repository
$ cd grid-engine-api
# Build
$ ./gradlew build
# Build Docker image
$ docker build -f ./docker/Dockerfile -t grid-engine-api:latest .
# Run Docker image
$ docker run -d -p 8080:8080 grid-engine-api:latest
For more information please see
The figure shows schematically how the application is arranged. It is logically divided into three levels:
- Controllers - provide an interface for interacting with the application;
- Services - contain common code (not related to any grid-engine: preprocessing, verification, etc.) and also connect the API with the provider;
- Providers - implement interaction of the application directly with the underlying client of the cluster (SGE, Slurm, etc.), file system, etc.
API Reference docs can be found here
Developer guide can be found here