Skip to main content

Distributed job execution application built for Galaxy (http://galaxyproject.org/).

Project description

Pulsar Logo
Documentation Status Pulsar on the Python Package Index (PyPI) Build Status Test Coverage

This project is a Python server application that allows a Galaxy server to run jobs on remote systems (including Windows) without requiring a shared mounted file systems. Unlike traditional Galaxy job runners - input files, scripts, and config files may be transferred to the remote system, the job is executed, and the results are transfered back to the Galaxy server - eliminating the need for a shared file system.

Full documentation for the project can be found on Read The Docs.

Configuring Galaxy

Galaxy job runners are configured in Galaxy’s job_conf.xml file. Some small examples of how to configure this can be found here, but be sure to checkout job_conf.xml.sample_advanced in your Galaxy code base or on Github for complete information.

Quickstart

Full details on different ways to install Pulsar can be found in the install section of the documentaiton, but if your machine has the proper Python dependencies available it can be quickly download and a test job run with.

mkdir pulsar
cd pulsar
virtualenv venv
. venv/bin/activate # .venv\Scripts\activate if Windows
pip install pulsar-app
pulsar-config
pulsar --daemon # just pulsar if Windows
pulsar-check # runs a test job

The configuration documentation has many details on securing your Pulsar server and enabling advanced features such as cluster integration and message queue communication.

Development and Testing

The recommended approach to setting up a development environment for Pulsar on Linux or Mac OS X is rougly as follows:

git clone https://github.com/galaxyproject/pulsar
cd pulsar
virtualenv .venv
. .venv/bin/activate # .venv\Scripts\activate if Windows
pip install -r requirements.txt
pip install -r dev-requirements.txt

This project is distributed with unit and integration tests (many of which will not run under Windows), the following command will install the needed python components to run these tests. The following command will then run these tests:

make tests

The following command will then produce a coverage report corresponding to this test and place it in the coverage_html_report subdirectory of this project.:

coverage html

Checkout the Contributing documentation for many more details on developing and contributing to Pulsar.

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

History

0.14.0.dev4

0.13.0 (2019-06-25)

  • Various improvements and simplifications to Kubernetes job execution.

0.12.1 (2019-06-03)

  • Retry botched release that didn’t include all relevant commits.

0.12.0 (2019-06-03)

  • Revise Python Galaxy dependencies to use newer style Galaxy decomposition. galaxy-lib can no longer be installed in Pulsar’s environment, so you will likely need to rebuild your Pulsar virtualenv for this release. Pull Request 187

  • Add a Dockerfile for Pulsar with CVMFS (thanks to @nuwang and @afgane). Pull Request 166

  • Various small improvements to Kubernetes pod execution environment. Pull Request 190

  • Improve readme linting. Pull Request 186

  • Update example docs for Condor (thanks to @bgruening). Pull Request 189

0.11.0 (2019-05-16)

  • Implement staging Galaxy metadata input files in the client. 39de377

  • Fix ‘amqp_ack_republish_time’ in sample (thanks to @dannon). Pull Request 185

  • Updated amqp_url in job_conf_sample_mq_rsync.xml (thanks to @AndreasSko). Pull Request 184

  • Use wildcard char for pulsar version (thanks to @VJalili). Pull Request 181

  • Refactor toward more structured inputs. f477bc4

  • Refactor toward passing objectstore identifying information around. Pull Request 180

  • Rework imports for new Galaxy library structure. da086c9

  • Revert empty input testing, it really probably should cause a failure to transfer a non-existent file. 8bd5511

  • Better client mapper documentation. b6278b4

0.10.0 (2019-05-06)

  • Implement support for Kubernetes two container pod jobs - staging and tool execution as separate containers in the same job’s pod. Pull Request 176, Pull Request 178

0.9.1 (2019-05-01)

0.9.0 (2019-04-12)

  • Add configuration parameter to limit stream size read from disk. Pull Request 157

  • Pass full job status for failed and lost jobs. Pull Request 159

  • Improve message handling if problems occur during job setup/staging. Pull Request 160

  • Rework preprocessing job state to improve restartability and reduce job loss. This change should be applied while no jobs are running. Pull Request 164

  • Add support for overriding config through environment variables (thanks to @nuwang). Pull Request 165

  • Minor docs updates (thanks to @afgane). Pull Request 170

  • Python 3 fixes in Pulsar client (thanks to @mvdbeek). Pull Request 172

0.8.3 (2018-02-08)

  • Create universal wheels to enable Python 3 support when installing from PyPI (thanks to @nsoranzo). Pull Request 156

0.8.1 (2018-02-08)

0.8.0 (2017-09-21)

  • Support new features in Galaxy job running/scripting so that Pulsar respects $GALAXY_VIRTUAL_ENV and $PRESERVE_GALAXY_ENVIRONMENT. Fix remote metadata in cases where the tool environment changes the python on $PATH. Pull Request 137

  • Precreate Galaxy tool outputs on the remote before executing (fixes a bug related to missing output files on stage out). Pull Request 141

  • Support the remote_transfer file action without setting the jobs_directory destination param Pull Request 136

  • Fix invalid character in job managers documentation (thanks to @mapa17). Pull Request 130

  • Fix conda_auto_* option resolution and include a sample dependency_resolvers_conf.xml (thanks to @mapa17). Pull Request 132

  • Fix tox/Travis tests. Pull Request 138, Pull Request 139, Pull Request 140

  • Fix a bug with AMQP acknowledgement. Pull Request 143

0.7.4 (2017-02-07)

0.7.3 (2016-10-31)

0.7.2 (2016-08-31)

  • Fix bug causing loops on in response to preprocessing error conditions.

0.7.1 (2016-08-29)

  • Do a release to circumvent a tool version logic error in Galaxy ( released Galaxy versions think 0.7.0 < 0.7.0.dev3).

0.7.0 (2016-08-26)

  • Update Makefile to allow release pulsar as an application and a library for Galaxy at the same time.

  • Small update to test scripts for TravisCI changes.

  • Improvements for embedded Galaxy runner. (TODO: fill this out)

  • Remove support for Python 2.6. 60bf962

  • Update docs to describe project goverance and reuse Galaxy’s Code of Conduct. 7e23d43, dc47140

  • Updated cluster slots detection for SLURM from Galaxy. cadfc5a

  • Various changes to allow usage within Galaxy as a library. ce9d4f9

  • Various changes to allow embedded Pulsar managers within Galaxy. ce9d4f9, d262323, 8f7c04a

  • Introduce a separate working and metadata directory as required for Galaxy 16.04 that requires this separation. 6f4328e

  • Improve logging and comments. 38953f3, a985107, ad33cb9

  • Add Tox target for Python 2.7 unit testing. d7c524e

  • Add Makefile command for setup.py develop. fd82d00

0.6.1 (2015-12-23)

  • Tweak release process that left 0.6.0 with an incorrect PyPI description page.

0.6.0 (2015-12-23)

  • Pulsar now depends on the new galaxy-lib Python package instead of manually synchronizing Python files across Pulsar and Galaxy.

  • Numerous build and testing improvements.

  • Fixed a documentation bug in the code (thanks to @erasche). e8814ae

  • Remove galaxy.eggs stuff from Pulsar client (thanks to @natefoo). 00197f2

  • Add new logo to README (thanks to @martenson). abbba40

  • Implement an optional awknowledgement system on top of the message queue system (thanks to @natefoo). Pull Request 82 431088c

  • Documentation fixes thanks to @remimarenco. Pull Request 78, Pull Request 80

  • Fix project script bug introduced this cycle (thanks to @nsoranzo). 140a069

  • Fix config.py on Windows (thanks to @ssorgatem). Pull Request 84

  • Add a job manager for XSEDE jobs (thanks to @natefoo). 1017bc5

  • Fix pip dependency installation (thanks to @afgane) Pull Request 73

0.5.0 (2015-05-08)

  • Allow cURL downloader to resume transfers during staging in (thanks to @natefoo). 0c61bd9

  • Fix to cURL downloaders status code handling (thanks to @natefoo). 86f95ce

  • Fix non-wheel installs from PyPI. Issue 72

  • Fix mesos imports for newer versions of mesos (thanks to @kellrott). fe3e919

  • More, better logging. 2b3942d, fa2b6dc

0.4.0 (2015-04-20)

  • Python 3 support. Pull Request 62

  • Fix bug encountered when running pulsar-main and pulsar-config commands as scripts. 9d43ae0

  • Add pulsar-run script for issues commands against a Pulsar server (experimental). 3cc7f74

0.3.0 (2015-04-12)

  • Changed the name of project to Pulsar, moved to Github.

  • New RESTful web services interface.

  • SCP and Rsync file staging options added by E. Rasche. Pull Request

  • Allow YAML based configuration.

  • Support for more traditional pip/setup.py-style installs.

  • Dozens of smaller bugfixes and documentation updates.

0.2.0

  • Last version named the LWR - found on BitBucket.

  • Still supported in Galaxy as of 15.03 the release.

  • Introduced support for submitting to various queueing systems, operation as a Mesos framework, Docker support, and various other advanced deployment options.

  • Message queue support.

  • Framework for configurable file actions introduced.

0.1.0

0.0.1

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pulsar-app-0.14.0.dev4.tar.gz (160.2 kB view details)

Uploaded Source

Built Distribution

pulsar_app-0.14.0.dev4-py2.py3-none-any.whl (181.8 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file pulsar-app-0.14.0.dev4.tar.gz.

File metadata

  • Download URL: pulsar-app-0.14.0.dev4.tar.gz
  • Upload date:
  • Size: 160.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/2.7.13

File hashes

Hashes for pulsar-app-0.14.0.dev4.tar.gz
Algorithm Hash digest
SHA256 26d07976ef7636e346ff92a03e7b3b0dbc56c355f7cf3bb98ac0d4687e399db1
MD5 2311206b0f1cd8811ff1a8567257393b
BLAKE2b-256 34cee6bf11ed99dc67bf84b3c123ee388d644c26353adb34991d70eac9e79495

See more details on using hashes here.

File details

Details for the file pulsar_app-0.14.0.dev4-py2.py3-none-any.whl.

File metadata

  • Download URL: pulsar_app-0.14.0.dev4-py2.py3-none-any.whl
  • Upload date:
  • Size: 181.8 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/2.7.13

File hashes

Hashes for pulsar_app-0.14.0.dev4-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 e623493c7c4a76c7cd00325ffb746f20a77d63c2e2f96dd814f4b4d8502e9ba5
MD5 1f97386800db6a1e1e1636da9ccb1e16
BLAKE2b-256 0747f417f99d3754bc934dcc259ab32d431b52a4e3962e333bde48198f2fe68c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page