Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
254 commits
Select commit Hold shift + click to select a range
1a643cc
Update job submitter to use abstract batch system
nikhil Feb 7, 2025
26e2d4f
Add SLURM arguments and made LSF env optional
nikhil Feb 7, 2025
58663fd
Add batch system and SLURM setting
nikhil Feb 7, 2025
e7b6a78
Add SLURM client
nikhil Feb 7, 2025
7ff1008
Add black formatting
nikhil Feb 7, 2025
20dc84b
Update lsf client tests
nikhil Feb 7, 2025
fc9a49e
Added SLURM tests
nikhil Feb 7, 2025
ea4eb2a
Fixed batch system import
nikhil Feb 7, 2025
807d461
Fixed sacctl parsing
nikhil Feb 7, 2025
587eae3
Removed lsf references
nikhil Feb 7, 2025
1e868bf
Slight fixes to SLURM tests
nikhil Feb 7, 2025
d7eaf5a
Increased release number
nikhil Feb 7, 2025
4c585d4
Updated black formatting
nikhil Feb 7, 2025
74c199c
Flake8 fixes
nikhil Feb 7, 2025
c9ac3f2
Fix pyproject.toml
nikhil Feb 10, 2025
ec6682d
Remove flake8 test
nikhil Feb 10, 2025
c2687bd
Revert "Remove flake8 test"
nikhil Feb 10, 2025
1f28f9f
Ignore W503 flake errors
nikhil Feb 10, 2025
91d6fda
Add dockerfile
nikhil Feb 18, 2025
4fcd571
Made pip install more consistent
nikhil Feb 18, 2025
5463f07
Add compose files
nikhil Mar 4, 2025
46d9f74
Updated psycopg2-binary
nikhil Mar 5, 2025
520801f
Add setting for memcached host
nikhil Mar 5, 2025
3339a67
Update docker image and revert psycopg2-binary update
nikhil Mar 5, 2025
b27f10d
Update dockerfile build branch
nikhil Mar 5, 2025
98f8ee9
Removed elastic apm artifact
nikhil Mar 13, 2025
e6296e5
Updated dockerfile to build faster and slimmer
nikhil Mar 13, 2025
e19b6e5
Added missing ps package
nikhil Mar 13, 2025
a28359b
Fixed a typo
nikhil Mar 18, 2025
1b42b94
Merge branch 'feature/IRIS_update' of github.com:mskcc/ridgeback into…
nikhil Mar 18, 2025
6976bb2
Set workdir for sbatch submission
nikhil Mar 19, 2025
8d6b557
Fixed sacct commands
nikhil Mar 19, 2025
3a569dc
Handle command as a list
nikhil Mar 19, 2025
845ed0c
Fix slurm status collection
nikhil Mar 19, 2025
630c93e
Upgraded TOIL to 8.0.0
nikhil Mar 19, 2025
65ab0e7
Updated image
nikhil Mar 19, 2025
06c4e91
Formatting fixes
nikhil Apr 1, 2025
7660458
Print status name when using console output
nikhil Apr 1, 2025
c4c585e
Adapted functions to work with TOIL version 8
nikhil Apr 1, 2025
e4feb01
Added helper functions for new TOIL
nikhil Apr 1, 2025
ccdf87e
Added TOIL 8.0.0 test data
nikhil Apr 1, 2025
864f457
Update toil 8.0.0 test dataset
nikhil Apr 1, 2025
5a2eb72
Increased length for job id
nikhil Apr 1, 2025
fb182af
Update to handle SLURM pending jobs
nikhil Apr 1, 2025
d33f8c7
Update the toil command for 8.0.0
nikhil Apr 1, 2025
f71f6b9
Separate out the bus function for easier mocking
nikhil Apr 1, 2025
0091907
Update tests to work with TOIL 8.0.0
nikhil Apr 1, 2025
afd716f
Update tests to submit with command as a list
nikhil Apr 1, 2025
3342811
Added black formatting
nikhil Apr 1, 2025
90be9dd
Updated python versions for test image
nikhil Apr 1, 2025
6eae2db
Update github actions container
nikhil Apr 1, 2025
68d56f1
Flake8 fixes
nikhil Apr 1, 2025
9db8ad0
Cleanup travis test image
nikhil Apr 1, 2025
90e79ce
Update test build images
nikhil Apr 1, 2025
f7e54b0
Downgrade postgresql in travis test
nikhil Apr 1, 2025
9039ec3
Simplify postgres installation on travis
nikhil Apr 2, 2025
5a4e87a
More travis image updates
nikhil Apr 2, 2025
d9c654a
Set postgres port env
nikhil Apr 2, 2025
006de10
Update postgres port
nikhil Apr 2, 2025
5cf3823
Update test for tools without a log path
nikhil Apr 2, 2025
897ee03
Remove migration to merge with develop
nikhil Apr 2, 2025
eeaa144
Merge branch 'develop' of github.com:mskcc/ridgeback into feature/IRI…
nikhil Apr 2, 2025
adc8224
Added extra migration
nikhil Apr 2, 2025
e2a83be
Added black formatting
nikhil Apr 2, 2025
2bf96b8
Update test to work with missing tool log from tracking
nikhil Apr 2, 2025
4a8143c
Bump version
nikhil Apr 2, 2025
f0010fb
Fix env typo
nikhil Apr 2, 2025
5ac07ff
Update compose.yaml file
nikhil Apr 9, 2025
c2be6e1
Merge branch 'feature/IRIS_update' of github.com:mskcc/ridgeback into…
nikhil Apr 9, 2025
ee26c08
Add install updates for Dockerfile
nikhil Apr 29, 2025
16a3650
Update slurm walltime arg
nikhil Apr 29, 2025
d62df4f
Set memlimit properly in Slurm
nikhil Apr 30, 2025
aa9762b
Formatting fixes
nikhil Apr 30, 2025
3527b4b
Add network to compose
nikhil Apr 30, 2025
0c3be54
Configure file and group permissions
nikhil Apr 30, 2025
458bfe5
Merge branch 'feature/IRIS_update' of github.com:mskcc/ridgeback into…
nikhil Apr 30, 2025
d62cec0
Remove memlimit which should not be in tool args
nikhil May 2, 2025
ea033d6
Add compose update
nikhil May 2, 2025
cd2c00b
Add tests for SLUM and updated tests
nikhil May 2, 2025
51b42db
Removed unused import
nikhil May 2, 2025
31c246f
Updated python build in the Dockerfile
nikhil May 3, 2025
d6251d3
Remove stats so toil will clean jobstore onSuccess
nikhil May 5, 2025
ea2ee9a
Added output parser for new TOIL
nikhil May 5, 2025
4e799c9
Merge branch 'develop' of github.com:mskcc/ridgeback into feature/IRI…
nikhil May 6, 2025
d8c9651
Version bump
nikhil May 6, 2025
8624c51
Added back debug flag
nikhil May 6, 2025
43dfa6c
Revert "Added back debug flag"
nikhil May 7, 2025
bf9480d
Update toil to not kill slow start jobs
nikhil May 13, 2025
00dd73c
Add argument to set number of tasks
nikhil May 13, 2025
d7a675b
Add ssh to docker container
nikhil May 13, 2025
11e4e9c
Added another cwl output parser
nikhil May 14, 2025
ca9659d
Bumped max cores to 40 to allow certain pipelines to run
nikhil Jun 3, 2025
518d19b
Made single machine cores configurable
nikhil Jun 3, 2025
a201856
Bypass filestore creation to reduce disk footprint
nikhil Jun 9, 2025
80589bb
Remove bypass-filestore as it introduces run instability
nikhil Jun 11, 2025
9737454
Update handling walltime in nextflow
nikhil Jun 11, 2025
a02a7ca
Set default mem_limit in Slurm
nikhil Jun 16, 2025
d4a285c
new virtual environment
Jul 7, 2025
74af65f
remove new toil arguments
Jul 8, 2025
50305b3
black format
Jul 8, 2025
8280186
Merge pull request #383 from mskcc/feature/IRIS_update_xsv1
nikhil Jul 8, 2025
9c5b993
Update pep spec in requirements-toil.txt
nikhil Jul 8, 2025
19da54a
get conda env from settings
Jul 16, 2025
3b8c307
add env to xsv1 command
Jul 23, 2025
61bbf72
fix settings format
Jul 23, 2025
3bb6c54
Merge pull request #384 from mskcc/feature/IRIS_update_xsv1
buehlere Jul 23, 2025
7f43108
Update toil_jobsubmitter.py
Jul 23, 2025
2ed6d0a
Merge pull request #387 from mskcc/feature/IRIS_update_xsv1
nikhil Jul 23, 2025
0bfde67
Update toil_jobsubmitter.py
Jul 23, 2025
6073f55
Update toil_jobsubmitter.py
Jul 25, 2025
25cb603
Update toil_jobsubmitter.py
Jul 25, 2025
db57f1c
Update toil_jobsubmitter.py
Jul 30, 2025
a065e4e
Added user model to job and userswitcher function
nikhil Jul 30, 2025
2d1d39f
Implement userswitch on user dependent functions
nikhil Jul 30, 2025
8be3f47
Added batch system specific function for env export
nikhil Jul 30, 2025
a4525e6
Add env export to ACCESS legacy
nikhil Jul 30, 2025
8c41d23
Merge pull request #388 from mskcc/feature/IRIS_update_xsv1
buehlere Jul 30, 2025
46a8b89
Make user an optional parameter
nikhil Jul 31, 2025
fcba407
Make sure resume is using the right user
nikhil Jul 31, 2025
45265eb
Fix flake test
nikhil Jul 31, 2025
1cf05d6
Fix test using the default user
nikhil Jul 31, 2025
c6a4b06
Add user and groups to the image
nikhil Jul 31, 2025
4330672
Connect to centrify in the docker container
nikhil Jul 31, 2025
591c36a
Formatting fixes
nikhil Jul 31, 2025
e417e45
Add collab and test mounts
nikhil Jul 31, 2025
1d01cb4
Add userswitch settings
nikhil Jul 31, 2025
2db3c4a
Added black formatting
nikhil Jul 31, 2025
c9f35dd
Remove group add
nikhil Jul 31, 2025
defc0df
Add function for defaults handling to prevent schema changes
nikhil Aug 5, 2025
efa28be
Added migration file
nikhil Aug 5, 2025
559a082
Update user/group creation in docker
nikhil Aug 5, 2025
dc06f73
Fixed bug on env handling
nikhil Aug 5, 2025
8fa32b7
Update test_tasks.py
Aug 7, 2025
efec791
fixing batch system statement
Aug 7, 2025
6b154b7
Revert "Update test_tasks.py"
Aug 7, 2025
ea30ae4
Added black formatting
nikhil Aug 8, 2025
1ad1572
Merge pull request #390 from mskcc/feature/IRIS_update_xsv1
nikhil Aug 8, 2025
d7d70f0
Added ipython
nikhil Aug 13, 2025
e60137b
Fix app resolution per user
nikhil Aug 13, 2025
b43a282
Fix batch system env handling
nikhil Aug 13, 2025
0593f4a
Ensure user information on parent objects
nikhil Aug 13, 2025
fbefbed
Better handling of edge cases
nikhil Aug 13, 2025
2180681
Update user script for user specific functions
nikhil Aug 13, 2025
086abd8
Merge remote-tracking branch 'refs/remotes/origin/feature/IRIS_update…
nikhil Aug 13, 2025
999ace3
Add black formatting
nikhil Aug 13, 2025
1760d35
Added groups for compose
nikhil Aug 13, 2025
6979b37
Flake8 fixes
nikhil Aug 13, 2025
7d883d8
Lock postgres to os version
nikhil Aug 13, 2025
e83b497
Changes to allow multiple instances to run concurrently
nikhil Aug 19, 2025
c2703dc
Updated build for Docker
nikhil Sep 2, 2025
999eb16
Corrected python dev install step
nikhil Sep 2, 2025
7d8e54f
Fixed typo
nikhil Sep 2, 2025
4c34c3e
Fixing python install
nikhil Sep 2, 2025
2fe7a87
Install the proper python version
nikhil Sep 2, 2025
f23b28b
Update python install
nikhil Sep 2, 2025
42e7afb
Update apt install
nikhil Sep 2, 2025
ebb9d62
Some more image fixes
nikhil Sep 2, 2025
10b3137
Fixed docker image
nikhil Sep 2, 2025
5840079
Update image for python 3.10
nikhil Sep 2, 2025
97dac2b
Keep build essential for venv building
nikhil Sep 2, 2025
2c15d90
more general toil output parse
Sep 4, 2025
508a1ac
Update toil_jobsubmitter.py
Sep 9, 2025
8d400ef
Update slurm_client.py
Sep 9, 2025
488f5b2
Update slurm_client.py
Sep 9, 2025
7e346c2
Revert "Update slurm_client.py"
Sep 9, 2025
8e08de6
Revert "Update slurm_client.py"
Sep 9, 2025
8ce5f83
Update toil_jobsubmitter.py
Sep 9, 2025
fbd6250
remove leaking jobstore message
Sep 10, 2025
73edd9b
Fixed python installation
nikhil Sep 15, 2025
cc9d98b
Fixed compose healthchecks
nikhil Sep 15, 2025
c0586d2
Formatting fix
nikhil Sep 15, 2025
46a37d3
Merge branch 'feature/IRIS_update' of github.com:mskcc/ridgeback into…
nikhil Sep 15, 2025
ef70e5b
Merge branch 'develop' into feature/IRIS_update
nikhil Sep 15, 2025
e58f91d
Fix flake
nikhil Sep 15, 2025
7baf9c5
Update compose utils
nikhil Sep 15, 2025
e859181
Update README.md
nikhil Sep 15, 2025
5ff20d4
Added labels to Dockerfile
nikhil Sep 15, 2025
557ffc5
Update requirements path in Dockerfile
nikhil Sep 15, 2025
4d3131b
Print error logs only when they exist
nikhil Sep 17, 2025
766da3e
Preserve errors on exception
nikhil Sep 17, 2025
85a4811
Added mircobiome pipeline path
nikhil Sep 17, 2025
a878943
Added extra user switch commands
nikhil Sep 18, 2025
ca2e04b
Simplify get job info path
nikhil Sep 18, 2025
f86bdb2
Added condition to handle empty profile
nikhil Sep 19, 2025
052e62e
Fix tests with new pipeline name
nikhil Sep 19, 2025
e4aa747
Fix get job info test
nikhil Sep 19, 2025
fa9a544
Add dynamic partition selection
nikhil Oct 14, 2025
367063f
Fixed config true/false parse logic
nikhil Oct 14, 2025
1815f68
Fix tests
nikhil Oct 14, 2025
d719e43
Updated tests
nikhil Oct 14, 2025
0528ffa
Fixed tests
nikhil Oct 14, 2025
c5808cf
Fixed LSF test
nikhil Oct 14, 2025
7fd464f
Fixed flake tests
nikhil Oct 14, 2025
16ebdc9
Made userswitcher executable by any user
nikhil Oct 15, 2025
eb9e120
Fixed tests
nikhil Oct 15, 2025
b37fc6c
Set toil tmpdir
nikhil Oct 15, 2025
846eb5b
Handle empty extension
nikhil Oct 15, 2025
4d4dcb5
Fix more edge cases on extension
nikhil Oct 15, 2025
89937af
Handle optional config
nikhil Oct 15, 2025
3769db4
Removed code from image
nikhil Oct 31, 2025
69c5dbd
Fixed memcached image
nikhil Oct 31, 2025
9580759
Setup dependency volume handling
nikhil Oct 31, 2025
cb92502
Switch database setup service
nikhil Oct 31, 2025
1b488f0
Add tmpfs to some celery tasks
nikhil Oct 31, 2025
025ef82
Remove chown as thats no longer supported in IRIS
nikhil Oct 31, 2025
52b3cae
Log execption with error
nikhil Oct 31, 2025
50420ef
Decode and encode env for userswitch handling
nikhil Oct 31, 2025
3bb3b75
Code is no longer shipped with the image
nikhil Oct 31, 2025
4054e3e
Better handling or memory for toil leader jobs
nikhil Oct 31, 2025
024c165
Set default memory for single machine toil jobs
nikhil Oct 31, 2025
28f554a
Merge branch 'develop' of github.com:mskcc/ridgeback into feature/IRI…
nikhil Oct 31, 2025
025c0a3
Major version bump
nikhil Oct 31, 2025
ed23671
Removed test mount
nikhil Oct 31, 2025
79ebf28
Fixed memlimit handling
nikhil Oct 31, 2025
07c07b2
Updated tests
nikhil Oct 31, 2025
d094dab
Add docs
allanbolipata Nov 2, 2025
7622b3b
Merge branch 'feature/IRIS_update' into doc
Nov 2, 2025
79956e8
Ignore .env files for compose
nikhil Nov 3, 2025
5b5a3cc
Updated webserver mount paths
nikhil Nov 3, 2025
4fe3d65
Added libffi6 package
nikhil Nov 3, 2025
83941a8
Store env in a tempfile
nikhil Nov 3, 2025
09ddb6f
Set env file in the tmp folder in the container
nikhil Nov 3, 2025
10e8759
Fixed typo on json loading
nikhil Nov 3, 2025
1cf4b9b
Add strict file encodings
nikhil Nov 3, 2025
28f7e7c
Dill dump env to a file
nikhil Nov 3, 2025
39783ba
Set file modes to binary mode
nikhil Nov 3, 2025
2e84a27
More file fixes
nikhil Nov 3, 2025
3f2f90e
Fixed userscript function
nikhil Nov 3, 2025
9a8ab45
Added fix for healthchecks run in sh
nikhil Nov 3, 2025
e09bc32
updating XS submissions to use newer toil version
Nov 13, 2025
62154a6
Merge pull request #397 from mskcc/feature/XS_toil_update
nikhil Nov 14, 2025
306c475
Updated README doc on docker compose
nikhil Nov 17, 2025
687daaa
Merge pull request #396 from mskcc/doc
nikhil Nov 17, 2025
732815a
Update ordering of compose.md
nikhil Nov 17, 2025
7489aa4
Update compose.md
nikhil Nov 18, 2025
bb0f7b8
Collection of fixes to handle ridgeback zombie processes
nikhil Dec 3, 2025
97fb606
Update timeout to prevent excessive restarts
nikhil Dec 4, 2025
b49040f
Revert "Collection of fixes to handle ridgeback zombie processes"
nikhil Dec 4, 2025
75323a9
Set max tasks for periodic cleanup
nikhil Dec 8, 2025
2cc2b34
Add mounts for bot login scripts
nikhil Dec 8, 2025
aaa2e2d
Set init setting to manage zombie processes
nikhil Dec 9, 2025
438ae44
Handle case where base_dir is not owned by user
nikhil Dec 9, 2025
058846b
Enable ipython
nikhil Dec 9, 2025
3598e62
Increase root permission size for setting the suid/guid bit
nikhil Dec 10, 2025
f962ae4
Merge branch 'feature/IRIS_update' of github.com:mskcc/ridgeback into…
nikhil Dec 10, 2025
de4139c
Add migration to increase root_permission length
nikhil Dec 10, 2025
d28ab10
Added black formatting
nikhil Dec 19, 2025
e85f20f
Revert "Set max tasks for periodic cleanup"
nikhil Dec 19, 2025
f5a9fae
Revert "Set init setting to manage zombie processes"
nikhil Dec 19, 2025
17adb06
Merge pull request #371 from mskcc/feature/IRIS_update
allanbolipata Dec 22, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 33 additions & 29 deletions .github/workflows/github-actions.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
on: push


