pjbriggs / nebulizer

Command line utilities to help manage users, tools and data libraries in a Galaxy instance via the API
Other
6 stars 1 forks source link

.. figure:: https://raw.githubusercontent.com/pjbriggs/nebulizer/master/docs/nebulizer_logo.png :alt: Nebulizer Logo :align: center :figwidth: 100% :target: https://github.com/pjbriggs/nebulizer

Command-line utilities to help with managing users, data libraries and tools in a Galaxy <https://galaxyproject.org/> instance, using the Galaxy API via the Bioblend <https://bioblend.readthedocs.io/en/latest/> library.

.. image:: https://readthedocs.org/projects/pip/badge/?version=latest :target: https://nebulizer.readthedocs.io

.. image:: https://badge.fury.io/py/nebulizer.svg :target: https://pypi.python.org/pypi/nebulizer/

.. image:: https://github.com/pjbriggs/nebulizer/workflows/Python%20CI/badge.svg :target: https://github.com/pjbriggs/nebulizer/actions?query=workflow%3A%22Python+CI%22

.. note::

Nebulizer is still a work in progress.

Please exercise caution when attempting irreversible operations, especially against production Galaxy instances (for example when creating users or data libraries).

Quick Start

This quick start gives some examples of using nebulizer commands to perform remote administration tasks on a Galaxy instance from the command line.


Getting Nebulizer

It is recommended to install Nebulizer via pip in a virtualenv, for example:

::

% virtualenv .venv % source .venv/bin/activate % pip install nebulizer

This will provide an executable called nebulizer with a number of subcommands for performing different tasks remotely on Galaxy instances.


Nebulizer Basics

Generally Nebulizer commands take the form:

::

nebulizer COMMAND GALAXY [OPTIONS]

To interact remotely with a Galaxy instance using Nebulizer requires at minimum the URL of the instance and then either an API key or a user login name.

For example to list the data libraries available on Galaxy Main:

::

nebulizer -k 9b376af2250818d14949b3c list_libraries https://usegalaxy.org

or

::

nebulizer -u USER@DOMAIN list_libraries https://usegalaxy.org

In this second case Nebulizer will prompt for the Galaxy password to authenticate the user login, unless it's supplied via the -P option.

To store the Galaxy URL-API key pair against an alias main, to avoid needing full authentication details each time:

::

nebulizer add_key main https://usegalaxy.org 9b376af2250818d14949b3c

or alternatively get Nebulizer to fetch the API key itself by supplying the user login:

::

nebulizer -u USER@DOMAIN add_key main https://usegalaxy.org

More information on managing API keys in Nebulizer can found here <https://nebulizer.readthedocs.io/en/latest/managing_keys.html>_.

The stored alias is then used in subsequent commands, for example to list the data libraries again it is now sufficient to do just:

::

nebulizer list_libraries main

The following sections contain examples of how Nebulizer might be used to perform various administrive tasks.

Nebulizer provides subcommands to perform various administrive tasks:

Managing users <https://nebulizer.readthedocs.io/en/latest/users.html>_:

Managing data libraries <https://nebulizer.readthedocs.io/en/latest/libraries.html>_:

Managing tools <https://nebulizer.readthedocs.io/en/latest/tools.html>_:

Managing quotas <https://nebulizer.readthedocs.io/en/latest/quotas.html>_:

Querying Galaxy instances <https://nebulizer.readthedocs.io/en/latest/querying_galaxy.html>_:

See the tutorial <https://nebulizer.readthedocs.io/en/latest/users.html>_ for a walkthrough some of these commands.


Contributors

Nebulizer has been developed by Peter Briggs @pjbriggs, with contributions from:

Thanks to Peter van Heuseden (@pvanheus <https://github.com/pvanheus>_) for porting Nebulizer into Bioconda.