This is a KBase module generated by the KBase Software Development Kit (SDK).
You will need to have the SDK installed to use this module. Learn more about the SDK and how to use it.
You can also learn more about the apps implemented in this module from its catalog page or its spec file.
See the .travis file for information on how to test locally
Make sure you have the latest versions of
git clone https://github.com/kbase/execution_engine2.git
cd execution_engine2
docker build . -t execution_engine2:test
docker-compose up -d
docker-compose exec ee2_with_ssh bash
# (This directory is linked to your pwd via the docker-compose file)
cd /ee2
make test-coverage
Once the docker image is built, it does not need to be rebuilt after code changes to rerun tests. Just ensure the services are up, exec into the container, and run the tests.
PYTHONPATH=.:lib:test pytest --cov-report=xml --cov lib/execution_engine2/ --verbose test/tests_for_db/
PYTHONPATH=.:lib:test pytest --cov-report=xml --cov lib/execution_engine2/ --verbose test/tests_for_db/ee2_model_test.py
exec
into the docker container as before and switch to the /ee2
directory.
pip install pre-commit
pre-commit install
pre-commit run --all-files
To remove the pre commit hooks:
pre-commit uninstall
conda install -c conda-forge python-htcondor
import htcondor
develop
. Ask a repo owner for help if
necessary.worksflows/pull_request_template.md
for detailsdevelop
and request a
review from person with EE2 knowledge via the Github interface and via Slack.develop
and delete the feature branch.kbase.yml
.
make compile
.develop
.develop
to main
.main
.kbase.yml
.EE2 understands client group specifications in JSON and CSV formats. Both formats have special fields in common:
request_cpus
- the number of CPUs to requestrequest_memory
- the amount of memory, in MB, to requestrequest_disk
- the amount of memory, in GB, to requestclient_group_regex
- boolean - treat the client group (see below) as a regular expressiondebug_mode
- boolean - run the job in debug modeThe client group is handled differently for JSON and CSV:
clientgroup
field, which is optional.key=value
format.Any fields other than the above are sent on to the scheduler as key value pairs.
For example, to set the client group to bigmem
, request 32 CPUs, 64GB of memory, and 1TB of disk,
the following would be entered in the catalog UI:
bigmem, request_cpus=32, request_memory=64000, request_disk=1000
{"client_group": "bigmem", "request_cpus" : "32", "request_memory" : "64000", "request_disk" : "1000"}
Note that the representation of this data in the catalog API is idiosyncratic - both the JSON and CSV data are split by commas into parts. EE2 will detect JSON entries and reconsitute them before deserialization.
Contact @Tianhao-Gu, @bio_boris, @briehl