jobs:
build:

runs-on: ubuntu-latest

services:
Expand All @@ -18,40 +16,36 @@ jobs:
# needed because the postgres container does not provide a healthcheck
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5


steps:
- uses: actions/checkout@v2
- name: Set up Python 3.9
uses: actions/setup-python@v4
with:
python-version: 3.9
- name: Install dependencies
run: |
pip install pip==19.3.1
pip install --force-reinstall 'setuptools<58.0.0'
pip install -r requirements.txt
pip install -r requirements-toil.txt
#python manage.py migrate
- name: Run migrations
run: python manage.py migrate
- name: Run test
#run: python manage.py test
run: |
coverage run --source='.' manage.py test
coverage report -m --fail-under=75
- name: Run flake8
uses: suo/flake8-github-action@releases/v1
with:
checkName: 'build' # NOTE: this needs to be the same as the job name
- uses: actions/checkout@v2
- name: Set up Python 3.10
uses: actions/setup-python@v4
with:
python-version: "3.10"
- name: Install dependencies
run: |
pip install pip==19.3.1
pip install -r requirements.txt
pip install -r requirements-toil.txt
- name: Run migrations
run: python manage.py migrate
- name: Run test
#run: python manage.py test
run: |
coverage run --source='.' manage.py test
coverage report -m --fail-under=75
- name: Run flake8
uses: suo/flake8-github-action@releases/v1
with:
checkName: "build" # NOTE: this needs to be the same as the job name
env:
#database env variables
#database env variables
RIDGEBACK_DB_NAME: github_actions
RIDGEBACK_DB_PASSWORD: postgres
RIDGEBACK_DB_USERNAME: postgres

