PODTools: Command-line Utilities

Back to documentation index

About

PODTools is a collection of applications that interface with POD directly from a user's local machine. This enables job submission and queries without first logging into a POD login node. The CLI application enables remote job submission and management, data staging, and file management.

Download & Install

To use PODTools, first you must download and install the necessary packages. PODtools prefers python 2.7 and hasn't yet been tested with python 3.

Download the latest podtools and python-scyld-utils tarballs from the link on the downloads page.

Next, ensure that the following two packages of development files are installed:

Debian/Ubuntu:

  • libssl-dev (Secure Sockets Layer toolkit)
  • libffi-dev (Foreing Function Interface library)

RedHat/Centos:

  • openssl-dev (Secure Sockets Layer toolkit)
  • libffi-devel (Foreign Function Interface library)

We suggest installing PODtools into a virtual environment. If you are unable to run the command "virtualenv", then you will need to first install the OS package (python2-virtualenv).

Unpack the packages:

tar xzf podtools-2.4.1.tar.gz
tar xzf python-scyld-utils-1.4.0.tgz

Create and activate the virtual environment.

virtualenv env
source env/bin/activate

Install the packages.

cd python-scyld-utils
python setup.py install
cd ../podtools-2.4.1
python setup.py install

When using PODtools in a virtualenv, you will always activate your virtualenv first, which puts the PODtools commands into your path (run "source env/bin/activate").

Configuration

PODTools honors a config file from several sources. Each time PODTools is invoked, it will read the files /etc/podtools.conf, then ~/.podtools/podtools.conf. An entry listed in more than one config file will always take it's value from the most recent file read -- in other words, the user's podtools.conf takes precedence over the one in /etc. Additionally, options passed as command line arguments will override entries in the config files.

A recommended approach is to put a minimal podtools.conf in /etc that contains global settings for all users. Those settings should include the POD IP address and port. If all users in your group will be using the same scheduler, you could also set the scheduler here. A user's config file should, at a minimum, contain their POD username. Make sure the config file in /etc/ is readable to all, and editable only by admins.

Sample /etc/podtools.conf:

# POD Tools Configuration File

# Global Options for POD Tools
[podtools]
address=mt1-beoweb.pod.penguincomputing.com
port=443
ssl=True
auth_type=cloudauth
cloudauth_url=https://auth.pod.penguincomputing.com


Sample ~/.podtools/podtools.conf:

# Global Options for POD Tools
[podtools]
user=<your system username>
cloudauth_api_key=<your API key>
cloudauth_api_secret=<your API secret>

See podtools.conf for a description of all config file options and values.

POD-MT1 Sample

If using PODTools on MT1 to status group jobs, the following is all that is needed in a file located at $HOME/.podtools/podtools.conf:

[podtools]
cloudauth_api_key=<your API key>
cloudauth_api_secret=<your API secret>