hpc-beeflow 0.1.11.dev2__tar.gz → 0.1.11.dev3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/PKG-INFO +1 -1
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/client/bee_client.py +11 -4
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/client/core.py +3 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/build/container_drivers.py +47 -41
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/deps/neo4j_manager.py +32 -14
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/gdb/graphml_key_updater.py +23 -8
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/gdb/neo4j_driver.py +16 -8
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/parser/parser.py +1 -1
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/task_manager/background.py +5 -3
- hpc_beeflow-0.1.11.dev3/beeflow/tests/test_wf_utils.py +61 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/wf_manager/resources/wf_utils.py +8 -11
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/pyproject.toml +1 -1
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/LICENSE +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/README.rst +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/__init__.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/client/README.md +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/client/__init__.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/client/remote_client.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/cloud_launcher.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/README.md +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/__init__.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/api.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/build/README.md +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/build/__init__.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/build/build_driver.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/build/utils.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/build_interfaces.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/cli.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/cli_connection.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/cloud/README.md +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/cloud/__init__.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/cloud/chameleoncloud.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/cloud/cloud.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/cloud/constants.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/cloud/google.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/cloud/openstack.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/cloud/provider.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/config_driver.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/config_utils.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/config_validator.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/connection.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/container_path.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/crt/__init__.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/crt/charliecloud_driver.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/crt/crt_driver.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/crt/singularity_driver.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/crt_interface.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/cwl/__init__.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/cwl/cwl.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/cwl/examples/Dockerfile.comd-x86_64 +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/cwl/examples/README.txt +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/cwl/examples/cat_grep_tar.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/cwl/examples/comd.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/cwl/examples/comd_driver.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/cwl/examples/comd_pre.sh +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/cwl/examples/lorem.txt +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/cwl/workflow.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/db/__init__.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/db/bdb.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/db/client_db.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/db/sched_db.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/db/tm_db.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/db/wfm_db.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/deps/__init__.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/deps/celery_manager.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/deps/container_manager.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/deps/redis_manager.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/expr.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/gdb/DESIGN.md +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/gdb/__init__.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/gdb/gdb_driver.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/gdb/generate_graph.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/gdb/neo4j_cypher.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/integration/__init__.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/integration/generated_workflows.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/integration/utils.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/integration_test.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/log.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/parser/.gitignore +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/parser/README.md +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/parser/__init__.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/paths.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/states.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/tab_completion.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/validation.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/wf_data.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/wf_interface.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/wf_profiler.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/worker/README.md +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/worker/__init__.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/worker/flux_worker.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/worker/lsf_worker.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/worker/simple_worker.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/worker/slurm_worker.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/worker/utils.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/worker/worker.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/worker_interface.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cloud_templates/dora.jinja +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cloud_templates/dora.yaml +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/README.md +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/README.md +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/blast/README.md +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/blast/blast.yml +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/blast/blast_output.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/blast/blast_output_err.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/blast/blast_split.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/blast/blast_wf.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/blast/blast_worker001.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/blast/blast_worker002.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/blast/input/small.fasta +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/cat-grep-fail/README.md +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/cat-grep-fail/cat.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/cat-grep-fail/grep0.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/cat-grep-fail/grep1.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/cat-grep-fail/input.yml +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/cat-grep-fail/lorem.txt +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/cat-grep-fail/tar.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/cat-grep-fail/workflow.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/cgt-2branches/README.txt +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/cgt-2branches/cat.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/cgt-2branches/cat2.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/cgt-2branches/grep0.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/cgt-2branches/grep1.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/cgt-2branches/grep2.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/cgt-2branches/grep3.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/cgt-2branches/input.yml +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/cgt-2branches/lorem.txt +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/cgt-2branches/tar.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/cgt-2branches/tar2.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/cgt-2branches/workflow.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-ci/README.md +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-ci/clamr.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-ci/clamr_job.json +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-ci/clamr_job.yml +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-ci/clamr_wf.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-ci/ffmpeg.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-ffmpeg-build_script/Dockerfile.clamr-ffmpeg +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-ffmpeg-build_script/README.md +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-ffmpeg-build_script/clamr.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-ffmpeg-build_script/clamr_job.json +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-ffmpeg-build_script/clamr_job.yml +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-ffmpeg-build_script/clamr_wf.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-ffmpeg-build_script/ffmpeg.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-ffmpeg-build_script/post_run.sh +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-ffmpeg-build_script/pre_run.sh +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-ffmpeg-validate_script/Dockerfile.clamr-ffmpeg +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-ffmpeg-validate_script/README.md +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-ffmpeg-validate_script/clamr.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-ffmpeg-validate_script/clamr_job.json +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-ffmpeg-validate_script/clamr_job.yml +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-ffmpeg-validate_script/clamr_wf.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-ffmpeg-validate_script/ffmpeg.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-ffmpeg-validate_script/post_run.sh +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-ffmpeg-validate_script/pre_run.sh +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf/README.md +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf/clamr.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf/clamr_job.json +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf/clamr_job.yml +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf/clamr_wf.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf/ffmpeg.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-chicoma/README.md +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-chicoma/clamr.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-chicoma/clamr_job.json +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-chicoma/clamr_job.yml +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-chicoma/clamr_wf.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-chicoma/ffmpeg.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-noyaml/README.md +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-noyaml/lsf-charliecloud/README.md +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-noyaml/lsf-charliecloud/cf-summit.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-noyaml/slurm-charliecloud/Dockerfile.clamr-lanl-x86_64 +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-noyaml/slurm-charliecloud/README.md +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-noyaml/slurm-charliecloud/cf-darwin.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-noyaml/slurm-charliecloud/cf-no-owrite.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-noyaml/slurm-charliecloud/cf.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-noyaml/slurm-charliecloud/copyContainer_containerName.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-noyaml/slurm-charliecloud/dockerFile_containerName.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-noyaml/slurm-charliecloud/dockerPull.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-noyaml/slurm-singularity/README.md +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-noyaml/slurm-singularity/cf-singularity.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-singularity/README.md +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-singularity/clamr.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-singularity/clamr_job.json +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-singularity/clamr_job.yml +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-singularity/clamr_wf.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-singularity/ffmpeg.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-summit/README.md +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-summit/clamr.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-summit/clamr_job.json +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-summit/clamr_job.yml +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-summit/clamr_wf.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-summit/ffmpeg.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-use-container/README.md +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-use-container/clamr.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-use-container/clamr_job.json +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-use-container/clamr_job.yml +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-use-container/clamr_wf.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-use-container/ffmpeg.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/lulesh-mpi/lulesh.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/lulesh-mpi/lulesh.yml +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/lulesh-mpi-multi-file/lulesh.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/lulesh-mpi-multi-file/lulesh_job.yml +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/lulesh-mpi-multi-file/lulesh_wf.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/nwchem-mpi/README.md +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/nwchem-mpi/nwchem.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/nwchem-mpi/nwchem.yml +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/nwchem-mpi/nwchem_bin.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/pennant/graph.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/pennant/pennant.yml +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/pennant/pennant_1_node.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/pennant/pennant_2_node.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/pennant/pennant_4_node.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/pennant/pennant_wf.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/pennant-build/Dockerfile.pennant-flux-x86_64 +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/pennant-build/Dockerfile.pennant-graph-x86_64 +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/pennant-build/graph.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/pennant-build/graph_pennant.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/pennant-build/graph_pennant.sh +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/pennant-build/pennant.yml +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/pennant-build/pennant_1_node.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/pennant-build/pennant_2_node.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/pennant-build/pennant_4_node.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/pennant-build/pennant_8_node.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/pennant-build/pennant_wf.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/pytest.ini +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/simple-workflows/README.md +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/simple-workflows/cancel.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/simple-workflows/grep-wordcount/README.md +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/simple-workflows/grep-wordcount/gc-nc.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/simple-workflows/grep-wordcount/gc.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/simple-workflows/grep-wordcount/lorem.txt +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/README.md +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/builder/dockerFile.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/builder/dockerPull.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/grep-wordcount/gc.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/grep-wordcount/lorem.txt +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/helloworld.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/helloworld_input.yaml +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/example-1/DAG_example-1.png +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/example-1/README.md +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/example-1/add.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/example-1/add_multiply_example_workflow.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/example-1/add_step1.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/example-1/isolated test.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/example-1/job.yaml +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/example-1/multiply.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/example-1/multiply_step2.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/example-1/workflow_generater_python.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/machine_learning/README.md +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/machine_learning/decision_tree.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/machine_learning/decision_tree_output.txt +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/machine_learning/decision_tree_tool.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/machine_learning/expectedValue.txt +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/machine_learning/hiring1.txt +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/machine_learning/linear_regress_output.txt +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/machine_learning/linear_regression.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/machine_learning/machinelearning_pipeline.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/machine_learning/out.PNG +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/machine_learning/predict_code.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/machine_learning/predict_tool.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/machine_learning/read_dataset.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/machine_learning/read_dataset_tool.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/machine_learning/regress_tool.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/dockerfiles/Dockerfile.builder_demo +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/dockerfiles/Dockerfile.clamr-ffmpeg +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/dockerfiles/Dockerfile.clamr-lanl-x86_64 +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/dockerfiles/Dockerfile.clamr-ppc64le +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/dockerfiles/Dockerfile.comd-flux-x86_64 +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/dockerfiles/Dockerfile.deb9ompi-x86_64 +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/dockerfiles/Dockerfile.lulesh-x86_64 +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/dockerfiles/Dockerfile.neo4j +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/dockerfiles/Dockerfile.nwchem-x86_64 +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/dockerfiles/Dockerfile.pennant-flux-x86_64 +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/dockerfiles/Dockerfile.vaspompi-x86_64 +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/dockerfiles/README.md +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/dockerfiles/comd-pmix-support/Dockerfile.comd-x86_64-wpmix +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/dockerfiles/comd-pmix-support/Dockerfile.debian +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/dockerfiles/comd-pmix-support/Dockerfile.openmpi-3.1.5 +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/dockerfiles/comd-pmix-support/README.md +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/dockerfiles/comd-pmix-support/dont-init-ucx-on-intel-cray.patch +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/dockerfiles/pennant-graph/Dockerfile.pennant-graph-x86_64 +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/dockerfiles/pennant-graph/graph_pennant.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/data/dockerfiles/pennant-graph/graph_pennant.sh +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/remote/__init__.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/remote/remote.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/scheduler/README.md +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/scheduler/__init__.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/scheduler/algorithms.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/scheduler/resource_allocation.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/scheduler/scheduler.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/scheduler/scheduler.yaml +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/scheduler/serializable.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/scheduler/task.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/task_manager/__init__.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/task_manager/task_actions.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/task_manager/task_manager.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/task_manager/task_submit.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/task_manager/utils.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/42.tgz +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/README.md +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/cf.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/clamr-wf/clamr.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/clamr-wf/clamr_job.json +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/clamr-wf/clamr_job.yml +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/clamr-wf/clamr_wf.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/clamr-wf/ffmpeg.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/clamr-wf/mv_script.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/clamr-wf/mv_script.sh +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/clamr-wf.tgz +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/cwl_files/cat-grep-tar.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/cwl_files/cat-grep-tar.yml +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/cwl_files/clamr.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/cwl_files/clamr.yml +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/cwl_files/comd.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/cwl_files/comd.yml +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/cwl_files/task-req.cwl +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/cwl_files/task-req.yml +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/gdb.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/mocks.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/test_bee_client.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/test_charliecloud_driver.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/test_cloud.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/test_config_driver.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/test_config_utils.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/test_config_validator.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/test_container_path.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/test_cwl.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/test_cwl_workflow.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/test_db_client.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/test_db_sched.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/test_db_tm.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/test_neo4j_cypher.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/test_parser.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/test_remote.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/test_remote_client.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/test_scheduler.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/test_scheduler_resource_allocation.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/test_scheduler_rest.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/test_slurm_worker.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/test_tm.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/test_wf_interface.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/test_wf_manager.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/test_wf_update.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/wf_manager/__init__.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/wf_manager/resources/__init__.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/wf_manager/resources/wf_actions.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/wf_manager/resources/wf_list.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/wf_manager/resources/wf_update.py +0 -0
- {hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/wf_manager/wf_manager.py +0 -0
|
@@ -739,14 +739,21 @@ def dag(wf_id: str = typer.Argument(..., callback=match_short_id),
|
|
|
739
739
|
typer.secho("Workflow has been archived. All new DAGs will look the same as the one "
|
|
740
740
|
"in the archive directory.",
|
|
741
741
|
fg=typer.colors.MAGENTA)
|
|
742
|
-
wf_utils.export_dag(wf_id, output_dir, graphmls_dir, no_dag_dir)
|
|
742
|
+
dot_avail = wf_utils.export_dag(wf_id, output_dir, graphmls_dir, no_dag_dir)
|
|
743
743
|
else:
|
|
744
744
|
wf_dir = wf_utils.get_workflow_dir(wf_id)
|
|
745
745
|
graphmls_dir = wf_dir + '/graphmls'
|
|
746
746
|
os.makedirs(graphmls_dir, exist_ok=True)
|
|
747
|
-
wf_utils.export_dag(wf_id, output_dir, graphmls_dir, no_dag_dir, wf_dir)
|
|
748
|
-
|
|
749
|
-
|
|
747
|
+
dot_avail = wf_utils.export_dag(wf_id, output_dir, graphmls_dir, no_dag_dir, wf_dir)
|
|
748
|
+
if dot_avail:
|
|
749
|
+
typer.secho(f"DAG for workflow {_short_id(wf_id)} has been exported successfully.",
|
|
750
|
+
fg=typer.colors.GREEN)
|
|
751
|
+
else:
|
|
752
|
+
typer.secho(
|
|
753
|
+
f"GraphML for workflow {_short_id(wf_id)} has been exported successfully."
|
|
754
|
+
"(Graphviz not found, so no rendered DAG was produced.)",
|
|
755
|
+
fg=typer.colors.GREEN
|
|
756
|
+
)
|
|
750
757
|
|
|
751
758
|
|
|
752
759
|
@app.callback(invoke_without_command=True)
|
|
@@ -344,6 +344,9 @@ class Beeflow:
|
|
|
344
344
|
def loop(self):
|
|
345
345
|
"""Run the main loop."""
|
|
346
346
|
print(f'Running on {socket.gethostname()}')
|
|
347
|
+
# Check for Graphviz:
|
|
348
|
+
if not shutil.which("dot"):
|
|
349
|
+
print('Graphviz was not found on PATH.')
|
|
347
350
|
self.mgr.run(self.base_components)
|
|
348
351
|
with cli_connection.server(paths.beeflow_socket()) as server:
|
|
349
352
|
while not self.quit:
|
{hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/build/container_drivers.py
RENAMED
|
@@ -45,47 +45,53 @@ class CharliecloudBuildDriver(ContainerBuildDriver):
|
|
|
45
45
|
:param task: the task to build for
|
|
46
46
|
:type task: Task
|
|
47
47
|
"""
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
docker_requirements =
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
48
|
+
has_container = task.get_full_requirement('DockerRequirement')
|
|
49
|
+
if has_container: # only try to build if task has a container
|
|
50
|
+
# Store build container archive pased on config file or relative to bee_workdir
|
|
51
|
+
# if not set.
|
|
52
|
+
container_archive = bc.get('builder', 'container_archive')
|
|
53
|
+
self.container_archive = bc.resolve_path(container_archive)
|
|
54
|
+
os.makedirs(self.container_archive, exist_ok=True)
|
|
55
|
+
# Deploy build tarballs relative to /var/tmp/username/beeflow by default
|
|
56
|
+
deployed_image_root = bc.get('builder', 'deployed_image_root')
|
|
57
|
+
# Make sure conf_file path exists
|
|
58
|
+
os.makedirs(deployed_image_root, exist_ok=True)
|
|
59
|
+
# Make sure path is absolute
|
|
60
|
+
deployed_image_root = bc.resolve_path(deployed_image_root)
|
|
61
|
+
self.deployed_image_root = deployed_image_root
|
|
62
|
+
os.makedirs(self.deployed_image_root, exist_ok=True)
|
|
63
|
+
# Set container-relative output directory based on BeeConfig, or use '/'
|
|
64
|
+
container_output_path = bc.get('builder', 'container_output_path')
|
|
65
|
+
self.container_output_path = container_output_path
|
|
66
|
+
# record that a Charliecloud builder was used
|
|
67
|
+
# bc.modify_section('user', 'builder', {'container_type': 'charliecloud'})
|
|
68
|
+
self.task = task
|
|
69
|
+
self.docker_image_id = None
|
|
70
|
+
self.container_name = None
|
|
71
|
+
docker_requirements = set()
|
|
72
|
+
try:
|
|
73
|
+
req_docker_requirements = self.task.requirements['DockerRequirement'].keys()
|
|
74
|
+
docker_requirements = docker_requirements.union(req_docker_requirements)
|
|
75
|
+
req_string = f'{set(req_docker_requirements)}'
|
|
76
|
+
log.info(f'task {self.task.id} requirement DockerRequirements: {req_string}')
|
|
77
|
+
except (TypeError, KeyError):
|
|
78
|
+
log.info(f'task {self.task.name} {self.task.id} '
|
|
79
|
+
'no DockerRequirements in requirement')
|
|
80
|
+
try:
|
|
81
|
+
hint_docker_requirements = self.task.hints['DockerRequirement'].keys()
|
|
82
|
+
docker_requirements = docker_requirements.union(hint_docker_requirements)
|
|
83
|
+
hint_str = f'{set(hint_docker_requirements)}'
|
|
84
|
+
log.info(f'task {self.task.name} {self.task.id} hint '
|
|
85
|
+
f'DockerRequirements: {hint_str}')
|
|
86
|
+
except (TypeError, KeyError):
|
|
87
|
+
log.info(f'task {self.task.name} {self.task.id} hints has no DockerRequirements')
|
|
88
|
+
log.info(f'task {self.task.id} union DockerRequirements : {docker_requirements}')
|
|
89
|
+
exec_superset = self.resolve_priority()
|
|
90
|
+
self.exec_list = [i for i in exec_superset if i[1] in docker_requirements]
|
|
91
|
+
log_exec_list = [i[1] for i in self.exec_list]
|
|
92
|
+
log.info(f'task {self.task.id} DockerRequirement execution order '
|
|
93
|
+
f'will be: {log_exec_list}')
|
|
94
|
+
log.info('Execution order pre-empts hint/requirement status.')
|
|
89
95
|
|
|
90
96
|
def get_docker_req(self, docker_req_param):
|
|
91
97
|
"""Get dockerRequirement, prioritizing requirements over hints.
|
|
@@ -5,8 +5,13 @@ import shutil
|
|
|
5
5
|
import re
|
|
6
6
|
import subprocess
|
|
7
7
|
import time
|
|
8
|
+
import logging
|
|
9
|
+
|
|
10
|
+
from beeflow.common.gdb import neo4j_driver
|
|
11
|
+
from beeflow.common.gdb.neo4j_driver import (DEFAULT_BOLT_PORT)
|
|
12
|
+
|
|
13
|
+
from beeflow.common.db.bdb import connect_db
|
|
8
14
|
|
|
9
|
-
from beeflow.wf_manager.resources import wf_utils
|
|
10
15
|
from beeflow.common.db import wfm_db
|
|
11
16
|
|
|
12
17
|
from beeflow.common import paths
|
|
@@ -15,6 +20,7 @@ from beeflow.common.deps import container_manager
|
|
|
15
20
|
from beeflow.common.config_driver import BeeConfig as bc
|
|
16
21
|
from beeflow.common import log as bee_logging
|
|
17
22
|
|
|
23
|
+
|
|
18
24
|
BEE_WORKDIR = None
|
|
19
25
|
MOUNT_DIR = None
|
|
20
26
|
DATA_DIR = None
|
|
@@ -23,9 +29,9 @@ RUN_DIR = None
|
|
|
23
29
|
CERTS_DIR = None
|
|
24
30
|
CONFS_DIR = None
|
|
25
31
|
GRAPHMLS_DIR = None
|
|
26
|
-
CONTAINER_PATH =
|
|
27
|
-
log = bee_logging.setup('neo4j')
|
|
32
|
+
CONTAINER_PATH = None
|
|
28
33
|
|
|
34
|
+
log = None # pylint: disable=C0103
|
|
29
35
|
|
|
30
36
|
def get_open_port():
|
|
31
37
|
"""Return an open ephemeral port."""
|
|
@@ -44,7 +50,7 @@ def setup_ports():
|
|
|
44
50
|
http_port = get_open_port()
|
|
45
51
|
https_port = get_open_port()
|
|
46
52
|
|
|
47
|
-
db =
|
|
53
|
+
db = connect_db(wfm_db, bc.get('DEFAULT', 'bee_workdir') + "/wfm.db")
|
|
48
54
|
|
|
49
55
|
db.info.set_port('bolt', bolt_port)
|
|
50
56
|
db.info.set_port('http', http_port)
|
|
@@ -141,7 +147,7 @@ def create_credentials():
|
|
|
141
147
|
log.error("neo4j-admin set-initial-password failed")
|
|
142
148
|
|
|
143
149
|
|
|
144
|
-
def create_database():
|
|
150
|
+
def create_database(bolt_port):
|
|
145
151
|
"""Create the neo4j database and return the process."""
|
|
146
152
|
try:
|
|
147
153
|
command = ['neo4j', 'console']
|
|
@@ -157,7 +163,7 @@ def create_database():
|
|
|
157
163
|
"-W", "-b", GRAPHMLS_DIR + ":/var/lib/neo4j/import",
|
|
158
164
|
CONTAINER_PATH, "--", *command
|
|
159
165
|
], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
|
160
|
-
wait_gdb()
|
|
166
|
+
wait_gdb(bolt_port=bolt_port)
|
|
161
167
|
return proc
|
|
162
168
|
|
|
163
169
|
except FileNotFoundError:
|
|
@@ -167,6 +173,12 @@ def create_database():
|
|
|
167
173
|
|
|
168
174
|
def start():
|
|
169
175
|
"""Start the graph database."""
|
|
176
|
+
|
|
177
|
+
global log
|
|
178
|
+
log = bee_logging.setup("neo4j")
|
|
179
|
+
log.setLevel(logging.INFO)
|
|
180
|
+
log.propagate = False
|
|
181
|
+
|
|
170
182
|
log.info('Starting Neo4j Database')
|
|
171
183
|
|
|
172
184
|
bolt_port, http_port, https_port = setup_ports()
|
|
@@ -179,17 +191,23 @@ def start():
|
|
|
179
191
|
|
|
180
192
|
create_credentials()
|
|
181
193
|
|
|
182
|
-
return create_database()
|
|
194
|
+
return create_database(bolt_port=bolt_port)
|
|
183
195
|
|
|
184
196
|
|
|
185
|
-
def wait_gdb():
|
|
186
|
-
"""
|
|
187
|
-
|
|
188
|
-
We'd like to remove that in the future.
|
|
197
|
+
def wait_gdb(bolt_port=DEFAULT_BOLT_PORT):
|
|
198
|
+
"""
|
|
199
|
+
Block until the Neo4j instance answers a Bolt handshake.
|
|
189
200
|
"""
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
201
|
+
connect_neo4j_driver(bolt_port)
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
def connect_neo4j_driver(bolt_port):
|
|
205
|
+
"""Create a neo4j driver to a gdb through bolt port."""
|
|
206
|
+
driver = neo4j_driver.Neo4jDriver()
|
|
207
|
+
driver.connect(user="neo4j", bolt_port=bolt_port,
|
|
208
|
+
db_hostname=bc.get("graphdb", "hostname"),
|
|
209
|
+
password=bc.get("graphdb", "dbpass"))
|
|
210
|
+
driver.create_bee_node()
|
|
193
211
|
|
|
194
212
|
|
|
195
213
|
def remove_gdb():
|
{hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/gdb/graphml_key_updater.py
RENAMED
|
@@ -31,7 +31,18 @@ default_key_definitions = {
|
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
|
|
34
|
-
def
|
|
34
|
+
def backup_graphml(path, graphmls_dir, short_id):
|
|
35
|
+
"""Backup graphmls."""
|
|
36
|
+
if os.path.exists(path):
|
|
37
|
+
i = 1
|
|
38
|
+
backup_path = f'{graphmls_dir}/{short_id}_v{i}.graphml'
|
|
39
|
+
while os.path.exists(backup_path):
|
|
40
|
+
i += 1
|
|
41
|
+
backup_path = f'{graphmls_dir}/{short_id}_v{i}.graphml'
|
|
42
|
+
shutil.copy(path, backup_path)
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
def update_graphml(wf_id, graphmls_dir, extra_output_dir=None, no_dag_dir=False):
|
|
35
46
|
"""Update GraphML file by ensuring required keys are present and updating its structure."""
|
|
36
47
|
short_id = wf_id[:6]
|
|
37
48
|
# Define paths
|
|
@@ -41,13 +52,7 @@ def update_graphml(wf_id, graphmls_dir):
|
|
|
41
52
|
gdb_graphml_path = gdb_graphmls_dir + "/" + short_id + ".graphml"
|
|
42
53
|
output_graphml_path = graphmls_dir + "/" + short_id + ".graphml"
|
|
43
54
|
# Handle making multiple versions of the graphmls without overriding old ones
|
|
44
|
-
|
|
45
|
-
i = 1
|
|
46
|
-
backup_path = f'{graphmls_dir}/{short_id}_v{i}.graphml'
|
|
47
|
-
while os.path.exists(backup_path):
|
|
48
|
-
i += 1
|
|
49
|
-
backup_path = f'{graphmls_dir}/{short_id}_v{i}.graphml'
|
|
50
|
-
shutil.copy(output_graphml_path, backup_path)
|
|
55
|
+
backup_graphml(output_graphml_path, graphmls_dir, short_id)
|
|
51
56
|
# Parse the GraphML file and preserve namespaces
|
|
52
57
|
tree = ET.parse(gdb_graphml_path)
|
|
53
58
|
root = tree.getroot()
|
|
@@ -69,3 +74,13 @@ def update_graphml(wf_id, graphmls_dir):
|
|
|
69
74
|
|
|
70
75
|
# Save the updated GraphML file
|
|
71
76
|
tree.write(output_graphml_path, encoding='UTF-8', xml_declaration=True)
|
|
77
|
+
|
|
78
|
+
# Saving the GraphML file to an extra user specified location
|
|
79
|
+
if extra_output_dir:
|
|
80
|
+
if not no_dag_dir:
|
|
81
|
+
extra_output_dir += "/" + short_id + "-graphmls"
|
|
82
|
+
extra_graphml_path = extra_output_dir + "/" + short_id + ".graphml"
|
|
83
|
+
os.makedirs(extra_output_dir, exist_ok=True)
|
|
84
|
+
if extra_graphml_path != output_graphml_path:
|
|
85
|
+
backup_graphml(extra_graphml_path, extra_output_dir, short_id)
|
|
86
|
+
tree.write(extra_graphml_path, encoding='UTF-8', xml_declaration=True)
|
|
@@ -10,6 +10,7 @@ either standardized or read from a config file.
|
|
|
10
10
|
# Disable E1129: External module is missing proper resource context manager methods.
|
|
11
11
|
# pylint:disable=E1129
|
|
12
12
|
|
|
13
|
+
import time
|
|
13
14
|
from neo4j import GraphDatabase as Neo4jDatabase
|
|
14
15
|
from neo4j.exceptions import ServiceUnavailable
|
|
15
16
|
|
|
@@ -27,6 +28,8 @@ DEFAULT_HOSTNAME = "localhost"
|
|
|
27
28
|
DEFAULT_BOLT_PORT = "7687"
|
|
28
29
|
DEFAULT_USER = "neo4j"
|
|
29
30
|
DEFAULT_PASSWORD = "password"
|
|
31
|
+
MAX_WAIT_SECS = 60
|
|
32
|
+
RETRY_DELAY_SECS = 5
|
|
30
33
|
|
|
31
34
|
|
|
32
35
|
class Neo4jNotRunning(Exception):
|
|
@@ -61,14 +64,19 @@ class Neo4jDriver(GraphDatabaseDriver):
|
|
|
61
64
|
bolt_port = kwargs.get("bolt_port", DEFAULT_BOLT_PORT)
|
|
62
65
|
password = kwargs.get("db_pass", DEFAULT_PASSWORD)
|
|
63
66
|
uri = f"bolt://{db_hostname}:{bolt_port}"
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
67
|
+
start_time = time.monotonic()
|
|
68
|
+
self._driver = Neo4jDatabase.driver(uri, auth=(user, password)) # pylint: disable=W0201
|
|
69
|
+
while True:
|
|
70
|
+
try:
|
|
71
|
+
self._driver.verify_connectivity()
|
|
72
|
+
return
|
|
73
|
+
except ServiceUnavailable as sue:
|
|
74
|
+
elapsed = time.monotonic() - start_time
|
|
75
|
+
if elapsed >= MAX_WAIT_SECS:
|
|
76
|
+
log.error("Neo4j database is unavailable")
|
|
77
|
+
raise Neo4jNotRunning("Neo4j database is unavailable") from sue
|
|
78
|
+
log.info(f"Waiting {RETRY_DELAY_SECS} seconds for Neo4j to become ready...")
|
|
79
|
+
time.sleep(RETRY_DELAY_SECS)
|
|
72
80
|
|
|
73
81
|
def create_bee_node(self):
|
|
74
82
|
"""Create the "BEE" node for all workflows to connect to."""
|
|
@@ -281,7 +281,7 @@ class CwlParser:
|
|
|
281
281
|
raise CwlParseError(f"specified step output {out} not produced by CommandLineTool")
|
|
282
282
|
|
|
283
283
|
output_type = out_map[out].type
|
|
284
|
-
glob =
|
|
284
|
+
glob = ""
|
|
285
285
|
if output_type == "stdout":
|
|
286
286
|
if not stdout:
|
|
287
287
|
raise CwlParseError(f"stdout capture required for step output {out} "
|
|
@@ -40,9 +40,11 @@ def resolve_environment(task):
|
|
|
40
40
|
def submit_task(db, worker, task):
|
|
41
41
|
"""Submit (or resubmit) a task."""
|
|
42
42
|
try:
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
43
|
+
has_container = task.get_full_requirement('DockerRequirement')
|
|
44
|
+
if has_container:
|
|
45
|
+
log.info(f'Resolving environment for task {task.name}')
|
|
46
|
+
resolve_environment(task)
|
|
47
|
+
log.info(f'Environment preparation complete for task {task.name}')
|
|
46
48
|
job_id, job_state = worker.submit_task(task)
|
|
47
49
|
log.info(f"Job Submitted '{task.name}' job_id: {job_id} job_state: {job_state}")
|
|
48
50
|
# place job in queue to monitor
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"""Tests for wf_utils module."""
|
|
2
|
+
|
|
3
|
+
import pytest
|
|
4
|
+
from beeflow.wf_manager.resources import wf_utils
|
|
5
|
+
|
|
6
|
+
from beeflow.tests.mocks import MockWFI
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
@pytest.mark.parametrize(
|
|
10
|
+
"which_return, no_dag_flag, expected_dot_avail",
|
|
11
|
+
[
|
|
12
|
+
("/usr/bin/dot", True, True),
|
|
13
|
+
("/usr/bin/dot", False, True),
|
|
14
|
+
(None, True, False),
|
|
15
|
+
(None, False, False),
|
|
16
|
+
],
|
|
17
|
+
)
|
|
18
|
+
def test_export_dag(mocker, which_return, no_dag_flag, expected_dot_avail):
|
|
19
|
+
"""Regression test export_dag based on graphviz availability."""
|
|
20
|
+
wf_id = "abc123"
|
|
21
|
+
output_dir = "/path/to/out"
|
|
22
|
+
graphmls_dir = "/path/to/gmls"
|
|
23
|
+
workflow_dir = "/path/to/wfdir"
|
|
24
|
+
|
|
25
|
+
mock_wfi = mocker.MagicMock()
|
|
26
|
+
mocker.patch('beeflow.wf_manager.resources.wf_utils.get_workflow_interface', return_value=mock_wfi)
|
|
27
|
+
mocker.patch('beeflow.common.wf_interface.WorkflowInterface.export_graphml')
|
|
28
|
+
mocker.patch('beeflow.wf_manager.resources.wf_utils.shutil.which',
|
|
29
|
+
return_value=which_return)
|
|
30
|
+
mock_update = mocker.patch('beeflow.wf_manager.resources.wf_utils.update_graphml')
|
|
31
|
+
mock_viz = mocker.patch('beeflow.wf_manager.resources.wf_utils.generate_viz')
|
|
32
|
+
|
|
33
|
+
result = wf_utils.export_dag(
|
|
34
|
+
wf_id,
|
|
35
|
+
output_dir,
|
|
36
|
+
graphmls_dir,
|
|
37
|
+
no_dag_flag,
|
|
38
|
+
workflow_dir
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
# always export the GraphML first
|
|
42
|
+
mock_wfi.export_graphml.assert_called_once_with()
|
|
43
|
+
|
|
44
|
+
# return value is bool(shutil.which)
|
|
45
|
+
assert result is expected_dot_avail
|
|
46
|
+
|
|
47
|
+
if expected_dot_avail:
|
|
48
|
+
mock_update.assert_called_once_with(wf_id, graphmls_dir)
|
|
49
|
+
mock_viz.assert_called_once_with(
|
|
50
|
+
wf_id, output_dir, graphmls_dir, no_dag_flag, workflow_dir
|
|
51
|
+
)
|
|
52
|
+
else:
|
|
53
|
+
mock_update.assert_called_once_with(
|
|
54
|
+
wf_id, graphmls_dir, output_dir, no_dag_flag
|
|
55
|
+
)
|
|
56
|
+
mock_viz.assert_not_called()
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
|
{hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/wf_manager/resources/wf_utils.py
RENAMED
|
@@ -17,6 +17,7 @@ from beeflow.common.connection import Connection
|
|
|
17
17
|
from beeflow.common import paths
|
|
18
18
|
from beeflow.common.db import wfm_db
|
|
19
19
|
from beeflow.common.db.bdb import connect_db
|
|
20
|
+
from beeflow.common.deps.neo4j_manager import connect_neo4j_driver
|
|
20
21
|
|
|
21
22
|
|
|
22
23
|
log = bee_logging.setup(__name__)
|
|
@@ -261,15 +262,6 @@ def schedule_submit_tasks(wf_id, tasks):
|
|
|
261
262
|
submit_tasks_tm(wf_id, tasks, allocation)
|
|
262
263
|
|
|
263
264
|
|
|
264
|
-
def connect_neo4j_driver(bolt_port):
|
|
265
|
-
"""Create a neo4j driver to a gdb through bolt port."""
|
|
266
|
-
driver = neo4j_driver.Neo4jDriver()
|
|
267
|
-
driver.connect(user="neo4j", bolt_port=bolt_port,
|
|
268
|
-
db_hostname=bc.get("graphdb", "hostname"),
|
|
269
|
-
password=bc.get("graphdb", "dbpass"))
|
|
270
|
-
driver.create_bee_node()
|
|
271
|
-
|
|
272
|
-
|
|
273
265
|
def setup_workflow(wf_id, wf_name, wf_dir, wf_workdir, no_start, workflow=None, # pylint: disable=W0613
|
|
274
266
|
tasks=None):
|
|
275
267
|
"""Initialize Workflow in Separate Process."""
|
|
@@ -303,8 +295,13 @@ def export_dag(wf_id, output_dir, graphmls_dir, no_dag_dir, workflow_dir=None):
|
|
|
303
295
|
"""Export the DAG of the workflow."""
|
|
304
296
|
wfi = get_workflow_interface(wf_id)
|
|
305
297
|
wfi.export_graphml()
|
|
306
|
-
|
|
307
|
-
|
|
298
|
+
dot_avail = bool(shutil.which("dot"))
|
|
299
|
+
if dot_avail:
|
|
300
|
+
update_graphml(wf_id, graphmls_dir)
|
|
301
|
+
generate_viz(wf_id, output_dir, graphmls_dir, no_dag_dir, workflow_dir)
|
|
302
|
+
else:
|
|
303
|
+
update_graphml(wf_id, graphmls_dir, output_dir, no_dag_dir)
|
|
304
|
+
return dot_avail
|
|
308
305
|
|
|
309
306
|
|
|
310
307
|
def start_workflow(wf_id):
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/crt/charliecloud_driver.py
RENAMED
|
File without changes
|
|
File without changes
|
{hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/crt/singularity_driver.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/cwl/examples/cat_grep_tar.py
RENAMED
|
File without changes
|
|
File without changes
|
{hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/cwl/examples/comd_driver.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hpc_beeflow-0.1.11.dev2 → hpc_beeflow-0.1.11.dev3}/beeflow/common/deps/container_manager.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|