#lsf env variables
RIDGEBACK_LSF_WALLTIME: 10:00
RIDGEBACK_LSF_SLA: SLA

#celery env variables
CELERY_LOG_PATH: /sample_path
Expand All @@ -69,23 +63,33 @@ jobs:
RIDGEBACK_RABBITMQ_USERNAME: sample_username
RIDGEBACK_RABBITMQ_PASSWORD: sample_password

#pipeline env variables
#pipeline env variables

ARGOS_JOB_STORE_ROOT: /sample_path
ARGOS_WORK_DIR_ROOT: /sample_path
ARGOS_TMP_DIR_ROOT: /sample_path
ARGOS_PARTITION: sample_SLA
TEMPO_JOB_STORE_ROOT: /sample_path
TEMPO_WORK_DIR_ROOT: /sample_path
TEMPO_TMP_DIR_ROOT: /sample_path
TEMPO_PARTITION: sample_SLA
ACCESS_JOB_STORE_ROOT: /sample_path
ACCESS_WORK_DIR_ROOT: /sample_path
ACCESS_TMP_DIR_ROOT: /sample_path
ACCESS_PARTITION: sample_SLA
CMO_CH_JOB_STORE_ROOT: /sample_path
CMO_CH_WORK_DIR_ROOT: /sample_path
CMO_CH_TMP_DIR_ROOT: /sample_path
CMO_CH_PARTITION: sample_SLA
ACCESS_HEME_JOB_STORE_ROOT: /sample_path
ACCESS_HEME_WORK_DIR_ROOT: /sample_path
ACCESS_HEME_TMP_DIR_ROOT: /sample_path
ACCESS_HEME_PARTITION: sample_SLA
MICROBIOME_JOB_STORE_ROOT: /sample_path
MICROBIOME_WORK_DIR_ROOT: /sample_path
MICROBIOME_TMP_DIR_ROOT: /sample_path
MICROBIOME_PARTITION: sample_SLA
DEFAULT_JOB_STORE_ROOT: /sample_path
DEFAULT_WORK_DIR_ROOT: /sample_path
DEFAULT_TMP_DIR_ROOT: /sample_path
DEFAULT_PARTITION: sample_SLA
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@ conda/
toil
.toil/
*.sif
.env
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ addons:
- postgresql-14
- postgresql-client-14
python:
- "3.9"
- "3.10"
before_install:
- sudo apt-get update
- sudo service postgresql restart 14
Expand Down
28 changes: 28 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
FROM python:3.10-slim

LABEL org.opencontainers.image.vendor="MSKCC" \
org.opencontainers.image.authors="Nikhil Kumar (kumarn1@mskcc.org)" \
org.opencontainers.image.created="2025-09-15T16:04:00Z" \
org.opencontainers.image.licenses="Apache-2.0" \
org.opencontainers.image.version="1.0.0" \
org.opencontainers.image.source="https://github.com/mskcc/ridgeback" \
org.opencontainers.image.title="Ridgeback" \
org.opencontainers.image.description="API for running Toil and Nextflow jobs, supports LSF, SLURM, and singleMachine mode"

ENV DEBIAN_FRONTEND noninteractive

RUN apt-get update \
# Install dependencies
&& apt-get -y --no-install-recommends install \
wget curl libldap2-dev libsasl2-dev procps libssl-dev libxml2-dev libxslt-dev \
libpq-dev gawk nodejs git build-essential openssh-client \
# Install alternative ssl library
&& wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2_amd64.deb \
&& dpkg -i libssl1.1_1.1.1f-1ubuntu2_amd64.deb \
# Install libffi6 for local python commands
&& wget http://archive.ubuntu.com/ubuntu/pool/main/libf/libffi/libffi6_3.2.1-8_amd64.deb \
&& dpkg -i libffi6_3.2.1-8_amd64.deb \
# Clean up image
&& rm -rf /var/lib/apt/lists/*


4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
# Ridgeback

API for Toil LSF
API for running Toil and Nextflow jobs.
Supports LSF, SLURM, and singleMachine mode

## Filebeat

See https://app.gitbook.com/@mskcc-1/s/experimental-dev/filebeat
4 changes: 4 additions & 0 deletions batch_systems/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
from .lsf_client.lsf_client import LSFClient
from .slurm_client.slurm_client import SLURMClient

__all__ = ["LSFClient", "SLURMClient"]
140 changes: 140 additions & 0 deletions batch_systems/batch_system.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
from django.conf import settings
from getpass import getuser
import logging


def get_batch_system(user=getuser()):
if settings.BATCH_SYSTEM == "LSF":
from batch_systems.lsf_client.lsf_client import LSFClient

return LSFClient(user)
elif settings.BATCH_SYSTEM == "SLURM":
from batch_systems.slurm_client.slurm_client import SLURMClient

return SLURMClient(user)
else:
raise Exception(f"Batch system {settings.BATCH_SYSTEM} not supported, please use either LSF or SLURM")


class BatchClient(object):
"""
Client for a generic Batch system

Attributes:
logger (logging): logging module
"""

def __init__(self, user=getuser()):
"""
init function
"""
self.logger = logging.getLogger("BATCH_client")
self.logfileName = "batch.log"
self.name = "batch"
self.user = user

def submit(self, command, job_args, stdout, job_id, partition, env={}):
"""
Submit command to bath system and store log in stdout

Args:
command (list): command to submit
job_args (list): Additional options for leader job
stdout (str): log file path
job_id (str): job_id
partition (str): the batch system partition to use
env (dict): Environment variables

Returns:
int: batch job id
"""

def terminate(self, job_id):
"""
Kill Batch job

Args:
job_id (str): job_id

Returns:
bool: successful
"""

def set_walltime(self, expected_limit, hard_limit):
"""
Set the walltime args of the batch job
"""
walltime_args = []
return walltime_args

def set_memlimit(self, mem_limit, default=None):
"""
Set the memlimit args of the batch job
"""
mem_limit_args = []
return mem_limit_args

def set_num_tasks(self, num_tasks, default=None):
"""
Set the number of tasks for the batch job
"""
num_task_args = []
return num_task_args

def get_env_export_flag(self):
"""
Flag to enable env propagation for the batch jobs

Returns:
str: CLI flag to enable env propagation
"""

def set_group(self, group_id):
"""
Set the group args of the batch job
"""
group_id_args = []
return group_id_args

def set_stdout_file(self, stdout_file):
"""
Set the output path of the log file
"""
return []

def set_service_queue(self, partition):
"""
Set the service queue parameter
"""
service_queue_args = []
return service_queue_args

def status(self, external_job_id):
"""Parse Batch status

Args:
external_job_id (str): Batch id

Returns:
tuple: (Ridgeback Status int, extra info)
"""
status = None
return status

def suspend(self, job_id):
"""
Suspend Batch job
Args:
job_id (str): id of job
Returns:
bool: successful
"""

def resume(self, job_id):
"""
Resume Batch job
Args:
job_id (str): id of job
Returns:
bool: successful
"""
Loading
Loading