Welcome to Tapis CLI

Build status Documentation Status Publication Link

Build and run scalable computational & data science workflows using Tapis

What is Tapis CLI

Tapis CLI is a human-friendly, scriptable command line interface, implemented in Python, that helps scientists and engineers build and manage scalable computational and data science workflow projects using the Tapis platform. It is a replacement for a pure-Bash CLI environment known as agave-cli that we hope brings you new features, better reliability, and dramatically enhanced productivity.

Tapis CLI provides a unified interface to multiple web service APIs, allowing them to be easily orchestrated and composed into higher-order constructs combining HPC, data management, cloud computing, and other aspects of computing.

Get in Touch

Thank you for your interest in Tapis CLI. We are here to help. There are several ways to get in touch with us:

Installing Tapis CLI

Tapis CLI is available as a Python package. You can visit its GitHub repository or get the latest version from PyPI: pip install tapis-cli

We highly recommend using Python 3.7+ as the Python runtime behind Tapis CLI. We support Python 2.7 for legacy applications, but on a best-effort basis as Python 2.7 is a deprecated language.

From Source

$ git clone https://github.com/TACC-Cloud/tapis-cli.git
$ cd tapis-cli
$ pip install --upgrade --user .

Container Image

As an alternative to local installation, the CLI is available as a public DockerHub image tacc/tapis-cli:latest. Run it like so:

docker run --rm -it -v ${PWD}:/work -v ${HOME}/.agave:/root/.agave \
    tacc/tapis-cli:latest bash

Initialize a Session

You must set up a Tapis session on each host where you will use Tapis CLI. This is a scripted process implemented by tapis auth init. The first time you run this command on a new host, you will be shown an introductory screen where we ask two questions of you. Future invocations of the init command will not display these messages unless their contents change. You will then be prompted for tenant, username, and password required to set up a session.

$ tapis auth init

Use of Tapis requires acceptance of the TACC Acceptable Use Policy
which can be found at https://portal.tacc.utexas.edu/tacc-usage-policy

Do you agree to abide by the AUP? (type 'y' or 'n' then Return) y

Use of Tapis requires acceptance of the Tapis Project Code of Conduct
which can be found at https://tapis-project.org/code-conduct

Do you agree to abide by this CoC? (type 'y' or 'n' then Return) y

To improve our ability to support Tapis and the Tapis CLI, we would like to
collect your IP address, operating system and Python version. No personally-
identifiable information will be collected. This data will only be shared in
aggregate form with funders and Tapis platform stakeholders.

Do you consent to this reporting? [Y/n]: Y

Tapis API access
################
Available Tenants
*****************
3dem        agave.prod      araport.org     bridge  designsafe
iplantc.org irec    portals sd2e    sgci
tacc.prod   vdjserver.org

Enter a tenant name: tacc.prod
Username: tacotron
Password for tacotron:
Container registry access
#########################
Registry Url [https://index.docker.io]:
Registry Username []: tacotron
Registry Password []:
Registry Namespace []: TACO
Git server access
#################
Git Url [https://github.com]:
Git Username []: taconaut
Git Token []:
Git Namespace []: TACOS

+--------------------+---------------------------------+
| Field              | Value                           |
+--------------------+---------------------------------+
| tenant_id          | tacc.prod                       |
| username           | tacotron                        |
| api_key            | uAShaDfy0vF7hgFcAqx7oeAtO6oa    |
| access_token       | a31c66cfaa45451c95df6fd473ffd4b |
| expires_at         | Thu Sep 19 14:08:37 2019        |
| registry_url       | https://index.docker.io         |
| registry_username  | tacotron                        |
| registry_password  | T0rchy$                         |
| registry_namespace | tacotron                        |
| git_url            | https://github.com              |
| git_username       | tacomatic                       |
| git_token          | hqd8kw59h2h5z4zw78e64qz9        |
| git_namespace      | TACOS                           |
+--------------------+---------------------------------+

Note

It is possible to bypass display of the first-run display in order to use Tapis CLI as part of a continuous integration deployment by setting TAPIS_CLI_NO_PROMPT=1 in the user environment.

Getting Help

The CLI features extensive contextual help. Get a listing of supported commands and global options via --help.

$ tapis --help

Find available commands:

$ tapis apps --help
Command "apps" matches:
apps create
apps disable
apps enable
apps history
apps list
apps pems grant
...

Get help for a specific command:

There is a --help flag for each command.

$ tapis help apps list
$ # or
$ tapis apps list --help

Overview

Tapis CLI implements a consistent grammar and syntax for all Tapis services, as well as for client-side workflows (such as application publishing) that coordinate multiple API calls across different services. Verbs are named consistently across services, as are subjects and objects. Usually, entity names and verbs track perfectly to the underlying API, but in some cases, revisions have been made for clarity based on user feedback.

The top-level command is tapis and has the following usage options.

$ tapis -h
usage: tapis [--version] [-v | -q] [--log-file LOG_FILE] [-h] [--debug]

Tapis CLI: Command line tools to support the TACC Tapis platform. For support
contact "TACC Help" <cli-help@tacc.cloud>

optional arguments:
--version            show program's version number and exit
-v, --verbose        Increase verbosity of output. Can be repeated.
-q, --quiet          Suppress output except warnings and errors.
--log-file LOG_FILE  Specify a file to log output. Disabled by default.
-h, --help           Show help message and exit.
--debug              Show tracebacks on errors.

Help

Every command and subcommand has a help option. It is accessible by passing -h. Please use this as much effort has gone into making the help text consistent and correct across the entire CLI.

Verbose Output

The -v flag replicates and extends the original Bash CLI feature of presenting the results from an API command as JSON. Please note that while every attempt is made to avoid any changes, the displayed JSON is rendered by the CLI rather than being displayed directly as it comes back from the service. This was critical for implementing robust error handling.

Debug Mode

Inevitably, an error will be encountered. The cliff framework that the CLI is implemented in does a great job at swallowing errors, printing out just a summary to the screen when they occur.

To see a detailed Python stack trace (for example, if you are trying to file an issue), repeat the failed command with the --debug option.

Authn/Authz

To initialize a host to use Tapis, run the tapis auth init command.

$ tapis auth init
Available Tenants
=================
3dem        agave.prod      araport.org     bridge  designsafe
iplantc.org irec    portals sd2e    sgci
tacc.prod   vdjserver.org
Enter a tenant name: tacc.prod
Username: tacotron
Password for tacotron:
+--------------+---------------------------------+
| Field        | Value                           |
+--------------+---------------------------------+
| tenant_id    | tacc.prod                       |
| username     | tacotron                        |
| client_name  | _cli-tacc.prod-tacotron-macbook |
| api_key      | uAShaDfy0vF7hgFcAqx7oeAtO6oa    |
| access_token | a31c66cfaa45451c95df6fd473ffd4b |
| expires_at   | Thu Sep 19 14:08:37 2019        |
+--------------+---------------------------------+

Re-running without changing tenant or username will display the current auth context, while changing either tenant or username (or specifying --interactive mode) will re-initialize the host to use the specified tenant/username combination.

Explicit configuration switching (tapis auth switch) is not supported.

NOTE If you have a configured, but expired Agave client in ~/.agave/current, the init command may fail to detect the expiration and may skip a key step. If you get a message Tapis client appears invalid re-run with tapis auth init --interactive and follow the prompts.

Manually Specifying Client Name

The default behavior for Tapis CLI is to generate and manage one Oauth2 client per host you have installed it on. This helps avoid race conditions when you might be using the CLI in two places at once. This is done by naming the client after your local host. However, this can be a problem if you are using Tapis CLI for automation where the hostname may change (such as within Github actions or a Jenkins job). In this case, you can manually specify a client name by passing --client-name along with tapis auth init. Please note the client name must be <= 64 characters and may only contain A-Za-z0-9 and . - _

Commands

auth init

Command description

tapis auth init
    [--interactive]
    [--tenant-id TENANT_ID]
    [--username USERNAME]
    [--password PASSWORD]
    [--client-name CLIENT_NAME]
    [--registry-url URL]
    [--registry-username USERNAME]
    [--registry-password PASSWORD]
    [--registry-namespace NAMESPACE]
    [--git-username USERNAME]
    [--git-token TOKEN]
    [--git-namespace NAMESPACE]
    [--github]
    [--no-dockerhub]
--interactive

Prompt for all values

--tenant-id <TENANT_ID>

Tapis tenant ID

--username <USERNAME>

Tapis username

--password <PASSWORD>

Tapis password

--client-name <CLIENT_NAME>

Tapis client name. Leave empty to auto-generate.

--registry-url URL

Registry URL

--registry-username USERNAME

Registry username

--registry-password PASSWORD

Registry password

--registry-namespace NAMESPACE

Registry namespace

--git-username USERNAME

Git username

--git-token TOKEN

Git personal access token

--git-namespace NAMESPACE

Git namespace

--github

Configure Github credentials

--no-dockerhub

Do not configure DockerHub credentials

auth show

Show current Tapis authentication configuration

tapis auth show

This command is provided by the tapis-cli plugin.

auth tokens create

Command description

tapis auth tokens create
    [--password TAPIS_PASSWORD]
    [--token-username TOKEN_USERNAME]
--password <TAPIS_PASSWORD>

Tapis password

--token-username <TOKEN_USERNAME>

Impersonation username (requires admin privileges)

auth tokens refresh

Command description

tapis auth tokens refresh

Actors

Support for Tapis actors (also known as Abaco actors) is is provided by the actors command set. It includes supplementary workflows for creating and deploying actor projects such as actors init and actors deploy.

General

List and inspect all Actors the currently authenticated user can access.

actors list

List available Actors

tapis actors list
    [--sort-ascending | --sort-descending]
    [--filter GLOB]
--sort-ascending

sort the column(s) in ascending order

--sort-descending

sort the column(s) in descending order

--filter GLOB

Filter by name,description,image,owner

Replaces legacy CLI command “abaco list”

actors show

Show details for an Actor

tapis actors show [-Z NONCE] ACTOR_ID
-Z NONCE, --nonce NONCE

Tapis nonce

ACTOR_ID

Actor identifier

Replaces legacy CLI command “abaco list”

Messaging

Send a message to an Actor’s mailbox, resulting in an Execution. This can be done asynchronously (default) or synchronously. For the latter case, it is possible to save the result to a file.

actors submit

Send an asynchronous message to an Actor

tapis actors submit
    [-Z NONCE]
    (-m STRING | -F FILEPATH)
    [-e key=value]
    ACTOR_ID
-Z NONCE, --nonce NONCE

Tapis nonce

-m STRING, --message STRING

Message to send to the Actor

-F FILEPATH, --file FILEPATH

Text file containing Actor message

-e key=value

Variable to send to the Actor (can be specified multiple times)

ACTOR_ID

Actor identifier

Replaces legacy CLI command “abaco run”

actors run

Send a message to an Actor and await response

tapis actors run
    [-Z NONCE]
    (-m STRING | -F FILEPATH)
    [-e key=value]
    [-O OUTPUT]
    [--binary]
    ACTOR_ID
-Z NONCE, --nonce NONCE

Tapis nonce

-m STRING, --message STRING

Message to send to the Actor

-F FILEPATH, --file FILEPATH

Text file containing Actor message

-e key=value

Variable to send to the Actor (can be specified multiple times)

-O <OUTPUT>

Output destination (default: STDOUT)

--binary

Treat output as binary data

ACTOR_ID

Actor identifier

Replaces legacy CLI command “abaco run”

Executions

List and inspect Executions for a given Actor. It is also possible to view the logs for a specific Execution.

actors execs list

List Executions for a specific Actor

tapis actors execs list
    [--sort-ascending | --sort-descending]
    [-Z NONCE]
    [--filter GLOB]
    ACTOR_ID
--sort-ascending

sort the column(s) in ascending order

--sort-descending

sort the column(s) in descending order

-Z NONCE, --nonce NONCE

Tapis nonce

--filter GLOB

Filter by finalState,status

ACTOR_ID

Actor identifier

Replaces legacy CLI command “abaco executions”

actors execs logs

Show logs for a specific Execution

tapis actors execs logs
    [--sort-ascending | --sort-descending]
    [-Z NONCE]
    ACTOR_ID
    EXECUTION_ID
--sort-ascending

sort the column(s) in ascending order

--sort-descending

sort the column(s) in descending order

-Z NONCE, --nonce NONCE

Tapis nonce

ACTOR_ID

Actor identifier

EXECUTION_ID

Execution identifier

Replaces legacy CLI command “abaco logs”

actors execs show

Show details of a specific Execution

tapis actors execs show [-Z NONCE] ACTOR_ID EXECUTION_ID
-Z NONCE, --nonce NONCE

Tapis nonce

ACTOR_ID

Actor identifier

EXECUTION_ID

Execution identifier

Replaces legacy CLI command “abaco executions”

actors execs stop

Delete queued messages from the Actor mailbox, preventing their execution. Running executions will continue.

tapis actors execs stop [-Z NONCE] ACTOR_ID
-Z NONCE, --nonce NONCE

Tapis nonce

ACTOR_ID

Actor identifier

Sharing

Assign and manage human-readable nicknames for Actors that can be used in lieu of their unique IDs.

Aliases

actors aliases create

Add an Alias for an Actor

tapis actors aliases create ALIAS_ID ACTOR_ID
ALIAS_ID

Alias string

ACTOR_ID

Actor identifier

Replaces legacy CLI command “abaco aliases create”

actors aliases delete

Delete an Actor Alias

tapis actors aliases delete ALIAS_ID
ALIAS_ID

Alias string

Replaces legacy CLI command “abaco aliases rm”

actors aliases list

List all Actor Aliases

tapis actors aliases list
    [--sort-ascending | --sort-descending]
    [-l INT]
    [-o INT]
    [--filter GLOB]
--sort-ascending

sort the column(s) in ascending order

--sort-descending

sort the column(s) in descending order

-l INT, --limit INT

Limit to N records (default: 100)

-o INT, --offset INT

Skip first N records

--filter GLOB

Filter by owner

Replaces legacy CLI command “abaco aliases list”

actors aliases show

Show details for an Actor Alias

tapis actors aliases show ALIAS_ID
ALIAS_ID

Alias string

Replaces legacy CLI command “abaco aliases list”

actors aliases update

Update an Alias to resolve to a different Actor

tapis actors aliases update ALIAS_ID ACTOR_ID
ALIAS_ID

Alias string

ACTOR_ID

Actor identifier

Replaces legacy CLI command “”

Nonces

Generate and manage Nonces, which are a kind of API key for Actors that allow them to be used without authenticating to the Tapis platform.

actors nonces create

Create a Nonce for the specified Actor (or Alias)

tapis actors nonces create
    [--level LEVEL]
    [--max-uses INT]
    [-A]
    ACTOR_ID
--level LEVEL

Optional Permissions level for this Nonce (default: EXECUTE)

--max-uses INT

Optional Max number of times Nonce can be redeemed (default: -1)

-A

Identifier is an ALIAS rather than an ACTOR_ID

ACTOR_ID

Actor identifier

actors nonces delete

Delete a Nonce from an Actor (or Alias)

tapis actors nonces delete [-A] ACTOR_ID NONCE_ID
-A

Identifier is an ALIAS rather than an ACTOR_ID

ACTOR_ID

Actor identifier

NONCE_ID

Nonce identifier

actors nonces list

List Nonces for the specified Actor (or Alias)

tapis actors nonces list
    [--sort-ascending | --sort-descending]
    [--filter GLOB]
    [-A]
    ACTOR_ID
--sort-ascending

sort the column(s) in ascending order

--sort-descending

sort the column(s) in descending order

--filter GLOB

Filter by description,level

-A

Identifier is an ALIAS rather than an ACTOR_ID

ACTOR_ID

Actor identifier

actors nonces show

Show details for a Nonce attached to an Actor (or Alias)

tapis actors nonces show [-A] ACTOR_ID NONCE_ID
-A

Identifier is an ALIAS rather than an ACTOR_ID

ACTOR_ID

Actor identifier

NONCE_ID

Nonce identifier

Permissions

Grant and manage update and execution rights for an Actor to other Tapis platform users.

Administration

Create and manage Actors. This can be accomplished by interacting directly with the Abaco APIs via create, update, and delete or via Tapis CLI workflows init and deploy.

actors create

Create an Actor

tapis actors create
    --repo ACTOR_REPO
    -n NAME
    [-d DESCRIPTION]
    [--stateful | --stateless]
    [--hints ACTOR_HINTS]
    [--privileged | --unprivileged]
    [--tokens | --no-tokens]
    [--actor-uid | --user-uid]
    [-e KEY=VALUE | -E ACTOR_ENV_FILE]
    [--link ACTOR_ID|ALIAS]
    [--webhook URL]
    [--cron-schedule SCHEDULE]
    [--cron-on | --cron-off]
    [--force]
--repo <ACTOR_REPO>

Docker image repo for the Actor

-n NAME, --name NAME

Name of the Actor

-d DESCRIPTION, --description DESCRIPTION

Plaintext description of the Actor

--stateful

Actor will be stateful

--stateless

Actor will be stateless [default]

--hints <ACTOR_HINTS>

Comma-separated list of keyword hints

--privileged

Actor will have elevated privileges

--unprivileged

Actor will not have elevated privileges [default]

--tokens

Actor will request Tapis Oauth2 tokens [default]

--no-tokens

Actor will not request Tapis Oauth2 tokens

--actor-uid

Actor will run as container UID

--user-uid

Actor will run as the User UID [default]

-e KEY=VALUE, --env KEY=VALUE

Actor environment variables (can be specified multiple times)

-E <ACTOR_ENV_FILE>, --env-file <ACTOR_ENV_FILE>

Actor environment variables JSON file

Actor ID or Alias event notifications

--webhook URL

URL for event notifications

--cron-schedule SCHEDULE

Cron schedule (yyyy-mm-dd hh + <int> <time unit>)

--cron-on

Actor cron is on

--cron-off

Actor cron is off

--force

Force Abaco to update Actor container image

Replaces legacy CLI command “abaco create”

actors update

Update an Actor

tapis actors update
    --repo ACTOR_REPO
    [-d DESCRIPTION]
    [--hints ACTOR_HINTS]
    [--privileged | --unprivileged]
    [--tokens | --no-tokens]
    [--actor-uid | --user-uid]
    [-e KEY=VALUE | -E ACTOR_ENV_FILE]
    [--link ACTOR_ID|ALIAS]
    [--webhook URL]
    [--cron-schedule SCHEDULE]
    [--cron-on | --cron-off]
    [--force]
    ACTOR_ID
--repo <ACTOR_REPO>

Docker image repo for the Actor

-d DESCRIPTION, --description DESCRIPTION

Plaintext description of the Actor

--hints <ACTOR_HINTS>

Comma-separated list of keyword hints

--privileged

Actor will have elevated privileges

--unprivileged

Actor will not have elevated privileges [default]

--tokens

Actor will request Tapis Oauth2 tokens [default]

--no-tokens

Actor will not request Tapis Oauth2 tokens

--actor-uid

Actor will run as container UID

--user-uid

Actor will run as the User UID [default]

-e KEY=VALUE, --env KEY=VALUE

Actor environment variables (can be specified multiple times)

-E <ACTOR_ENV_FILE>, --env-file <ACTOR_ENV_FILE>

Actor environment variables JSON file

Actor ID or Alias event notifications

--webhook URL

URL for event notifications

--cron-schedule SCHEDULE

Cron schedule (yyyy-mm-dd hh + <int> <time unit>)

--cron-on

Actor cron is on

--cron-off

Actor cron is off

--force

Force Abaco to update Actor container image

ACTOR_ID

Actor identifier

Replaces legacy CLI command “abaco update”

actors delete

Delete an Actor

tapis actors delete ACTOR_ID
ACTOR_ID

Actor identifier

Replaces legacy CLI command “abaco rm”

actors deploy

Deploy an Actor from a project directory

tapis actors deploy
    [--sort-ascending | --sort-descending]
    [--ini FILEPATH]
    [-I ACTOR_ID | --force-create]
    [-E ENVS_FILE]
    [-R]
    [--ignore-errors]
    [--no-build]
    [--no-pull]
    [--no-push]
    [--no-create]
    [--no-cache]
    [--no-grant]
--sort-ascending

sort the column(s) in ascending order

--sort-descending

sort the column(s) in descending order

--ini FILEPATH

.ini file (project.ini)

-I <ACTOR_ID>, --id <ACTOR_ID>

Actor identifier (overrides existing)

--force-create

Force creation of new Actor

-E <ENVS_FILE>, --env-file <ENVS_FILE>

Environment variables JSON file (secrets.json)

-R, --dry-run

Shortcut: Only build container

--ignore-errors

Ignore deployment errors and warnings

--no-build

Do not build container image

--no-pull

Do not pull source image when building

--no-push

Do not push built container image

--no-create

Do not create or update Tapis actor

--no-cache

Do not cache the Tapis actor identifer

--no-grant

Do not grant actor permissions

Replaces legacy CLI command “abaco deploy”

Workers

View and manage an Actor’s workers, which control the extent to which the Actor can scale to accomodate additional concurrent messages.

actors workers create

Add Workers to the specified Actor

tapis actors workers create ACTOR_ID INT
ACTOR_ID

Actor identifier

INT

The number of workers to ensure are running; Note:Only Admins are authorized to update workers

Replaces legacy CLI command “abaco workers”

actors workers delete

Delete a Worker

tapis actors workers delete ACTOR_ID WORKER_ID
ACTOR_ID

Actor identifier

WORKER_ID

Worker identifier

actors workers list

List Workers for an Actor

tapis actors workers list
    [--sort-ascending | --sort-descending]
    [-Z NONCE]
    [--filter GLOB]
    ACTOR_ID
--sort-ascending

sort the column(s) in ascending order

--sort-descending

sort the column(s) in descending order

-Z NONCE, --nonce NONCE

Tapis nonce

--filter GLOB

Filter by id

ACTOR_ID

Actor identifier

Replaces legacy CLI command “abaco workers”

actors workers show

Show details for a Worker

tapis actors workers show [-Z NONCE] ACTOR_ID WORKER_ID
-Z NONCE, --nonce NONCE

Tapis nonce

ACTOR_ID

Actor identifier

WORKER_ID

Worker identifier

Projects

Create and deploy new actors from a configuration-driven template.

apps init

Initialize a new Tapis App project from a template

tapis apps init
    [--sort-ascending | --sort-descending]
    [-L]
    [-R]
    [-O DIRECTORY]
    [-N STRING]
    [--app-label STRING]
    [--app-description STRING]
    [--app-version N.N.N]
    [--repo URL]
    [--checkout COMMIT]
    [--template TEMPLATE]
--sort-ascending

sort the column(s) in ascending order

--sort-descending

sort the column(s) in descending order

-L, --list-templates

List available templates and quit

-R, --dry-run

Show configuration and quit

-O DIRECTORY, --output-dir DIRECTORY

Output directory (default: .)

-N STRING, --app-name STRING

App name (default: new_app)

--app-label STRING

App human-readable label

--app-description STRING

One-sentence description

--app-version N.N.N

App semantic version

--repo URL

Templates repository (https://github.com/TACC-Cloud/cc-tapis-v2-app.git)

--checkout COMMIT

Branch/Tag/Commit (master)

--template TEMPLATE

Template ID (default)

Replaces legacy CLI command “apps-init”

apps deploy

Deploy an App from a project directory

tapis apps deploy
    [--sort-ascending | --sort-descending]
    [-W DIRECTORY]
    [-F FILEPATH]
    [--ini FILEPATH]
    [-R]
    [--ignore-errors]
    [--no-build]
    [--no-pull]
    [--no-push]
    [--backup]
    [--no-upload]
    [--no-create]
    [--no-grant]
    [--no-grant-roles]
    [--display]
--sort-ascending

sort the column(s) in ascending order

--sort-descending

sort the column(s) in descending order

-W DIRECTORY

Working directory

-F FILEPATH, --file FILEPATH

JSON payload file (app.json)

--ini FILEPATH

.ini file (project.ini)

-R, --dry-run

Shortcut: Only build container

--ignore-errors

Ignore deployment errors and warnings

--no-build

Do not build container image

--no-pull

Do not pull source image when building

--no-push

Do not push built container image

--backup

Back up deployment path if present

--no-upload

Do not upload app assets to Tapis storage

--no-create

Do not create a Tapis app record

--no-grant

Do not automatically do application permission grant(s)

--no-grant-roles

Do not automatically do system role grant(s)

--display

Display rendered app in deployment log

Replaces legacy CLI command “apps-deploy”

Apps

Support for the core Tapis applications life cycle is provided by the apps command set. Extensions to the core API commands, such as apps init and apps deploy are also included.

General

apps list

List the Apps catalog

tapis apps list
    [--sort-ascending | --sort-descending]
    [-l INT]
    [-o INT]
--sort-ascending

sort the column(s) in ascending order

--sort-descending

sort the column(s) in descending order

-l INT, --limit INT

Limit to N records (default: 100)

-o INT, --offset INT

Skip first N records

Replaces legacy CLI command “apps-list”

apps show

Show details for an App

tapis apps show APP_ID
APP_ID

App identifier

Replaces legacy CLI command “apps-list”

apps history

Show history for an App

tapis apps history
    [--sort-ascending | --sort-descending]
    [-l INT]
    [-o INT]
    APP_ID
--sort-ascending

sort the column(s) in ascending order

--sort-descending

sort the column(s) in descending order

-l INT, --limit INT

Limit to N records (default: 100)

-o INT, --offset INT

Skip first N records

APP_ID

App identifier

Replaces legacy CLI command “apps-history”

apps create

Create a new App

tapis apps create [-W DIRECTORY] [-F FILEPATH] [--ini FILEPATH]
-W DIRECTORY

Working directory

-F FILEPATH, --file FILEPATH

JSON payload file

--ini FILEPATH

.ini file (project.ini)

Replaces legacy CLI command “apps-addupdate”

apps update

Update an existing App

tapis apps update [-W DIRECTORY] [-F FILEPATH] [--ini FILEPATH] APP_ID
-W DIRECTORY

Working directory

-F FILEPATH, --file FILEPATH

JSON payload file

--ini FILEPATH

.ini file (project.ini)

APP_ID

App identifier

Replaces legacy CLI command “apps-addupdate”

apps clone

Clone an App

tapis apps clone
    [-e EXECUTION_SYSTEM]
    [-s STORAGE_SYSTEM]
    [-p STORAGE_PATH]
    [-n APP_NAME]
    [-x APP_VERSION]
    APP_ID
-e <EXECUTION_SYSTEM>, --execution-system <EXECUTION_SYSTEM>

Execution system where the cloned app will run. Defaults to the current app’s execution system.

-s <STORAGE_SYSTEM>, --deployment-system <STORAGE_SYSTEM>

Storage system where the cloned app assets will be stored. Defaults to the current user’s default storage system.

-p <STORAGE_PATH>, --deployment-path <STORAGE_PATH>

Path on storage system where the cloned app assets will be stored. Only applies when cloning a public app.

-n <APP_NAME>, --app-name <APP_NAME>

Optional new name of the cloned app. Defaults to the current App name and the authenticated user’s username appended with a dash.

-x <APP_VERSION>, --app-version <APP_VERSION>

Optional new version of the cloned app. Defaults to the current app’s version number.

APP_ID

App identifier

Replaces legacy CLI command “apps-clone”

apps disable

Disable usage of an App

tapis apps disable APP_ID
APP_ID

App identifier

Replaces legacy CLI command “apps-disable”

apps enable

Restore usage for an App if disabled

tapis apps enable APP_ID
APP_ID

App identifier

Replaces legacy CLI command “apps-enable”

Sharing

Manage access by other users to Tapis apps that you control.

apps pems grant

Grant Permissions on an App to a User

tapis apps pems grant
    [--sort-ascending | --sort-descending]
    [-l INT]
    [-o INT]
    APP_ID
    USERNAME
    PERMISSION
--sort-ascending

sort the column(s) in ascending order

--sort-descending

sort the column(s) in descending order

-l INT, --limit INT

Limit to N records (default: 100)

-o INT, --offset INT

Skip first N records

APP_ID

App identifier

USERNAME

Tapis username

PERMISSION

Permission string (ALL| READ| WRITE| READ_WRITE| EXECUTE| READ_EXECUTE| WRITE_EXECUTE| NONE)

Replaces legacy CLI command “apps-pems-update”

apps pems list

List Permissions for an specific App

tapis apps pems list
    [--sort-ascending | --sort-descending]
    [-l INT]
    [-o INT]
    APP_ID
--sort-ascending

sort the column(s) in ascending order

--sort-descending

sort the column(s) in descending order

-l INT, --limit INT

Limit to N records (default: 100)

-o INT, --offset INT

Skip first N records

APP_ID

App identifier

Replaces legacy CLI command “apps-pems-list”

apps pems revoke

Revoke Permissions on an App for a User

tapis apps pems revoke
    [--sort-ascending | --sort-descending]
    [-l INT]
    [-o INT]
    APP_ID
    USERNAME
--sort-ascending

sort the column(s) in ascending order

--sort-descending

sort the column(s) in descending order

-l INT, --limit INT

Limit to N records (default: 100)

-o INT, --offset INT

Skip first N records

APP_ID

App identifier

USERNAME

Tapis username

Replaces legacy CLI command “apps-pems-update”

apps pems show

Show Permissions on an App for specific User

tapis apps pems show APP_ID USERNAME
APP_ID

App identifier

USERNAME

Tapis username

Replaces legacy CLI command “apps-pems-list”

Administration

Manage global settings for a Tapis app.

apps publish

Publish an App for use by others

tapis apps publish
    [-e PUBLIC_EXECUTION_SYSTEM]
    [-n APP_NAME]
    [-x APP_VERSION]
    APP_ID
-e <PUBLIC_EXECUTION_SYSTEM>, --execution-system <PUBLIC_EXECUTION_SYSTEM>

Optional execution system where the public app will run

-n <APP_NAME>, --app-name <APP_NAME>

Optional new name of the public app

-x <APP_VERSION>, --app-version <APP_VERSION>

Optional new version of the public app

APP_ID

App identifier

Replaces legacy CLI command “apps-publish”

apps unpublish

Disable usage of an App

tapis apps unpublish APP_ID
APP_ID

App identifier

Replaces legacy CLI command “apps-disable”

Projects

Create and deploy new apps from a configuration-driven template.

apps init

Initialize a new Tapis App project from a template

tapis apps init
    [--sort-ascending | --sort-descending]
    [-L]
    [-R]
    [-O DIRECTORY]
    [-N STRING]
    [--app-label STRING]
    [--app-description STRING]
    [--app-version N.N.N]
    [--repo URL]
    [--checkout COMMIT]
    [--template TEMPLATE]
--sort-ascending

sort the column(s) in ascending order

--sort-descending

sort the column(s) in descending order

-L, --list-templates

List available templates and quit

-R, --dry-run

Show configuration and quit

-O DIRECTORY, --output-dir DIRECTORY

Output directory (default: .)

-N STRING, --app-name STRING

App name (default: new_app)

--app-label STRING

App human-readable label

--app-description STRING

One-sentence description

--app-version N.N.N

App semantic version

--repo URL

Templates repository (https://github.com/TACC-Cloud/cc-tapis-v2-app.git)

--checkout COMMIT

Branch/Tag/Commit (master)

--template TEMPLATE

Template ID (default)

Replaces legacy CLI command “apps-init”

apps deploy

Deploy an App from a project directory

tapis apps deploy
    [--sort-ascending | --sort-descending]
    [-W DIRECTORY]
    [-F FILEPATH]
    [--ini FILEPATH]
    [-R]
    [--ignore-errors]
    [--no-build]
    [--no-pull]
    [--no-push]
    [--backup]
    [--no-upload]
    [--no-create]
    [--no-grant]
    [--no-grant-roles]
    [--display]
--sort-ascending

sort the column(s) in ascending order

--sort-descending

sort the column(s) in descending order

-W DIRECTORY

Working directory

-F FILEPATH, --file FILEPATH

JSON payload file (app.json)

--ini FILEPATH

.ini file (project.ini)

-R, --dry-run

Shortcut: Only build container

--ignore-errors

Ignore deployment errors and warnings

--no-build

Do not build container image

--no-pull

Do not pull source image when building

--no-push

Do not push built container image

--backup

Back up deployment path if present

--no-upload

Do not upload app assets to Tapis storage

--no-create

Do not create a Tapis app record

--no-grant

Do not automatically do application permission grant(s)

--no-grant-roles

Do not automatically do system role grant(s)

--display

Display rendered app in deployment log

Replaces legacy CLI command “apps-deploy”

Config

View and manage global configuration settings for Tapis CLI.

config get

Get a Tapis CLI setting

tapis config get SETTING_NAME
SETTING_NAME

Tapis setting name

This command is provided by the tapis-cli plugin.

config list

List current Tapis CLI settings

tapis config list [--sort-ascending | --sort-descending]
--sort-ascending

sort the column(s) in ascending order

--sort-descending

sort the column(s) in descending order

This command is provided by the tapis-cli plugin.

config set

Set a Tapis CLI setting

tapis config set SETTING_NAME VALUE
SETTING_NAME

Tapis setting name

VALUE

New value for setting

This command is provided by the tapis-cli plugin.

config unset

Unset a Tapis CLI setting

tapis config unset SETTING_NAME
SETTING_NAME

Tapis setting name

This command is provided by the tapis-cli plugin.

Files

Support for the core Tapis file management is provided by the files command set. New, and of note, is support for wildcard include and exclude filters when uploading and downloading, as well as a “sync” mode for downloads that only retrieves files from Tapis if they are different from their local copy.

General Commands

files list

List contents of a Files path

tapis files list
    [--sort-ascending | --sort-descending]
    [-l INT]
    [-o INT]
    [--all]
    [--reverse]
    [--sort-size | --sort-time]
    AGAVE_URI
--sort-ascending

sort the column(s) in ascending order

--sort-descending

sort the column(s) in descending order

-l INT, --limit INT

Limit to N records (default: 100)

-o INT, --offset INT

Skip first N records

--all

Include hidden files

--reverse

Reverse sort order.

--sort-size

Sort by size before sorting lexicographically.

--sort-time

Sort by time modified before sorting lexicographically.

AGAVE_URI

Files URI (agave://)

Replaces legacy CLI command “files-list”

files show

Show details of a Files path

tapis files show [--all] AGAVE_URI
--all

Include hidden files

AGAVE_URI

Files URI (agave://)

Replaces legacy CLI command “files-list”

files history

List history for a Files

tapis files history
    [--sort-ascending | --sort-descending]
    [-l INT]
    [-o INT]
    AGAVE_URI
--sort-ascending

sort the column(s) in ascending order

--sort-descending

sort the column(s) in descending order

-l INT, --limit INT

Limit to N records (default: 100)

-o INT, --offset INT

Skip first N records

AGAVE_URI

Files URI (agave://)

Replaces legacy CLI command “files-history”

files mkdir

Create a directory on a System

tapis files mkdir AGAVE_URI DIRECTORY
AGAVE_URI

Files URI (agave://)

DIRECTORY

Name of the new directory (relative to <agave_uri>)

Replaces legacy CLI command “files-mkdir”

files copy

Copy a Files path between locations within Tapis

tapis files copy AGAVE_URI DESTINATION
AGAVE_URI

Files URI (agave://)

DESTINATION

Destination path

Replaces legacy CLI command “files-copy”

files move

Move a Files path from one location to another on a System

tapis files move AGAVE_URI DESTINATION
AGAVE_URI

Files URI (agave://)

DESTINATION

Destination path

Replaces legacy CLI command “files-move”

files delete

Delete a file or directory from Tapis

tapis files delete [--all] [--progress] AGAVE_URI
--all

Include hidden files

--progress

Report progress to STDERR

AGAVE_URI

Files URI (agave://)

Replaces legacy CLI command “files-delete”

files upload

Upload from local host to Tapis

tapis files upload
    [--exclude GLOB]
    [--force | --sync]
    [--callback URI]
    [--progress]
    AGAVE_URI
    FILEPATH
--exclude GLOB

Unix-style fileglob (specify multiple times)

--force

Always overwrite existing files

--sync

Overwrite files only when timestamp or size differs

--callback URI

A URI to notify when each upload import is complete. Can be an email address or http/s URL. If a URL is given, a GET will be made.

--progress

Report progress to STDERR

AGAVE_URI

Files URI (agave://)

FILEPATH

Path (relative to working directory)

Replaces legacy CLI command “files-upload”

files download

Download from Tapis to the local host

tapis files download
    [--exclude GLOB]
    [-W DIRECTORY]
    [--force | --sync]
    [--progress]
    AGAVE_URI
--exclude GLOB

Unix-style fileglob (specify multiple times)

-W DIRECTORY

Download directory

--force

Always overwrite existing files

--sync

Overwrite files only when timestamp or size differs

--progress

Report progress to STDERR

AGAVE_URI

Files URI (agave://)

Replaces legacy CLI command “files-get”

Sharing Commands

Manage access by other users to Tapis files and folders that you control.

files pems drop

Drop all granted permissions from a Files path

tapis files pems drop
    [--sort-ascending | --sort-descending]
    [-l INT]
    [-o INT]
    AGAVE_URI
--sort-ascending

sort the column(s) in ascending order

--sort-descending

sort the column(s) in descending order

-l INT, --limit INT

Limit to N records (default: 100)

-o INT, --offset INT

Skip first N records

AGAVE_URI

Files URI (agave://)

Replaces legacy CLI command “files-pems-update”

files pems grant

Grant permissions on a Files path to a User

tapis files pems grant
    [--sort-ascending | --sort-descending]
    [-l INT]
    [-o INT]
    AGAVE_URI
    USERNAME
    PERMISSION
--sort-ascending

sort the column(s) in ascending order

--sort-descending

sort the column(s) in descending order

-l INT, --limit INT

Limit to N records (default: 100)

-o INT, --offset INT

Skip first N records

AGAVE_URI

Files URI (agave://)

USERNAME

Tapis username

PERMISSION

Permission string (ALL| READ| WRITE| READ_WRITE| EXECUTE| READ_EXECUTE| WRITE_EXECUTE| NONE)

Replaces legacy CLI command “files-pems-update”

files pems list

List permissions for an specific Files path

tapis files pems list
    [--sort-ascending | --sort-descending]
    [-l INT]
    [-o INT]
    [--all]
    AGAVE_URI
--sort-ascending

sort the column(s) in ascending order

--sort-descending

sort the column(s) in descending order

-l INT, --limit INT

Limit to N records (default: 100)

-o INT, --offset INT

Skip first N records

--all

Include hidden files

AGAVE_URI

Files URI (agave://)

Replaces legacy CLI command “files-pems-list”

files pems revoke

Revoke permissions on a Files path for a User

tapis files pems revoke
    [--sort-ascending | --sort-descending]
    [-l INT]
    [-o INT]
    AGAVE_URI
    USERNAME
--sort-ascending

sort the column(s) in ascending order

--sort-descending

sort the column(s) in descending order

-l INT, --limit INT

Limit to N records (default: 100)

-o INT, --offset INT

Skip first N records

AGAVE_URI

Files URI (agave://)

USERNAME

Tapis username

Replaces legacy CLI command “files-pems-update”

files pems show

Show permissions on a Files path for a User

tapis files pems show AGAVE_URI USERNAME
AGAVE_URI

Files URI (agave://)

USERNAME

Tapis username

Replaces legacy CLI command “files-pems-list”

Info

info status

Show API statuses

tapis info status

This command is provided by the tapis-cli plugin.

info vars init

Create an .ini file to support templating

tapis info vars init [FILENAME]
FILENAME

Optional ini filename (must be one of: project.ini, app.ini. actor.ini)

info vars list

Show active template variable names and values

tapis info vars list
    [--sort-ascending | --sort-descending]
    [-F FILEPATH]
    [--ini FILEPATH]
    [-A]
--sort-ascending

sort the column(s) in ascending order

--sort-descending

sort the column(s) in descending order

-F FILEPATH, --file FILEPATH

JSON payload file

--ini FILEPATH

.ini file (project.ini)

-A, --all

Also show empty variables

info versions

Show API versions

tapis info versions

This command is provided by the tapis-cli plugin.

Jobs

Support for the core Tapis jobs life cycle is provided by the jobs command set. New, and of note, is support for wildcard include and exclude filters when downloading job outputs, as well as a “sync” mode that only retrieves files from Tapis if they are different from their local copy.

General Commands

jobs list

List Jobs

tapis jobs list
    [--sort-ascending | --sort-descending]
    [-l INT]
    [-o INT]
--sort-ascending

sort the column(s) in ascending order

--sort-descending

sort the column(s) in descending order

-l INT, --limit INT

Limit to N records (default: 100)

-o INT, --offset INT

Skip first N records

Replaces legacy CLI command “jobs-list”

jobs show

Show a specific Job

tapis jobs show [-T] JOB_UUID
-T, --template

Job template from verbose

JOB_UUID

Job unique identifer

Replaces legacy CLI command “jobs-list”

jobs submit

Submit a new Job

tapis jobs submit [-F FILEPATH] [--ini FILEPATH]
-F FILEPATH, --file FILEPATH

JSON payload file

--ini FILEPATH

.ini file (project.ini)

Replaces legacy CLI command “jobs-submit”

jobs status

how the status of a Job

tapis jobs status JOB_UUID
JOB_UUID

Job unique identifer

Replaces legacy CLI command “jobs-status”

jobs history

List history of a given job

tapis jobs history [--sort-ascending | --sort-descending] JOB_UUID
--sort-ascending

sort the column(s) in ascending order

--sort-descending

sort the column(s) in descending order

JOB_UUID

Job unique identifer

Replaces legacy CLI command “jobs-history”

jobs cancel

Cancel a running or queued Job

tapis jobs cancel JOB_UUID
JOB_UUID

Job unique identifer

Replaces legacy CLI command “jobs-stop”

jobs resubmit

Resubmit a Job using the same inputs and parameters

tapis jobs resubmit JOB_UUID
JOB_UUID

Job unique identifer

Replaces legacy CLI command “jobs-resubmit”

jobs hide

Hide a Job from view

tapis jobs hide JOB_UUID
JOB_UUID

Job unique identifer

Replaces legacy CLI command “jobs-hide”

jobs unhide

Unhide a hidden Job

tapis jobs unhide JOB_UUID
JOB_UUID

Job unique identifer

Replaces legacy CLI command “jobs-unhide”

Output Commands

View and download outputs from Tapis jobs.

jobs outputs download

Download outputs from a Job

tapis jobs outputs download
    [--force | --sync]
    [--exclude GLOB]
    [--progress]
    [--cwd]
    JOB_UUID
    [FILEPATH]
--force

Always overwrite existing files

--sync

Overwrite files only when timestamp or size differs

--exclude GLOB

Unix-style fileglob (specify multiple times)

--progress

Report progress to STDERR

--cwd

Download to ‘.’ instead of a job-specific subdirectory

JOB_UUID

Job unique identifer

FILEPATH

File path relative to output directory

Replaces legacy CLI command “jobs-output-get”

jobs outputs list

Lists output directory for a Jobs

tapis jobs outputs list
    [--sort-ascending | --sort-descending]
    [-l INT]
    [-o INT]
    [--all]
    [--reverse]
    [--sort-size | --sort-time]
    JOB_UUID
    [FILEPATH]
--sort-ascending

sort the column(s) in ascending order

--sort-descending

sort the column(s) in descending order

-l INT, --limit INT

Limit to N records (default: 100)

-o INT, --offset INT

Skip first N records

--all

Include hidden files

--reverse

Reverse sort order.

--sort-size

Sort by size before sorting lexicographically.

--sort-time

Sort by time modified before sorting lexicographically.

JOB_UUID

Job unique identifer

FILEPATH

File path relative to output directory

Replaces legacy CLI command “jobs-output-list”

jobs outputs logs

Displays logs for a Tapis Job

tapis jobs outputs logs [--stdout] FILE_UUID
--stdout

Display job STDOUT instead of STDERR

FILE_UUID

File unique identifer

Sharing Commands

Manage access by other users to Tapis jobs that you control.

jobs pems drop

Drop all granted Permissions from a Job

tapis jobs pems drop
    [--sort-ascending | --sort-descending]
    [-l INT]
    [-o INT]
    JOB_UUID
--sort-ascending

sort the column(s) in ascending order

--sort-descending

sort the column(s) in descending order

-l INT, --limit INT

Limit to N records (default: 100)

-o INT, --offset INT

Skip first N records

JOB_UUID

Job unique identifer

Replaces legacy CLI command “jobs-pems-update”

jobs pems grant

Grant Permissions on a Job to a User

tapis jobs pems grant
    [--sort-ascending | --sort-descending]
    [-l INT]
    [-o INT]
    JOB_UUID
    USERNAME
    PERMISSION
--sort-ascending

sort the column(s) in ascending order

--sort-descending

sort the column(s) in descending order

-l INT, --limit INT

Limit to N records (default: 100)

-o INT, --offset INT

Skip first N records

JOB_UUID

Job unique identifer

USERNAME

Tapis username

PERMISSION

Permission string (ALL| READ| WRITE| READ_WRITE| EXECUTE| READ_EXECUTE| WRITE_EXECUTE| NONE)

Replaces legacy CLI command “jobs-pems-update”

jobs pems list

List Permissions for a Job

tapis jobs pems list
    [--sort-ascending | --sort-descending]
    [-l INT]
    [-o INT]
    JOB_UUID
--sort-ascending

sort the column(s) in ascending order

--sort-descending

sort the column(s) in descending order

-l INT, --limit INT

Limit to N records (default: 100)

-o INT, --offset INT

Skip first N records

JOB_UUID

Job unique identifer

Replaces legacy CLI command “jobs-pems-list”

jobs pems revoke

Revoke Permissions on a Job for a User

tapis jobs pems revoke
    [--sort-ascending | --sort-descending]
    [-l INT]
    [-o INT]
    JOB_UUID
    USERNAME
--sort-ascending

sort the column(s) in ascending order

--sort-descending

sort the column(s) in descending order

-l INT, --limit INT

Limit to N records (default: 100)

-o INT, --offset INT

Skip first N records

JOB_UUID

Job unique identifer

USERNAME

Tapis username

Replaces legacy CLI command “jobs-pems-update”

jobs pems show

Show Permissions on a Job for a User

tapis jobs pems show JOB_UUID USERNAME
JOB_UUID

Job unique identifer

USERNAME

Tapis username

Replaces legacy CLI command “jobs-pems-list”

Search Commands

Search for Tapis Jobs by any of several criteria. Please consult tapis jobs search -h for guidance.

Templated Jobs

The jobs init command can populate a job definition for the designated Tapis app. It can run automatically, relying on default values provided by the app, or interactively, which allows the user to specify each value.

jobs init

Create a Job document for the specified App

tapis jobs init
    [--sort-ascending | --sort-descending]
    [--interactive]
    [--all]
    [--name NAME]
    [--queue QUEUE]
    [--duration HH:MM:SS]
    [--nodes INT]
    [--no-archive | --archive-uri AGAVE_URI]
    [--no-notify | --notifications-uri URI|EMAIL]
    [-O PATH]
    APP_ID
--sort-ascending

sort the column(s) in ascending order

--sort-descending

sort the column(s) in descending order

--interactive

Prompt for configuration and parameters

--all

Include optional inputs and parameters in template

--name NAME

Job name

--queue QUEUE

Queue

--duration HH:MM:SS

Maximum run time (01:00:00)

--nodes INT

Compute nodes (1)

--no-archive

Do not archive results

--archive-uri AGAVE_URI

Path to archive results (agave://)

--no-notify

Do not send job status notifications

--notifications-uri URI|EMAIL

POST URL or email address for notifications

-O PATH, --output PATH

Output destination (STDOUT)

APP_ID

App identifier

Replaces legacy CLI command “jobs-template”

Metadata

Support for the legacy Tapis meta service is provided by the meta command set. New, and of note, is support for directly storing and retrieving values using the metadata service, making its usage modality more like that of a key-value store. See usage examples below:

General Commands

meta create

Store Metadata in a new document

tapis meta create
    [-V Record value]
    [-N Record name]
    [-F FILEPATH]
    [--ini FILEPATH]
-V Record value, --value Record value

Value for the document

-N Record name, --name Record name

Optional name for the document

-F FILEPATH, --file FILEPATH

JSON payload file

--ini FILEPATH

.ini file (project.ini)

Replaces legacy CLI command “metadata-addupdate”

meta update

Update an existing Metadata document by UUID

tapis meta update
    [-V VALUE]
    [-N NEW_NAME]
    [-F FILEPATH]
    [--ini FILEPATH]
    [METADATA_UUID]
-V VALUE, --value VALUE

Value for the document

-N NEW_NAME, --rename NEW_NAME

Rename document

-F FILEPATH, --file FILEPATH

JSON payload file

--ini FILEPATH

.ini file (project.ini)

METADATA_UUID

Optional Metadata unique identifer

Replaces legacy CLI command “metadata-addupdate”

meta list

List Metadata documents

tapis meta list
    [--sort-ascending | --sort-descending]
    [-l INT]
    [-o INT]
--sort-ascending

sort the column(s) in ascending order

--sort-descending

sort the column(s) in descending order

-l INT, --limit INT

Limit to N records (default: 100)

-o INT, --offset INT

Skip first N records

Replaces legacy CLI command “metadata-list”

meta show

Show a Metadata document by UUID

tapis meta show METADATA_UUID
METADATA_UUID

Metadata unique identifer

Replaces legacy CLI command “metadata-list”

meta delete

Delete a Metadata document by UUID

tapis meta delete METADATA_UUID
METADATA_UUID

Metadata unique identifer

Replaces legacy CLI command “metadata-delete”

Sharing Commands

Manage access by other users to Tapis metadata that you control.

meta pems drop

Drop all granted Permissions from a Metadata document

tapis meta pems drop
    [--sort-ascending | --sort-descending]
    [-l INT]
    [-o INT]
    METADATA_UUID
--sort-ascending

sort the column(s) in ascending order

--sort-descending

sort the column(s) in descending order

-l INT, --limit INT

Limit to N records (default: 100)

-o INT, --offset INT

Skip first N records

METADATA_UUID

Metadata unique identifer

Replaces legacy CLI command “metadata-pems-update”

meta pems grant

Grant Permissions on a Metadata document to a User

tapis meta pems grant
    [--sort-ascending | --sort-descending]
    [-l INT]
    [-o INT]
    METADATA_UUID
    USERNAME
    PERMISSION
--sort-ascending

sort the column(s) in ascending order

--sort-descending

sort the column(s) in descending order

-l INT, --limit INT

Limit to N records (default: 100)

-o INT, --offset INT

Skip first N records

METADATA_UUID

Metadata unique identifer

USERNAME

Tapis username

PERMISSION

Permission string (ALL| READ| WRITE| READ_WRITE| EXECUTE| READ_EXECUTE| WRITE_EXECUTE| NONE)

Replaces legacy CLI command “metadata-pems-update”

meta pems list

List Permissions for a Metadata document

tapis meta pems list
    [--sort-ascending | --sort-descending]
    [-l INT]
    [-o INT]
    METADATA_UUID
--sort-ascending

sort the column(s) in ascending order

--sort-descending

sort the column(s) in descending order

-l INT, --limit INT

Limit to N records (default: 100)

-o INT, --offset INT

Skip first N records

METADATA_UUID

Metadata unique identifer

Replaces legacy CLI command “metadata-pems-list”

meta pems revoke

Revoke Permissions on a Metadata document for a User

tapis meta pems revoke
    [--sort-ascending | --sort-descending]
    [-l INT]
    [-o INT]
    METADATA_UUID
    USERNAME
--sort-ascending

sort the column(s) in ascending order

--sort-descending

sort the column(s) in descending order

-l INT, --limit INT

Limit to N records (default: 100)

-o INT, --offset INT

Skip first N records

METADATA_UUID

Metadata unique identifer

USERNAME

Tapis username

Replaces legacy CLI command “metadata-pems-update”

meta pems show

Show Permissions on a Metadata document for specific User

tapis meta pems show METADATA_UUID USERNAME
METADATA_UUID

Metadata unique identifer

USERNAME

Tapis username

Replaces legacy CLI command “metadata-pems-list”

Search Commands

Search for Tapis metadata by several criteria. Please consult tapis meta search -h for guidance.

Usage Examples

Metadata records have historically been written in Tapis by specifying a complete, schema-compliant JSON document. This has been considered by some users to be burdensome, so the CLI simplifies these operations. A JSON file can be specified, but it is also possible to specify -name and --value or even just a --value.

Example 1

# Store a simple value
#
# --name is not provided, causing one to be autogenerated

$ tapis meta create --value "This is a test"
+-------------+----------------------------------------+
| Field       | Value                                  |
+-------------+----------------------------------------+
| uuid        | 7811051068989444586-242ac11a-0001-012  |
| owner       | vaughn                                 |
| name        | vaughn.f16204ef7ed05949.191107T183550Z |
| value       | This is a test                         |
| created     | just now                               |
| lastUpdated | just now                               |
+-------------+----------------------------------------+

# Search by the document's name
$ tapis meta search --name eq vaughn.f16204ef7ed05949.191107T183550Z
+---------------------------------------+--------+----------------------------------------+
| uuid                                  | owner  | name                                   |
+---------------------------------------+--------+----------------------------------------+
| 7811051068989444586-242ac11a-0001-012 | vaughn | vaughn.f16204ef7ed05949.191107T183550Z |
+---------------------------------------+--------+----------------------------------------+

# Display the document using its UUID
$ tapis meta show 7811051068989444586-242ac11a-0001-012
+-------------+----------------------------------------+
| Field       | Value                                  |
+-------------+----------------------------------------+
| uuid        | 7811051068989444586-242ac11a-0001-012  |
| owner       | vaughn                                 |
| name        | vaughn.f16204ef7ed05949.191107T183550Z |
| value       | This is a test                         |
| created     | 2 minutes ago                          |
| lastUpdated | 2 minutes ago                          |
+-------------+----------------------------------------+

# Update a document's value.
# (Note that the name doesn't change)
$ tapis meta update -V "This value was changed" 1111886352317476375-242ac11a-0001-012
+-------------+----------------------------------------+
| Field       | Value                                  |
+-------------+----------------------------------------+
| uuid        | 7811051068989444586-242ac11a-0001-012  |
| owner       | vaughn                                 |
| name        | vaughn.f16204ef7ed05949.191107T183550Z |
| value       | This value was changed                 |
| created     | 3 minutes ago                          |
| lastUpdated | just now                               |
+-------------+----------------------------------------+

Example 2

# Store a value with a defined name
$ tapis meta create --value "Another test" --name "key_name_101"
+-------------+---------------------------------------+
| Field       | Value                                 |
+-------------+---------------------------------------+
| uuid        | 8195591104591958506-242ac11a-0001-012 |
| owner       | vaughn                                |
| name        | key_name_101                          |
| value       | Another test                          |
| created     | just now                              |
| lastUpdated | just now                              |
+-------------+---------------------------------------+

# Rename the record
$ tapis meta update --name "renamed_key_101" 8195591104591958506-242ac11a-0001-012
+-------------+---------------------------------------+
| Field       | Value                                 |
+-------------+---------------------------------------+
| uuid        | 8195591104591958506-242ac11a-0001-012 |
| owner       | vaughn                                |
| name        | renamed_key_101                       |
| value       | Another test                          |
| created     | 2 minutes ago                         |
| lastUpdated | just now                              |
+-------------+---------------------------------------+

# Delete the record
$ tapis meta delete 8195591104591958506-242ac11a-0001-012
+----------+-------+
| Field    | Value |
+----------+-------+
| deleted  | 1     |
| messages | 0     |
+----------+-------+

Example 3

# Display the full JSON API response, including the document
$ tapis meta show -v 4405227902607364586-242ac11a-0001-012
{
"uuid": "4405227902607364586-242ac11a-0001-012",
"schemaId": null,
"internalUsername": null,
"owner": "vaughn",
"associationIds": [],
"name": "vaughn.f16204ef7ed05949.191107T183431Z",
"value": "This is a test",
"created": "2019-11-07T12:34:31.591-06:00",
"lastUpdated": "2019-11-07T12:34:31.591-06:00",
"_links": {
    "self": {
    "href": "https://api.tacc.utexas.edu/meta/v2/data/4405227902607364586-242ac11a-0001-012"
    },
    "permissions": {
    "href": "https://api.tacc.utexas.edu/meta/v2/data/4405227902607364586-242ac11a-0001-012/pems"
    },
    "owner": {
    "href": "https://api.tacc.utexas.edu/profiles/v2/vaughn"
    },
    "associationIds": []
}
}

Notifications

List, inspect, and delete Tapis notifications. There is no current support for creating or updating them from the CLI.

notifications delete

Delete a Notification

tapis notifications delete NOTIFICATION_UUID
NOTIFICATION_UUID

Notification unique identifer

Replaces legacy CLI command “notifications-delete”

notifications list

List Notifications [by Tapis UUID]

tapis notifications list
    [--sort-ascending | --sort-descending]
    [-l INT]
    [-o INT]
    [TAPIS ENTITY_UUID]
--sort-ascending

sort the column(s) in ascending order

--sort-descending

sort the column(s) in descending order

-l INT, --limit INT

Limit to N records (default: 100)

-o INT, --offset INT

Skip first N records

TAPIS ENTITY_UUID

Optional Tapis Entity unique identifer

Replaces legacy CLI command “notifications-list”

notifications show

Show details of a Notification

tapis notifications show NOTIFICATION_UUID
NOTIFICATION_UUID

Notification unique identifer

Replaces legacy CLI command “notifications-list”

Post-Its

View, list, and manage Tapis post-its, which are pre-authenticated URLs than can be used in web callbacks or for sharing resources with persons who do not have Tapis platform accounts.

postits create

Create a new Postit

tapis postits create [-L INT] [-m INT] [-M GET|POST] [-N] FILES_URI
-L INT, --lifetime INT

Lifetime (default: 2592000 sec)

-m INT, --max-uses INT

Maximum redemptions (default: -1)

-M GET|POST, --http-method GET|POST

HTTP method for URL (default: GET)

-N, --no-auth

Do not pre-authenticate the URL

FILES_URI

Files URI (agave://system/path|https://api_server/system/path)

Replaces legacy CLI command “postits-create”

postits delete

Delete a Postit

tapis postits delete POST-IT_ID
POST-IT_ID

Post-it identifier

Replaces legacy CLI command “postits-delete”

postits list

List active Post-Its

tapis postits list [--sort-ascending | --sort-descending]
--sort-ascending

sort the column(s) in ascending order

--sort-descending

sort the column(s) in descending order

Replaces legacy CLI command “postits-list”

Profiles

Support for showing or searching user profiles is implemented, contigent on the configuration and access policy of the current Tapis tenant.

General Commands

profiles show

Show details for a specific Profile

tapis profiles show USERNAME
USERNAME

Tapis username

Replaces legacy CLI command “profiles-list”

profiles show self

Show Profile for the authenticated User

tapis profiles show self

Replaces legacy CLI command “profiles-list”

Search Commands

Search for Tapis profiles by any of several criteria. Please consult tapis profiles search -h for guidance.

Systems

Support for the Tapis resource management systems is provided by the systems command set. Helper workflows (such as assistance with SSH keys and testing newly created systems) will be added in coming releases.

General Commands

systems list

List available Systems

tapis systems list
    [--sort-ascending | --sort-descending]
    [-l INT]
    [-o INT]
--sort-ascending

sort the column(s) in ascending order

--sort-descending

sort the column(s) in descending order

-l INT, --limit INT

Limit to N records (default: 100)

-o INT, --offset INT

Skip first N records

Replaces legacy CLI command “systems-list”

systems show

Show details of a System

tapis systems show SYSTEM_ID
SYSTEM_ID

System identifier

Replaces legacy CLI command “systems-list”

systems history

Show history for a System

tapis systems history
    [--sort-ascending | --sort-descending]
    [-l INT]
    [-o INT]
    SYSTEM_ID
--sort-ascending

sort the column(s) in ascending order

--sort-descending

sort the column(s) in descending order

-l INT, --limit INT

Limit to N records (default: 100)

-o INT, --offset INT

Skip first N records

SYSTEM_ID

System identifier

Replaces legacy CLI command “systems-history”

systems create

Create a new System

tapis systems create
    [-F FILEPATH]
    [--ini FILEPATH]
    [--login-username USERNAME]
    [--login-public-key FILE]
    [--login-private-key FILE]
    [--login-password PASSWORD]
    [--storage-username USERNAME]
    [--storage-public-key FILE]
    [--storage-private-key FILE]
    [--storage-password PASSWORD]
-F FILEPATH, --file FILEPATH

JSON payload file

--ini FILEPATH

.ini file (project.ini)

--login-username USERNAME

Username for SSH login on the System

--login-public-key FILE

Public key for SSH login on the System

--login-private-key FILE

Private key for SSH login on the System

--login-password PASSWORD

Password for SSH login on the System

--storage-username USERNAME

Username for SFTP storage on the System

--storage-public-key FILE

Public key for SFTP storage on the System

--storage-private-key FILE

Private key for SFTP storage on the System

--storage-password PASSWORD

Password for SFTP storage on the System

Replaces legacy CLI command “systems-addupdate”

systems update

Update an existing System

tapis systems update
    [-F FILEPATH]
    [--ini FILEPATH]
    [--login-username USERNAME]
    [--login-public-key FILE]
    [--login-private-key FILE]
    [--login-password PASSWORD]
    [--storage-username USERNAME]
    [--storage-public-key FILE]
    [--storage-private-key FILE]
    [--storage-password PASSWORD]
    SYSTEM_ID
-F FILEPATH, --file FILEPATH

JSON payload file

--ini FILEPATH

.ini file (project.ini)

--login-username USERNAME

Username for SSH login on the System

--login-public-key FILE

Public key for SSH login on the System

--login-private-key FILE

Private key for SSH login on the System

--login-password PASSWORD

Password for SSH login on the System

--storage-username USERNAME

Username for SFTP storage on the System

--storage-public-key FILE

Public key for SFTP storage on the System

--storage-private-key FILE

Private key for SFTP storage on the System

--storage-password PASSWORD

Password for SFTP storage on the System

SYSTEM_ID

System identifier

Replaces legacy CLI command “systems-addupdate”

systems disable

Remove a System from active use

tapis systems disable SYSTEM_ID
SYSTEM_ID

System identifier

Replaces legacy CLI command “systems-disable”

systems enable

Return a disabled System to active use

tapis systems enable SYSTEM_ID
SYSTEM_ID

System identifier

Replaces legacy CLI command “systems-enable”

Sharing Commands

Manage access by other users to Tapis systems that you control.

systems roles drop

Drop all granted roles from a System

tapis systems roles drop
    [--sort-ascending | --sort-descending]
    [-l INT]
    [-o INT]
    SYSTEM_ID
--sort-ascending

sort the column(s) in ascending order

--sort-descending

sort the column(s) in descending order

-l INT, --limit INT

Limit to N records (default: 100)

-o INT, --offset INT

Skip first N records

SYSTEM_ID

System identifier

Replaces legacy CLI command “systems-roles-delete”

systems roles grant

Grant a user role on a System

tapis systems roles grant SYSTEM_ID USERNAME ROLE
SYSTEM_ID

System identifier

USERNAME

Tapis username

ROLE

Role (GUEST| USER| PUBLISHER| ADMIN| OWNER)

Replaces legacy CLI command “systems-roles-addupdate”

systems roles list

List user roles on a System

tapis systems roles list
    [--sort-ascending | --sort-descending]
    [-l INT]
    [-o INT]
    SYSTEM_ID
--sort-ascending

sort the column(s) in ascending order

--sort-descending

sort the column(s) in descending order

-l INT, --limit INT

Limit to N records (default: 100)

-o INT, --offset INT

Skip first N records

SYSTEM_ID

System identifier

Replaces legacy CLI command “systems-roles-list”

systems roles revoke

Revoke a user role from a System

tapis systems roles revoke SYSTEM_ID USERNAME
SYSTEM_ID

System identifier

USERNAME

Tapis username

Replaces legacy CLI command “systems-roles-addupdate”

systems roles show

Show roles on a System for the specified User

tapis systems roles show SYSTEM_ID USERNAME
SYSTEM_ID

System identifier

USERNAME

Tapis username

Replaces legacy CLI command “systems-roles-list”

Search Commands

Search for Tapis Systems by several criteria. Please consult tapis systems search -h for guidance.

Queues Commands

View and interact with queues on a Tapis execution system.

systems queues list

List virtual queues on a System

tapis systems queues list
    [--sort-ascending | --sort-descending]
    [-l INT]
    [-o INT]
    SYSTEM_ID
--sort-ascending

sort the column(s) in ascending order

--sort-descending

sort the column(s) in descending order

-l INT, --limit INT

Limit to N records (default: 100)

-o INT, --offset INT

Skip first N records

SYSTEM_ID

System identifier

Replaces legacy CLI command “systems-queues-list”

Administrative Commands

Manage global settings for a Tapis system.

systems publish

Publish a System for general use

tapis systems publish SYSTEM_ID
SYSTEM_ID

System identifier

Replaces legacy CLI command “systems-publish”

systems unpublish

Unpublish a public System

tapis systems unpublish SYSTEM_ID
SYSTEM_ID

System identifier

Replaces legacy CLI command “systems-unpublish”

Configure Tapis CLI

The Tapis CLI uses Python’s _dotenv module for configuration via environment variables. It reads and writes from $HOME/.env, which is a file containing KEY=VALUE pairs. A variable defined in the environment file can be overridden by setting an environment variable in the shell where the CLI was launched. Some options can also overridden at run-time via command-line options.

One may view the current settings for the Tapis CLI:

$ tapis config list
+---------------------------+--------------------------------------------+
| Setting                   | Value                                      |
+---------------------------+--------------------------------------------+
| TAPIS_CLI_DATE_FORMAT     | YYYYMMDDTHHmmssZZ                          |
| TAPIS_CLI_DEBUG_MODE      | False                                      |
| TAPIS_CLI_DISPLAY_AUP     | True                                       |
| TAPIS_CLI_FIT_WIDTH       | True                                       |
| TAPIS_CLI_GA_DISABLE      | False                                      |
| TAPIS_CLI_GA_VISITOR      | 7143393360                                 |
| TAPIS_CLI_LOG_LEVEL       | DEBUG                                      |
| TAPIS_CLI_PAGE_SIZE       | 50                                         |
| TAPIS_CLI_RESPONSE_FORMAT | table                                      |
| TAPIS_CLI_SHOW_CURL       | False                                      |
| TAPIS_CLI_VERBOSE_ERRORS  | True                                       |
| TAPIS_DEFAULT_TENANT_ID   | tacc.prod                                  |
| TAPIS_PY_SHOW_CURL        | False                                      |
| TAPIS_TENANTS_URL         | https://api.tacc.utexas.edu/tenants        |
| _ENV_PATH                 | /Users/tacotruck/.env                      |
+---------------------------+--------------------------------------------+

Configuration options can be set using tapis config set.

Usage Examples

Setting the page size for list results: The number of results returned from list-type commands is defined by the variable TAPIS_CLI_PAGE_SIZE and defaults to 50. List-type commands support a --limit option, which will be used if specified. If no option is passed, the CLI will look for variable TAPIS_CLI_PAGE_SIZE in the shell environment then in an

.env file. Here are ways to configure the page size:

  • Dynamically, via variable: TAPIS_CLI_PAGE_SIZE=10 tapis apps list
  • For the current shell: export TAPIS_CLI_PAGE_SIZE=10
  • For all future usage: tapis apps set TAPIS_CLI_PAGE_SIZE 10

Search Commands

Several Tapis command families support sophisiticated search capabilities, but due to the fact that Tapis has been developed over several years, implementation details of syntax and capability vary widely. Tapis CLI remedies this with named search commands which accept optionized forms of select top-level keys for each supported service. Limited support for types and enumerations is presented as well, as well as support for search modifiers. Finally, semantic or “humanized” dates are ranges are supported as query terms in fields which are Python datetime types.

An Example

To stimulate your interest, here’s a simple example of searching for an app by a fragment of its name. The generalized form of a Tapis CLI search command is tapis <service> search --field-name <modifier> <value>.

$ tapis apps search --name like image
+-------------------------------+----------+------------------+-------------------------------+----------+------------------------+
| id                            | revision | label            | shortDescription              | isPublic | executionSystem        |
+-------------------------------+----------+------------------+-------------------------------+----------+------------------------+
| tapis.app.imageclassify-1.0u3 |        3 | Image Classifier | Classify an image using a     | True     | tapis.execution.system |
|                               |          |                  | small ImageNet model          |          |                        |
| tapis.app.imageclassify-1.0u2 |        2 | Image Classifier | Classify an image using a     | True     | tapis.execution.system |
|                               |          |                  | small ImageNet model          |          |                        |
| tapis.app.imageclassify-1.0u1 |        1 | Image Classifier | Classify an image using a     | True     | tapis.execution.system |
|                               |          |                  | small ImageNet model          |          |                        |
+-------------------------------+----------+------------------+-------------------------------+----------+------------------------+

Search help strings

The code that enables search also generates descriptive, if a bit repetitive, help text for each search command. The help text for systems search is shown below, followed by a few notes to help you make sense of what you are seeing seen. The help for any search command will yield similar detailed instructions.

$ tapis systems search -h
usage: tapis systems search [-h] [-f {csv,json,table,value,yaml}] [-c COLUMN]
                             [--quote {all,minimal,none,nonnumeric}]
                             [--noindent] [--max-width <integer>] [--fit-width]
                             [--print-empty] [--sort-column SORT_COLUMN]
                             [--no-verify] [-z <token>] [-l <int>] [-o <int>]
                             [--available eq*|neq true|false]
                             [--default eq*|neq true|false]
                             [--description eq*|neq|start|end|like <string>]
                             [--execution-type eq*|neq CLI|Condor|HPC]
                             [--global-default eq*|neq true|false]
                             [--id eq*|neq|start|end|like <string>]
                             [--max-system-jobs eq*|neq|gt|gte|lt|lte <int>]
                             [--max-system-jobs-per-user eq*|neq|gt|gte|lt|lte <int>]
                             [--name eq*|neq|start|end|like <string>]
                             [--owner eq*|neq|start|end|like <string>]
                             [--public eq*|neq true|false]
                             [--revision eq*|neq|gt|gte|lt|lte <int>]
                             [--scheduler eq*|neq|start|end|like CONDOR|CUSTOM_SLURM|FORK|LSF|PBS|SGE|SLURM]
                             [--status eq*|neq DOWN|MAINTENANCE|UNKNOWN|UP]
                             [--type eq*|neq EXECUTION|STORAGE]

Picking a few representative fields, we see:

  • description is a string. The recommended search modifier is eq and the expected value is any string.
  • executionType is a string, but has constrained values of CLI, Condor, or HPC
  • available is a Boolean. You can construct a positive or negative filter with equals, not-equals, true, and false
  • maxSystemJobs is an integer. You can use direct (eq, ne) as well as quantitative comparisons (lt, gte, etc.)

Modifiers

This is the canonical list of modifiers and the search pattern they attempt to implement for their respective web service and parameter.

Modifier Explanation Types
eq Equals String, Number, Boolean
neq Does not equal String, Number, Boolean
like Contains String
start Starts With String
end Ends With String
gt, gte Greater than (or equal) Number
le, lte Less than (or equal) Number
on After 00:00 but before 11:59:59 UTC Date
before Before 0:00 UTC Date
after After 11:59:59 UTC Date

Human Dates

Here are some examples of humanized dates for searching date fields.

Example Span
before today Prior to today
after “this week” Within the current week, marked by Sunday
after “October 15, 2018” After midnight UTC Oct 15, 2018
gte “2 hours” More than 2 hours ago
after “6/1/2019” After midnight June 1, 2019
after 2018 Any time in 2019 or after

Search support by command

Search is available for several commands, and is on the roadmap for a few more in the coming months.

Command Family Smart Search
auth No
actors Planned
apps Yes
files Planned
git Planned
hooks No
jobs Yes
metadata Yes
notifications Planned
profiles Yes
settings No
status Planned
systems Yes
versions No

Template Support

Tapis app, job, and system definitions (as well as metadata records) are commonly defined as JSON documents files. Sharing them files can be challenging (for instance, as part of collaborative development), since they can contain user-specific values. One way to deal with this is to automate find-and-replace workflows for files, but another is to use variables. Inspired by this real-world use case, we have introduced support for template variables throughout the Tapis CLI.

Let us consider an example. A group of collabortators each has a private copy of a Tapis app for counting chickens, where the app identifier follows the naming convention chicken-counter-[username]-1.0.0. They want to standardize on one set of parameters for a specific set of counting experiments they are doing. Without templating, each would maintain their parameter set in a standalone job file. For user ellen that file might look like so:

{
    "appId": "chicken-counter-ellen-1.0.0",
    "archiveSystem": "data-tacc-work-ellen",
    "maxRunTime": "01:00:00",
    "inputs": {
        "chix_img": "agave://data-tacc-cloud/images/too_many_chickens.png"
    },
    "name": "chicken-count",
    "parameters": {
        "beak_threshold": 10.0,
        "wing_threshold": -6.33
    }
}

If the group leader Francesca decides that wing_threshold needs to be -8.00, everyone will need to edit a copy of the job file. If the group gets a master parameter file from the group leader, that means each member will need to replace refernces to Francesca’s username with their own. Note also that the job name is static, which could get annoying. Wouldn’t it be nice if we could change it for each instance of job that is run?

A version of the file using Tapis CLI templating might look like:

{
    "appId": "chicken-counter-{{ username }}-1.0.0",
    "archiveSystem": "data-tacc-work-{{ username }}",
    "maxRunTime": "01:00:00",
    "inputs": {
        "chix_img": "agave://data-tacc-cloud/images/too_many_chickens.png"
    },
    "name": "chicken-count-{{ iso8601_basic_short }}",
    "parameters": {
        "beak_threshold": 10.0,
        "wing_threshold": -6.33
    }
}

Submitting this file to the Tapis jobs service using tapis jobs submit would result in a job request being to the proper app ID and {{ iso8601_basic_short }} is be replaced with an IS0-8601 date stamp

YYYMMDDTHHmmss.

Nifty, eh? There’s much more that can be done. The system supports dozens of built-in and run-time variables, and can be extended by the end user without coding. Also, since the system is built using Python’s Jinja2 module, any Jinja syntax can be used, including conditionals and iterators.

Variables

There are two classes of variables supported by the template system: “core” variables and “project” variables. Core variables are provided by the CLI with no options for user configuration, while project variables are set via a file in .ini format.

Core variables

These are global variables representing the state and environment of the CLI itself. They are intended for use in any app, job, system, or metadata definition without additional configuration. You can find the name and value of core variables via the command tapis info vals list. Core variables are snake-cased with no dot notation. Examples include first_name, fqdn`, ``git_remote, and username.

Project Variables

Sometimes, one needs to scope variables to a specific context (i.e. only within the build directory for an app). This use case is enabled by use of a named .ini file. Project variables can be identified by use of dot notation in their name. Examples include app.name and docker.tag.

Naming

The only supported name for a project variables file is project.ini although app.ini and reactor.ini are allowed for backwards compatibility with previous versions of the templating system. The rationale is that other build systems and applications use the ini file format, so we must constrain ourselves to using one name.

Search Path

If a path is specified using the --ini option, Tapis CLI looks at that location for a project variable file. Note that the file must be exist and be readable if it is manually specified. If no path to an ini file is provided, the CLI looks in the current working directory for a file named project.ini. If one is found, it must be readable. If no variable file is provided, project variables are not made available to the templating system.

Ini File Schema

A Tapis CLI ini file contains one or more stanzas:

  • app : variables pertaining to a Tapis app
  • actor : variables pertaining to a Tapis actor
  • environment : general-purpose environment variables
  • git : variables that pertain to a git repository
  • job : variables pertaining to a Tapis job
  • system : variables pertaining to a Tapis system

Within each stanza are named variables. Any variable name included in the default ini file (tapis info vars init) should be considered reserved for use by CLI workflows such as tapis apps deploy and tapis jobs template. You are free to add additional variables under these sections, with the caveat that future updates to the CLI might conflict with them. A better solution for defining custom variables is to add them to env as that section is reserved for user- or program-defined data.

Below is an example project.ini file.

Usage Examples

Coming soon

Technical Details

Tapis CLI uses _Jinja2 to power its template system. Most if not all Jinja constructs and syntax should be supported. Please file an _issue if you discover that is not the case.

Tapis CLI uses _Configparser to parse and write ini files. All configparser functions, including interpolation (allowing for additional templating behavior!), should be available. Please file an _issue if you discover that is not the case.

Projects

There are many good designs and patterns for building cloud-based applications. In the Linux container world, we have a choice of hand-crafting a set of linked services or using some of the declarative tooling like Docker stacks or Kubernetes pods. These can be deployed to any number of on-prem or public platforms. At a higher level of abstraction, systems such as Pantheon and Heroku promote one-command definition and deployment of web applications and services, which is achieved, in part, through use of simple configuration files coupled with a connection to the deployment host. These systems advance the promise of maintainability and reusability offered by containers, package registries, source code managers, config management tools, and hosted deployment environments.

We have adopted some of the best practices from popular systems and platforms to make it easy to build, deploy, and maintain Tapis apps and actors. One of these practices to offer a robust and usable CLI. Another is to allow automation of common tasks to enable reusability and decrease user error. To this end, the Tapis CLI features a deploy subcommand for the apps and actors APIs. The concept is that every step required in deploying a Tapis resource should be achievable by cd-ing into a project directory and running tapis apps deploy or tapis actors deploy

Project Structure

The Ini File

A project’s ini file may contain several sections, each with a handful of defined option names. Option/value pairs may be commented out using a leading ; semicolon. Values that define paths are assumed to be relative to the project directory, unless specified as absolute. Mandatory variables are denoted in bold text.

Sections

App

This section contains variables to configure an app project.

Actor

This section contains variables to configure an actor project.

Docker

This section contains variables that define Linux container image and registry settings for the project. There is an implicit assumption that a project corresponds to a single container repo.

Environment

This is a special section where you, the end-user, can add custom option-value pairs for use by the CLI templating engine. Option names must be alphanumeric strings [a-z0-9_].

Good option names:

  • slot
  • rock_and_roll
  • value123

Bad option names:

  • _foo
  • option.name
  • ThisOption

Values must be simple scalars and it should be assumed they will be interpreted as strings.

Using Environment in a File

Here is an example of including a custom option value123 and using it to populate contents of a JSON document. The expected outcome is that the key parameter1 will get a value of 2048 when the JSON document is interpreted by the CLI.

json template
 {"parameter1": "{{ env.value123 }}"}
rendered json
 {"parameter1": "2048"}
Git

This section contains variables that define local and remote Git settings for the project. We assume that a project corresponds to a single git repository.

Grants

This section defines roles to be granted to apps, actors, jobs, metadata, or systems defined by the project. Only specific, designated roles (read, execute, update) are comprehended by this part of the projects system.

Job

This section contains variables for use in defining job or message files for use with the project.

System

This section contains variables for use specifically in an system project.

Initializing a Project

The CLI supports initialization of a skeleton app and actor projects. These are based on templates written using the CookieCutter specification and housed in a public Github repository.

Initialize an app project

The tapis apps init command will create a new app for you following the designated template. You may specify some basic details of the initial configuration, such as the app name, human-readable label, verbose description, and semantic version, when creating a new app project. Some details are inherited from the CLI settings, such as your preferred Docker namespace and registry.

Here is an example of creating a new app from the default template

$ tapis apps init --app-name Appy --app-label APPINESS --app-description \
  "I am appy to see you" --template default

+-------+---------------------------------------------------------------+
| stage | message                                                       |
+-------+---------------------------------------------------------------+
| setup | Project path: ./appy                                          |
| setup | CookieCutter variable name=Appy                               |
| setup | CookieCutter variable description=I am appy to see you        |
| setup | CookieCutter variable project_slug=appy                       |
| setup | CookieCutter variable docker_namespace=sd2e                   |
| setup | CookieCutter variable docker_registry=https://index.docker.io |
| clone | Project path: ./appy                                          |
+-------+---------------------------------------------------------------+

If you want to preflight the values that the init system is going to use to create a new project, you can pass the --dry-run command flag. The CLI will run all the setup steps, printing the results to screen, but will not actually create the project.

Once you have your new app project, you can configure and customize the app by editing its project.ini, app.json, or run.sh files. You can, if the app is container-based, modify the Dockerfile that specifies the app’s digital assets, or you can package software and dependencies directly in the app’s assets directory.

You can manually upload the app and register it in the Tapis system using individual CLI commands such as tapis files upload and tapis apps create or (probably preferably), you can use the tapis apps deploy command which bundles all necessary Tapis operations into a simple workflow.

You can list the catalog of available templates by passing the --list-templates command flag:

$ tapis app init --list-templates
+-----------+--------------+------------------------------------------+----------+
| id        | name         | description                              | level    |
+-----------+--------------+------------------------------------------+----------+
| default   | Default      | Basic code and configuration skeleton    | beginner |
| shellrun  | Shell Runner | Run an arbitrary shell command via Tapis | beginner |
| wordcount | Word Count   | Simple word counting implementation      | beginner |
+-----------+--------------+------------------------------------------+----------+

Pass one of the listed id values to the --template flag when to initialize a new Tapis app based on that template. Further instructions will be included in a README file in the new project directory.

If you have access to an alternate repository of CookieCutter templates (perhaps provided by your Tapis tenant operator) you can specify its URL via the --repo flag. You can also specifiy a specific commit or branch on the repository via the --checkout flag.

Initialize an actor project

Coming soon

Template repositories

The Tapis CLI uses a public repository containing subdirectories, where each subdirectory is a project template implemented using the CookieCutter specification. There is always a template named default which the CLI is configured to use if no other template is specified.

When a project is created from a CookieCutter template, the CLI uses a collection of key-value variables to fill out file names and contents in the new directory. Some of these, as mentioned above, are specified at the command line and some are based on values available via tapis config.

Details on how to report issues, request improvements, or contribute new templates can be found in the README of each templates repository, and such contributions are welcomed.

Deploy the Project

Git Integration

Contributing to Tapis CLI

We welcome contributions to Tapis CLI, since our users are often best qualified to propose and improve its functionality.

Hacking

Install CLI in editable mode:

pip install -e .

Run all the tests:

python -m pytest

Run multi-environment tests with tox:

# Note tox is not included in requirements.txt
pip install tox
tox

Docker image

A local build of the Tapis CLI container image can be created and launched using make image followed by make interactive. This is helpful when customizing or extending the project Dockerfile.

Code structure

API commands are implemented as subclasses of TaccApisCommandBase, which handles Oauth client setup, and either TaccApisFormatOne or TaccApisFormatMany, which are in turn subclassed from cliff’s Lister and FormatMany classes. This design reflects two kinds of responses: a list of records or a single record (or response to a CRUD action).

Each command is implemented as a TitleCased class in a snake_cased module, which in turn are organized by platform, version, and service under the commands subpackage. Consider the tapis apps list command. It is one of the Tapis APIs, the command being implemented is specific to the v2 version of TACC APIs, and is a command pertaining to the apps service. Thus, the command is defined in class AppsList in tapis_cli.commands.taccapis.v2.apps.apps_list.

This code structure reflects two requirements. The first is that the cliff package uses setuptools entrypoints to establish command line functions. The second is that the Tapis CLI will integrate multiple platforms and versions of TACC-hosted services. There is space marked out in the CLI design for v3 of Tapis, management functions for hosted Gitlab and Container registry, and eventual public release of the TACC SSH Keys service.

Returning to the setuptools topic: Each command is defined in setup.cfg by defining a command and pointing to the implementing class. The apps list command is defined as shown below.

Example setuptools entrypoint:

[entry_points]
console_scripts =
    tapis = tapis_cli.main:main
tapis.cli =
    apps_list = tapis_cli.commands.taccapis.v2.apps:AppsList

Limited (at present) unit tests are implemented in the tests directory. Automated code linting (to PEP8) and code coverage analysis are included in all PyTest runs to encourage sustainable development practices.

Documentation

The project uses Sphinx and the Napoleon extension, which is configured to support Google-style documentation strings.

Regenerate the documentation:

make docs

Code Style

The project code style is vanilla PEP8, as configured by the [flake8] section of setup.cfg.

Use of yapf autoformatter is supported and encouraged to maintain the codebase, and is available via the make format Makefile target.

Issue Tracker

Major functional objectives are bundled into Milestones with due dates in the future. This provides a way to organize the work and have a public road map for functionality.

All work should proceed via reported Issues.

tapis_cli

tapis_cli package

Subpackages

tapis_cli.clients package

Implements HTTP-based web service clients with varied authentication/access mechanisms

Subpackages
tapis_cli.clients.basic package

HTTP x Basic Authentication clients

Submodules
tapis_cli.clients.basic.main module
class tapis_cli.clients.basic.main.BasicHTTPFormatOne(app, app_args, cmd_name=None)

Bases: tapis_cli.clients.http.HTTPFormatOne

HTTP+Basic Record Display

get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

class tapis_cli.clients.basic.main.BasicHTTPFormatMany(app, app_args, cmd_name=None)

Bases: tapis_cli.clients.http.HTTPFormatMany

HTTP+Basic Records Listing

get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.clients.nonce package

Clients that use Abaco nonces

Submodules
tapis_cli.clients.nonce.main module
class tapis_cli.clients.nonce.main.NonceHTTPFormatOne(app, app_args, cmd_name=None)

Bases: tapis_cli.clients.http.HTTPFormatOne

HTTP+Nonce Record Display

get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

class tapis_cli.clients.nonce.main.NonceHTTPFormatMany(app, app_args, cmd_name=None)

Bases: tapis_cli.clients.http.HTTPFormatMany

HTTP+Nonce Records Listing

get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.clients.oauth package

Collection of Oauth2 clients

Submodules
tapis_cli.clients.oauth.bearer module
class tapis_cli.clients.oauth.bearer.BearerTokenFormatOne(app, app_args, cmd_name=None)

Bases: tapis_cli.clients.http.HTTPFormatOne

HTTP+Bearer Token Record Display

get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

class tapis_cli.clients.oauth.bearer.BearerTokenFormatMany(app, app_args, cmd_name=None)

Bases: tapis_cli.clients.http.HTTPFormatMany

HTTP+Bearer Token Records Listing

get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.clients.oauth.impersonate module
class tapis_cli.clients.oauth.impersonate.ImpersonationTokenFormatOne(app, app_args, cmd_name=None)

Bases: tapis_cli.clients.oauth.bearer.BearerTokenFormatOne

HTTP+Bearer Record Display

get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

class tapis_cli.clients.oauth.impersonate.ImpersonationTokenFormatMany(app, app_args, cmd_name=None)

Bases: tapis_cli.clients.oauth.bearer.BearerTokenFormatMany

HTTP+Bearer Records Listing

get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.clients.oauth.keysecret module
class tapis_cli.clients.oauth.keysecret.KeySecretBasicFormatOne(app, app_args, cmd_name=None)

Bases: tapis_cli.clients.basic.main.BasicHTTPFormatOne

HTTP+KeySecret+Basic Record Display

get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

class tapis_cli.clients.oauth.keysecret.KeySecretBasicFormatMany(app, app_args, cmd_name=None)

Bases: tapis_cli.clients.basic.main.BasicHTTPFormatMany

HTTP+KeySecret+Basic Records Listing

get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

class tapis_cli.clients.oauth.keysecret.KeySecretOnlyFormatOne(app, app_args, cmd_name=None)

Bases: tapis_cli.clients.http.HTTPFormatOne

HTTP+KeySecret Only Record Display

get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

class tapis_cli.clients.oauth.keysecret.KeySecretOnlyFormatMany(app, app_args, cmd_name=None)

Bases: tapis_cli.clients.http.HTTPFormatMany

HTTP+KeySecret+Basic Records Listing

get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.clients.oauth.refresh module
class tapis_cli.clients.oauth.refresh.RefreshBearerTokenFormatOne(app, app_args, cmd_name=None)

Bases: tapis_cli.clients.oauth.bearer.BearerTokenFormatOne

HTTP+Bearer+Refresh Token Record Display

get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

class tapis_cli.clients.oauth.refresh.RefreshBearerTokenFormatMany(app, app_args, cmd_name=None)

Bases: tapis_cli.clients.oauth.bearer.BearerTokenFormatMany

HTTP+Bearer+Refresh Records Listing

get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.clients.services package

Implementation of service-specific clients

Subpackages
tapis_cli.clients.services.taccapis package

TACC API service clients

Subpackages
tapis_cli.clients.services.taccapis.v1 package
tapis_cli.clients.services.taccapis.v2 package
Submodules
tapis_cli.clients.services.taccapis.v2.api_keysecret module
class tapis_cli.clients.services.taccapis.v2.api_keysecret.TaccApisKeySecretPassword

Bases: tapis_cli.clients.services.taccapis.v2.base.TaccApisCommandBase

Parameterize Tapis API commands that accept API key/secret + password

add_common_parser_arguments(parser)
class tapis_cli.clients.services.taccapis.v2.api_keysecret.TaccApisKeySecretUsernamePassword

Bases: tapis_cli.clients.services.taccapis.v2.api_keysecret.TaccApisKeySecretPassword

Parameterize Tapis API commands that accept API key/secret + username/password and/or token_username

add_common_parser_arguments(parser)
tapis_cli.clients.services.taccapis.v2.apiclient module
class tapis_cli.clients.services.taccapis.v2.apiclient.TaccApiClient

Bases: object

PROPS = [('token', 'access_token', 'access_token'), ('refresh_token', 'refresh_token', 'refresh_token'), ('api_key', 'api_key', 'api_key'), ('api_secret', 'api_secret', 'api_secret'), ('api_server', 'baseurl', 'api_server'), ('tenant_id', 'tenantid', 'tenant_id'), ('username', 'username', 'username'), ('token_username', 'token_username', 'token_username'), ('password', 'password', 'password'), ('created_at', 'created_at', 'created_at'), ('expires_in', 'expires_in', 'expires_in'), ('expires_at', 'expires_at', 'expires_at')]
TIMEZONE = None
init_clients(passed_args=None)
key_values()

Returns Tapis variable/value pairs for templating

post_payload = {}
render_value(value)

Renders a value based on current display format

Each field value in a response can be passed through this function to implement format-specific rendering

tapis_cli.clients.services.taccapis.v2.base module
class tapis_cli.clients.services.taccapis.v2.base.TaccApisCommandBase

Bases: tapis_cli.clients.services.taccapis.v2.apiclient.TaccApiClient

A base class for building Tapis API client commands

add_common_parser_arguments(parser)
client_extra_args = {}
constants = <module 'tapis_cli.constants' from '/home/docs/checkouts/readthedocs.org/user_builds/tapis-cli/envs/latest/lib/python3.7/site-packages/tapis_cli/constants.py'>
get_parser(prog_name)
post_payload = {}
take_action(parsed_args)
update_payload(parsed_args)
tapis_cli.clients.services.taccapis.v2.basic module
class tapis_cli.clients.services.taccapis.v2.basic.TaccApisOnlyBasic

Bases: tapis_cli.clients.services.taccapis.v2.base.TaccApisCommandBase

Base class for Tapis API commands accepting only HTTP Basic Authentication

add_common_parser_arguments(parser)
tapis_cli.clients.services.taccapis.v2.bearer module
class tapis_cli.clients.services.taccapis.v2.bearer.TaccApisBearer

Bases: tapis_cli.clients.services.taccapis.v2.base.TaccApisCommandBase

ACCEPT_ACCESS_TOKEN = True
ACCEPT_NONCE = False
ACCEPT_REFRESH_TOKEN = False
ALLOW_NO_VERIFY = True
add_common_parser_arguments(parser)
init_clients(parsed_args)

Override CommandBase to set up client with passed token

class tapis_cli.clients.services.taccapis.v2.bearer.TaccApisNoBearer

Bases: tapis_cli.clients.services.taccapis.v2.base.TaccApisCommandBase

Base class for Tapis API commands that accept only an access token

add_common_parser_arguments(parser)
tapis_cli.clients.services.taccapis.v2.bearer_refresh module
class tapis_cli.clients.services.taccapis.v2.bearer_refresh.TaccApisBearerRefresh

Bases: tapis_cli.clients.services.taccapis.v2.bearer.TaccApisBearer

Base class for Tapis API commands both an access token and a refresh token

add_common_parser_arguments(parser)
tapis_cli.clients.services.taccapis.v2.direct module
class tapis_cli.clients.services.taccapis.v2.direct.TaccApiDirectClient(agave_client)

Bases: object

Requests client bootstrapped from a Tapis API client

The intended use is to implement methods not expressed by the current Swagger spec and which are thus not accessible in AgavePy. Examples include the ‘search’ function, which relies on encoding a POST form of search terms into a GET request. The web request is made directly using the requests library. Configuration for SSL verification is inherited from the verify property of the passed Agave client to enforce consistent communications behavior between the two kinds of HTTP client.

build_url(*args)
delete(path=None)
get(path=None)
get_bytes(path=None)
get_data(path=None, params={})
post(path=None, data=None, content_type=None, json=None, params=None)
post_data_basic(data=None, auth=None, path=None, content_type=None)
setup(service_name, service_version, api_path=None)
tapis_cli.clients.services.taccapis.v2.format_many module
class tapis_cli.clients.services.taccapis.v2.format_many.TaccApisFormatManyUnlimited(app, app_args, cmd_name=None)

Bases: tapis_cli.clients.services.mixins.LegacyCommmandHelp, tapis_cli.clients.services.mixins.JsonVerbose, tapis_cli.clients.http.HTTPFormatMany, tapis_cli.clients.services.taccapis.v2.bearer.TaccApisBearer

get_parser(prog_name)

Return an argparse.ArgumentParser.

preprocess_args(parsed_args)
class tapis_cli.clients.services.taccapis.v2.format_many.TaccApisFormatMany(app, app_args, cmd_name=None)

Bases: tapis_cli.clients.services.taccapis.v2.format_many.TaccApisFormatManyUnlimited

get_parser(prog_name)

Return an argparse.ArgumentParser.

preprocess_args(parsed_args)
update_payload(parsed_args)
tapis_cli.clients.services.taccapis.v2.format_one module
class tapis_cli.clients.services.taccapis.v2.format_one.TaccApisFormatOne(app, app_args, cmd_name=None)

Bases: tapis_cli.clients.services.mixins.LegacyCommmandHelp, tapis_cli.clients.services.mixins.JsonVerbose, tapis_cli.clients.http.HTTPFormatOne, tapis_cli.clients.services.taccapis.v2.bearer.TaccApisBearer

get_parser(prog_name)

Return an argparse.ArgumentParser.

preprocess_args(parsed_args)
update_payload(parsed_args)
class tapis_cli.clients.services.taccapis.v2.format_one.TaccApisFormatOneNoBearer(app, app_args, cmd_name=None)

Bases: tapis_cli.clients.services.mixins.LegacyCommmandHelp, tapis_cli.clients.services.mixins.JsonVerbose, tapis_cli.clients.http.HTTPFormatOne

get_parser(prog_name)

Return an argparse.ArgumentParser.

preprocess_args(parsed_args)
update_payload(parsed_args)
tapis_cli.clients.services.taccapis.v3 package
Submodules
tapis_cli.clients.services.mixins module

Mix-ins used to add defined behaviors to Tapis CLI commands

exception tapis_cli.clients.services.mixins.OptionNotImplemented

Bases: ValueError

Raised when an option that is only a placeholder is specified

class tapis_cli.clients.services.mixins.AppVerboseLevel

Bases: tapis_cli.clients.services.mixins.ParserExtender

Configures a Command to access the parent cliff App’s verbosity level

The calling App’s verbose_level is made available via method app_verbose_level(). In addition, two properties ‘VERBOSITY’ and ‘EXTRA_VERBOSITY’ are defined. These are intended to be values defined by the Verbosity module. ‘VERBOSITY’ is the default field-display verbosity for the Command, while EXTRA_VERBOSITY is the verbosity level when a user or process specifies that additional verbosity is needed.

EXTRA_VERBOSITY = None
VERBOSITY = None
app_verbose_level

Exposes the app-scoped verbosity level as a formatter property

class tapis_cli.clients.services.mixins.JsonVerbose

Bases: tapis_cli.clients.services.mixins.AppVerboseLevel

Configures a Command to use JSON as formatter when verbose is requested

Overrides the Command.formatter_default property such that passing an instance of ‘-v’ to the cliff App when running a command will configure the Command to use JSON formatter and to increase its field-display verbosity to the level defined by ‘EXTRA_VERBOSITY’

EXTRA_VERBOSITY = 2
formatter_default

Overrides formatter_default to return JSON when -v is passed

preprocess_args(parsed_args)
verbosify_parsed_args(parsed_args)
class tapis_cli.clients.services.mixins.ServiceIdentifier

Bases: tapis_cli.clients.services.mixins.ParserExtender

Configures a Command to require a mandatory ‘identifier’ positional param

Adds a positional parameter to the Command parser. The value for the parameter’s ‘metavar’ is set by the Command.service_id_type property.

arg_display(id_value)
arg_help(id_value)
arg_metavar(id_value)
dest = 'identifier'
extend_parser(parser)
get_identifier(parsed_args, validate=False, permissive=False)
id_type = 'identifier'
optional = False
service_id_type = 'Service'
validate_identifier(identifier, permissive=True)
class tapis_cli.clients.services.mixins.UploadJsonFile

Bases: tapis_cli.clients.services.mixins.ParserExtender

Configures a client to accept and load a JSON file

Adds -F and –file to a Command’s parser. To load the designated file, the handle_file_upload() must then be called. JSON file contents will reside in self.json_file_contents.

default = None
extend_parser(parser)
handle_file_upload(parsed_args)
json_loaded = {}
optional = False
validate = True
class tapis_cli.clients.services.mixins.AgaveURI

Bases: tapis_cli.clients.services.mixins.ParserExtender

Configures a Command to require a mandatory ‘agave uri’ positional parameter

extend_parser(parser)
get_value(parsed_args)
classmethod parse_url(url)

Parse an Agave files resource URI into storageSystem and filePath

validate(url, permissive=False)

Placeholder to implement validation of a value passed via a ParserExtender

class tapis_cli.clients.services.mixins.RemoteFilePath

Bases: tapis_cli.clients.services.mixins.ParserExtender

Configures a Command to accept an optional file path

extend_parser(parser)
class tapis_cli.clients.services.mixins.LocalFilePath

Bases: tapis_cli.clients.services.mixins.ParserExtender

Configures a Command to accept a local file path

extend_parser(parser)
class tapis_cli.clients.services.mixins.Username

Bases: tapis_cli.clients.services.mixins.ParserExtender

Configures a Command to accept an positional username

extend_parser(parser)
exception tapis_cli.clients.services.mixins.InvalidIdentifier

Bases: tapis_cli.clients.services.mixins.InvalidValue

Raised when an invalid identifier is encountered

class tapis_cli.clients.services.mixins.OptionalLocalFilePath

Bases: tapis_cli.clients.services.mixins.ParserExtender

Configures a Command to accept a local file path

extend_parser(parser)
exception tapis_cli.clients.services.mixins.InvalidValue

Bases: ValueError

class tapis_cli.clients.services.mixins.URL

Bases: tapis_cli.clients.services.mixins.ParserExtender

Configures a Command to require a mandatory ‘url’ positional parameter

extend_parser(parser)
get_value(parsed_args)
validate(url, permissive=False)

Placeholder to implement validation of a value passed via a ParserExtender

class tapis_cli.clients.services.mixins.TapisEntityUUID

Bases: tapis_cli.clients.services.mixins.ServiceIdentifier

classmethod arg_display(id_value)
id_type = 'unique identifer'
service_id_type = 'Tapis Entity'
class tapis_cli.clients.services.mixins.OptionalTapisEntityUUID

Bases: tapis_cli.clients.services.mixins.TapisEntityUUID

optional = True
class tapis_cli.clients.services.mixins.UploadJSONTemplate

Bases: tapis_cli.clients.services.mixins.IniLoader, tapis_cli.clients.services.mixins.UploadJsonFile

all_key_values(parsed_args, passed_vals)
handle_file_upload(parsed_args, passed_vals={})
class tapis_cli.clients.services.mixins.WorkingDirectory

Bases: tapis_cli.clients.services.mixins.ParserExtender

Allows the working directory to be set via positional argument.

extend_parser(parser)
help_string = 'Working directory'
set_working_directory(parsed_args, working_dir='.')
class tapis_cli.clients.services.mixins.WorkingDirectoryOpt

Bases: tapis_cli.clients.services.mixins.WorkingDirectory

Allows the working directory to be set via optional, terminal argument.

extend_parser(parser)
class tapis_cli.clients.services.mixins.WorkingDirectoryArg

Bases: tapis_cli.clients.services.mixins.WorkingDirectory

Allows the working directory to be set via optional argument.

extend_parser(parser)
class tapis_cli.clients.services.mixins.DownloadDirectoryArg

Bases: tapis_cli.clients.services.mixins.WorkingDirectoryArg

Allows the working directory to be set via optional argument.

extend_parser(parser)
help_string = 'Download directory'
class tapis_cli.clients.services.mixins.DockerPy

Bases: object

docker_client_from_env()
dockerpy = None
class tapis_cli.clients.services.mixins.LegacyCommmandHelp

Bases: object

Configures a commands to show legacy syntax

Bash CLI syntax is shown in overview and detailed help responses. This is configurable at class level with SHOW_LEGACY_INTERACTIVE and RENDER_LEGACY_DOCS booleans. It is also configurable for overview mode via settings.TAPIS_CLI_SHOW_LEGACY_INTERACTIVE_HELP.

HELP_STRING = 'Command description'
LEGACY_COMMMAND_STRING = None
RENDER_LEGACY_DOCS = True
SHOW_LEGACY_INTERACTIVE = False
get_epilog()
class tapis_cli.clients.services.mixins.FilesURI

Bases: tapis_cli.clients.services.mixins.AgaveURI

extend_parser(parser)
get_value(parsed_args, agave=None)
class tapis_cli.clients.services.mixins.IniLoader

Bases: tapis_cli.clients.services.mixins.ParserExtender

extend_parser(parser)
get_ini_contents(parsed_args)
get_ini_path(filename)
Submodules
tapis_cli.clients.http module

Basic HTTP requests client

class tapis_cli.clients.http.HTTPFormatOne(app, app_args, cmd_name=None)

Bases: cliff.show.ShowOne, tapis_cli.clients.http.HTTPCommandBase

HTTP Single Record Display

class tapis_cli.clients.http.HTTPFormatMany(app, app_args, cmd_name=None)

Bases: cliff.lister.Lister, tapis_cli.clients.http.HTTPCommandBase

HTTP Records Listing

tapis_cli.commands package
Subpackages
tapis_cli.commands.gitlab package

On-premises Gitlab commands

Subpackages
tapis_cli.commands.gitlab.v4 package

Gitlab v4 commands

tapis_cli.commands.local package

Pure client-side commands

Subpackages
tapis_cli.commands.local.settings package

Settings managament commands

Submodules
tapis_cli.commands.local.settings.get module
class tapis_cli.commands.local.settings.get.SettingsGet(app, app_args, cmd_name=None)

Bases: tapis_cli.mocks.FormatOne, tapis_cli.commands.local.settings.mixins.SettingName

Get a Tapis CLI setting

get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.local.settings.list module
class tapis_cli.commands.local.settings.list.SettingsList(app, app_args, cmd_name=None)

Bases: tapis_cli.mocks.FormatMany

List current Tapis CLI settings

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.local.settings.mixins module

Settings-specfic mixins

class tapis_cli.commands.local.settings.mixins.SettingName

Bases: tapis_cli.clients.services.mixins.ServiceIdentifier

classmethod arg_display(id_value)
classmethod arg_help(id_value)
classmethod arg_metavar(id_value)
validate_identifier(identifier, allow_private=False, permissive=False)
tapis_cli.commands.local.settings.set module
class tapis_cli.commands.local.settings.set.SettingsSet(app, app_args, cmd_name=None)

Bases: tapis_cli.mocks.FormatOne, tapis_cli.commands.local.settings.mixins.SettingName

Set a Tapis CLI setting

get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.local.settings.set.settings_set(setting_name, setting_value)
tapis_cli.commands.local.settings.unset module
class tapis_cli.commands.local.settings.unset.SettingsUnset(app, app_args, cmd_name=None)

Bases: tapis_cli.mocks.FormatOne, tapis_cli.commands.local.settings.mixins.SettingName

Unset a Tapis CLI setting

get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

Submodules
tapis_cli.commands.local.statuses module
class tapis_cli.commands.local.statuses.Status(app, app_args, cmd_name=None)

Bases: cliff.command.Command

Show API statuses

log = <Logger tapis_cli.commands.local.statuses (WARNING)>
take_action(parsed_args)

Override to do something useful.

The returned value will be returned by the program.

tapis_cli.commands.local.variables module
class tapis_cli.commands.local.variables.VariablesList(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.formatters.TaccApisFormatManyUnlimited, tapis_cli.clients.services.mixins.UploadJSONTemplate

HELP_STRING = 'Show active template variable names and values'
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

class tapis_cli.commands.local.variables.VariablesInit(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.formatters.TaccApisFormatOne

HELP_STRING = 'Create an .ini file to support templating'
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.local.versions module
class tapis_cli.commands.local.versions.Version(app, app_args, cmd_name=None)

Bases: cliff.command.Command

Show API versions

log = <Logger tapis_cli.commands.local.versions (WARNING)>
take_action(parsed_args)

Override to do something useful.

The returned value will be returned by the program.

tapis_cli.commands.registry package

Docker container registry commands

Subpackages
tapis_cli.commands.registry.v2 package

Registry v2 commands

tapis_cli.commands.taccapis package
Subpackages
tapis_cli.commands.taccapis.model package
Subpackages
tapis_cli.commands.taccapis.model.v2 package
Submodules
tapis_cli.commands.taccapis.model.v2.message module

Data model for a message-only response

class tapis_cli.commands.taccapis.model.v2.message.Message

Bases: tapis_cli.commands.taccapis.model.v2.tapismodel.TapisModel

Model of a Tapis message-only response

SEARCH_ARGS = []
get_headers(verbosity_level=1, formatter='table')

Custom headers for Message

tapis_cli.commands.taccapis.model.v2.permission module

Data model and functions for Tapis apps

class tapis_cli.commands.taccapis.model.v2.permission.Permission

Bases: tapis_cli.commands.taccapis.model.v2.tapismodel.TapisModel

Model of a Tapis permission

NAMES = ['ALL', 'READ', 'WRITE', 'READ_WRITE', 'EXECUTE', 'READ_EXECUTE', 'WRITE_EXECUTE', 'NONE']
PEM_POSIX_MAPPING = {'ALL': 'rwx', 'EXECUTE': '--x', 'NONE': '---', 'READ': 'r--', 'READ_EXECUTE': 'r-x', 'READ_WRITE': 'rw-', 'WRITE': '-w-', 'WRITE_EXECUTE': '-wx'}
SEARCH_ARGS = [('username', <class 'str'>, 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('permission', <class 'dict'>, 1, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('_links', <class 'list'>, 1, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, 'links', False)]
get_headers(verbosity_level=1, formatter='table')

Custom headers by verbosity for AppPermission

classmethod pem_to_row(permission)

Transforms a ‘permission’ object into an array of strings

Values for ‘True’ and ‘False’ are defined in constants.PEM_TRUE and constants.PEM_FALSE.

classmethod pem_to_unix(permission)

Returns a UNIX shell representation of a Tapis permission

classmethod validate(permission, permissive=False)
class tapis_cli.commands.taccapis.model.v2.permission.AbacoPermission

Bases: tapis_cli.commands.taccapis.model.v2.tapismodel.TapisModel

Model of an Abaco permission

NAMES = ['READ', 'EXECUTE', 'UPDATE', 'NONE']
SEARCH_ARGS = [('result', <class 'list'>, 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('message', <class 'dict'>, 1, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('status', <class 'dict'>, 1, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, 'links', False)]
get_headers(verbosity_level=1, formatter='table')

Custom headers by verbosity for ActorPermission

classmethod validate(permission, permissive=False)
tapis_cli.commands.taccapis.model.v2.role module
class tapis_cli.commands.taccapis.model.v2.role.Role

Bases: object

tapis_cli.commands.taccapis.model.v2.tapismodel module
class tapis_cli.commands.taccapis.model.v2.tapismodel.TapisModel

Bases: object

Base class for Tapis models

ARGS_ORDERED = []
SEARCH_ARGS = []
add_field(param_name, param_type, only_detail, mods_allowed, default_mod, value_choices=None, param_opt=None, searchable=False)

Add a searchable field

add_fields(fields, ordered=[])

Bulk add multiple searchable fields

classmethod argify(arg_name, arg_type, arg_help=None)
fields = []
format_many = False
get_args(list_only=False)
get_headers(verbosity_level=None, formatter='table')
classmethod optionize(text_string)

Render a field name as an option

payload = {}
classmethod render_key_value(key, value)

Overridable function to how JSON key/values should be transformed

service_id_type = 'Unknown'
classmethod transform_response(response_json)

Apply an intermediate transform to a JSON document

validate(entity, permissive=True)
tapis_cli.commands.taccapis.model.v2.username module

Data model and functions for Tapis users

Submodules
tapis_cli.commands.taccapis.model.base module
tapis_cli.commands.taccapis.v1 package

TACC APIs commands referencing /v1

Subpackages
tapis_cli.commands.taccapis.v1.tas package

TACC Accounting System (TAS) commands

tapis_cli.commands.taccapis.v2 package

TACC API commands referencing /v2

Subpackages
tapis_cli.commands.taccapis.v2.actors package

Abaco commands

Subpackages
tapis_cli.commands.taccapis.v2.actors.deploy package
Submodules
tapis_cli.commands.taccapis.v2.actors.deploy.actorid module

Manages cache of current Abaco actor ID

tapis_cli.commands.taccapis.v2.actors.deploy.actorid.get_cachefile(filename=None)

Resolve cachefile path

tapis_cli.commands.taccapis.v2.actors.deploy.actorid.read_id(filename=None)

Read from cache

tapis_cli.commands.taccapis.v2.actors.deploy.actorid.validate(actor_id, permissive=True)

Validate actorId

tapis_cli.commands.taccapis.v2.actors.deploy.actorid.write_id(actor_id, filename='.actorid')

Write to cache

tapis_cli.commands.taccapis.v2.actors.deploy.deploy module
class tapis_cli.commands.taccapis.v2.actors.deploy.deploy.ActorsDeploy(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.actors.formatters.ActorsFormatManyUnlimited, tapis_cli.clients.services.mixins.DockerPy, tapis_cli.clients.services.mixins.WorkingDirectoryArg, tapis_cli.clients.services.mixins.IniLoader

HELP_STRING = 'Deploy an Actor from a project directory'
LEGACY_COMMMAND_STRING = 'abaco deploy'
build = True
config = {}
create = True
document = None
get_parser(prog_name)

Return an argparse.ArgumentParser.

grant = True
messages = []
passed_vals = {}
pull = True
push = True
results = []
take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.taccapis.v2.actors.deploy.rcfile module

Loads a legacy reactor.rc file as a config dictionary

tapis_cli.commands.taccapis.v2.actors.deploy.rcfile.config_path(filename=None, working_directory=None)
tapis_cli.commands.taccapis.v2.actors.deploy.rcfile.load_config(filename='reactor.rc', as_dict=False, permissive=True)

Return project configuration as ConfigParser or dict from reactor.rc

tapis_cli.commands.taccapis.v2.actors.helpers package
tapis_cli.commands.taccapis.v2.actors.init package
Submodules
tapis_cli.commands.taccapis.v2.actors.init.init module
class tapis_cli.commands.taccapis.v2.actors.init.init.ActorsInit(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.actors.formatters.ActorsFormatManyUnlimited

CATALOG_FILENAME = 'catalog.json'
EXTRA_VERBOSITY = 2.5
HELP_STRING = 'Initialize a new Tapis Actor project'
LEGACY_COMMMAND_STRING = 'abaco-init'
VERBOSITY = 2
config = None
document = None
exceptions = []
get_parser(prog_name)

Return an argparse.ArgumentParser.

git_init = True
git_remote = False
headers = []
messages = []
passed_vals = {}
results = []
take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.taccapis.v2.actors.init.templates module

Provides key, name, description, and location for cookiecutter actors templates

tapis_cli.commands.taccapis.v2.actors.manage package
Submodules
tapis_cli.commands.taccapis.v2.actors.manage.base module
class tapis_cli.commands.taccapis.v2.actors.manage.base.ActorsBaseClass(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.actors.formatters.ActorsFormatOne, tapis_cli.commands.taccapis.v2.actors.mixins.ActorIdentifier

Shared base class implementing actors create/update

CREATE_ONLY = False
EXTRA_VERBOSITY = 2.5
VERBOSITY = 0
config = {}
extend_parser(parser)

Adds a named argument to parser for each searchable argument

Help for each argument is displayed in the special argument group

get_configuration(parsed_args, agave=None)

Returns specified Actor configuration from argparse inputs

get_envs(parsed_args)

Returns specified environment variables from CLI and file

classmethod get_envs_from_file(filename, decryption_key=None)
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.actors.manage.create module
class tapis_cli.commands.taccapis.v2.actors.manage.create.ActorsCreate(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.actors.manage.base.ActorsBaseClass

CREATE_ONLY = True
HELP_STRING = 'Create an Actor'
LEGACY_COMMMAND_STRING = 'abaco create'
take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.actors.manage.deploy module
tapis_cli.commands.taccapis.v2.actors.manage.update module
class tapis_cli.commands.taccapis.v2.actors.manage.update.ActorsUpdate(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.actors.manage.base.ActorsBaseClass

CREATE_ONLY = False
HELP_STRING = 'Update an Actor'
LEGACY_COMMMAND_STRING = 'abaco update'
take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.actors.models package
Submodules
tapis_cli.commands.taccapis.v2.actors.models.actor module

Data model and functions for Tapis Actor

class tapis_cli.commands.taccapis.v2.actors.models.actor.Actor

Bases: tapis_cli.commands.taccapis.model.v2.tapismodel.TapisModel

Model of a Tapis actor

ARGS_ORDERED = ['id', 'name', 'description', 'owner', 'image']
FILTERABLE_KEYS = ['name', 'description', 'image', 'owner']
SEARCH_ARGS = [('createTime', 'datetime', 1.5, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('lastUpdateTime', 'datetime', 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('defaultEnvironment', <class 'dict'>, 1.5, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('description', <class 'str'>, 1.5, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('gid', <class 'int'>, 1.5, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('hints', <class 'list'>, 1.5, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('id', <class 'str'>, 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('image', <class 'str'>, 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('link', <class 'str'>, 1.5, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('mounts', <class 'list'>, 1.5, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('name', <class 'str'>, 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('owner', <class 'str'>, 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('privileged', <class 'bool'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('queue', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('state', <class 'dict'>, 3, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('stateless', <class 'bool'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('status', <class 'str'>, 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('statusMessage', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('tasdir', <class 'str'>, 3, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('token', <class 'bool'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('type', <class 'str'>, 3, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('uid', <class 'int'>, 1.5, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('useContainerUid', <class 'bool'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('webhook', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('cronOn', <class 'bool'>, 0, ['eq', 'neq'], 'eq', None, None, True), ('cronSchedule', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('cronNextEx', <class 'str'>, 2.5, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('_links', <class 'list'>, 1, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, 'links', False)]
service_id_type = 'Actor'
tapis_cli.commands.taccapis.v2.actors.models.alias module

Data model and functions for Tapis Alias

class tapis_cli.commands.taccapis.v2.actors.models.alias.Alias

Bases: tapis_cli.commands.taccapis.model.v2.tapismodel.TapisModel

ARGS_ORDERED = ['alias', 'actorId']
FILTERABLE_KEYS = ['owner']
SEARCH_ARGS = [('actorId', <class 'str'>, 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('alias', <class 'str'>, 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('owner', <class 'str'>, 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('_links', <class 'list'>, 1, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, 'links', False)]
service_id_type = 'Alias'
tapis_cli.commands.taccapis.v2.actors.models.execution module

Data model and functions for Abaco Executions

tapis_cli.commands.taccapis.v2.actors.models.message module

Data model and functions for Tapis Message

class tapis_cli.commands.taccapis.v2.actors.models.message.Message

Bases: tapis_cli.commands.taccapis.model.v2.tapismodel.TapisModel

SEARCH_ARGS = [('executionId', <class 'str'>, 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('msg', <class 'str'>, 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('_links', <class 'list'>, 1, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, 'links', False)]
service_id_type = 'Message'
tapis_cli.commands.taccapis.v2.actors.models.nonce module

Data model and functions for Abaco Nonces

tapis_cli.commands.taccapis.v2.actors.models.worker module

Data model and functions for Actor workers

Submodules
tapis_cli.commands.taccapis.v2.actors.aliases_create module
class tapis_cli.commands.taccapis.v2.actors.aliases_create.ActorsAliasesCreate(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.actors.formatters.ActorsFormatOne, tapis_cli.commands.taccapis.v2.actors.mixins.ActorIdentifier, tapis_cli.commands.taccapis.v2.actors.mixins.AliasIdentifier

EXTRA_VERBOSITY = 2.5
HELP_STRING = 'Add an Alias for an Actor'
LEGACY_COMMMAND_STRING = 'abaco aliases create'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.actors.aliases_delete module
class tapis_cli.commands.taccapis.v2.actors.aliases_delete.ActorsAliasesDelete(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.actors.formatters.ActorsFormatOne, tapis_cli.commands.taccapis.v2.actors.mixins.AliasIdentifier

EXTRA_VERBOSITY = 2
HELP_STRING = 'Delete an Actor Alias'
LEGACY_COMMMAND_STRING = 'abaco aliases rm'
VERBOSITY = 2
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.actors.aliases_list module
class tapis_cli.commands.taccapis.v2.actors.aliases_list.ActorsAliasesList(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.actors.formatters.ActorsFormatMany, tapis_cli.commands.taccapis.v2.actors.mixins.GlobListFilter

EXTRA_VERBOSITY = 2.5
FILTERABLE_KEYS = ['owner']
HELP_STRING = 'List all Actor Aliases'
LEGACY_COMMMAND_STRING = 'abaco aliases list'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.taccapis.v2.actors.aliases_show module
class tapis_cli.commands.taccapis.v2.actors.aliases_show.ActorsAliasesShow(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.actors.formatters.ActorsFormatOne, tapis_cli.commands.taccapis.v2.actors.mixins.AliasIdentifier

EXTRA_VERBOSITY = 2.5
HELP_STRING = 'Show details for an Actor Alias'
LEGACY_COMMMAND_STRING = 'abaco aliases list'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.actors.aliases_update module
class tapis_cli.commands.taccapis.v2.actors.aliases_update.ActorsAliasesUpdate(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.actors.formatters.ActorsFormatOne, tapis_cli.commands.taccapis.v2.actors.aliases_update.NewActorIdentifier, tapis_cli.commands.taccapis.v2.actors.mixins.AliasIdentifier

EXTRA_VERBOSITY = 2.5
HELP_STRING = 'Update an Alias to resolve to a different Actor'
LEGACY_COMMMAND_STRING = ''
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

class tapis_cli.commands.taccapis.v2.actors.aliases_update.NewActorIdentifier

Bases: tapis_cli.commands.taccapis.v2.actors.mixins.ActorIdentifier

dest = 'new_actor_id'
tapis_cli.commands.taccapis.v2.actors.delete module
class tapis_cli.commands.taccapis.v2.actors.delete.ActorsDelete(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.actors.formatters.ActorsFormatOne, tapis_cli.commands.taccapis.v2.actors.mixins.ActorIdentifier

EXTRA_VERBOSITY = 2
HELP_STRING = 'Delete an Actor'
LEGACY_COMMMAND_STRING = 'abaco rm'
VERBOSITY = 2
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.actors.execs_list module
class tapis_cli.commands.taccapis.v2.actors.execs_list.ActorsExecsList(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.actors.formatters.ActorsFormatManyUnlimited, tapis_cli.commands.taccapis.v2.actors.mixins.ActorIdentifier, tapis_cli.commands.taccapis.v2.actors.mixins.GlobListFilter

ACCEPT_NONCE = True
EXTRA_VERBOSITY = 2
FILTERABLE_KEYS = ['finalState', 'status']
HELP_STRING = 'List Executions for a specific Actor'
LEGACY_COMMMAND_STRING = 'abaco executions'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.taccapis.v2.actors.execs_logs module
class tapis_cli.commands.taccapis.v2.actors.execs_logs.ActorsExecsLogs(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.actors.formatters.ActorsFormatManyUnlimited, tapis_cli.commands.taccapis.v2.actors.mixins.ActorIdentifier, tapis_cli.commands.taccapis.v2.actors.mixins.ExecutionIdentifier

ACCEPT_NONCE = True
EXTRA_VERBOSITY = 2
HELP_STRING = 'Show logs for a specific Execution'
LEGACY_COMMMAND_STRING = 'abaco logs'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.taccapis.v2.actors.execs_show module
class tapis_cli.commands.taccapis.v2.actors.execs_show.ActorsExecsShow(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.actors.formatters.ActorsFormatOne, tapis_cli.commands.taccapis.v2.actors.mixins.ActorIdentifier, tapis_cli.commands.taccapis.v2.actors.mixins.ExecutionIdentifier

ACCEPT_NONCE = True
EXTRA_VERBOSITY = 2
HELP_STRING = 'Show details of a specific Execution'
LEGACY_COMMMAND_STRING = 'abaco executions'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.actors.execs_stop module
class tapis_cli.commands.taccapis.v2.actors.execs_stop.ActorsExecsStop(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.actors.formatters.ActorsFormatOne, tapis_cli.commands.taccapis.v2.actors.mixins.ActorIdentifier

ACCEPT_NONCE = True
EXTRA_VERBOSITY = 2
FILTERABLE_KEYS = ['finalState', 'status']
HELP_STRING = 'Delete queued messages from the Actor mailbox, preventing their execution. Running executions will continue.'
LEGACY_COMMMAND_STRING = None
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.actors.formatters module

Formatters customized for Actor records and listings

class tapis_cli.commands.taccapis.v2.actors.formatters.ActorsFormatOne(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.actors.formatters.ActorsBase, tapis_cli.commands.taccapis.formatters.TaccApisFormatOne

class tapis_cli.commands.taccapis.v2.actors.formatters.ActorsFormatMany(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.actors.formatters.ActorsBase, tapis_cli.commands.taccapis.formatters.TaccApisFormatMany

class tapis_cli.commands.taccapis.v2.actors.formatters.ActorsFormatManyUnlimited(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.actors.formatters.ActorsBase, tapis_cli.commands.taccapis.formatters.TaccApisFormatManyUnlimited

tapis_cli.commands.taccapis.v2.actors.list module
class tapis_cli.commands.taccapis.v2.actors.list.ActorsList(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.actors.formatters.ActorsFormatManyUnlimited, tapis_cli.commands.taccapis.v2.actors.mixins.GlobListFilter

EXTRA_VERBOSITY = 1.5
FILTERABLE_KEYS = ['name', 'description', 'image', 'owner']
HELP_STRING = 'List available Actors'
LEGACY_COMMMAND_STRING = 'abaco list'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.taccapis.v2.actors.mixins module
class tapis_cli.commands.taccapis.v2.actors.mixins.AliasIdentifier

Bases: tapis_cli.clients.services.mixins.ServiceIdentifier

dest = 'alias_id'
id_type = 'string'
service_id_type = 'Alias'
class tapis_cli.commands.taccapis.v2.actors.mixins.ActorIdentifier

Bases: tapis_cli.clients.services.mixins.ServiceIdentifier

dest = 'actor_id'
service_id_type = 'Actor'
class tapis_cli.commands.taccapis.v2.actors.mixins.ExecutionIdentifier

Bases: tapis_cli.clients.services.mixins.ServiceIdentifier

dest = 'execution_id'
service_id_type = 'Execution'
class tapis_cli.commands.taccapis.v2.actors.mixins.NonceIdentifier

Bases: tapis_cli.clients.services.mixins.ServiceIdentifier

dest = 'nonce_id'
service_id_type = 'Nonce'
class tapis_cli.commands.taccapis.v2.actors.mixins.WorkerIdentifier

Bases: tapis_cli.clients.services.mixins.ServiceIdentifier

dest = 'worker_id'
service_id_type = 'Worker'
class tapis_cli.commands.taccapis.v2.actors.mixins.GlobListFilter

Bases: tapis_cli.clients.services.mixins.ParserExtender

Configures a list Command to accept a filter glob

Sets ‘parsed_args.list_filter’

FILTERABLE_KEYS = ['id']
extend_parser(parser)
class tapis_cli.commands.taccapis.v2.actors.mixins.ActorFileOrMessage

Bases: tapis_cli.clients.services.mixins.ParserExtender

extend_parser(parser)
handle_file_upload(parsed_args)
payload = None
class tapis_cli.commands.taccapis.v2.actors.mixins.ActorEnvironmentVariables

Bases: tapis_cli.clients.services.mixins.ParserExtender

environment = {}
extend_parser(parser)
process_parsed_args(parsed_args)
validate(value, permissive=False)

Placeholder to implement validation of a value passed via a ParserExtender

tapis_cli.commands.taccapis.v2.actors.nonces_create module
class tapis_cli.commands.taccapis.v2.actors.nonces_create.ActorsNoncesCreate(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.actors.formatters.ActorsFormatOne, tapis_cli.commands.taccapis.v2.actors.mixins.ActorIdentifier

EXTRA_VERBOSITY = 1.5
HELP_STRING = 'Create a Nonce for the specified Actor (or Alias)'
LEGACY_COMMMAND_STRING = None
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.actors.nonces_delete module
class tapis_cli.commands.taccapis.v2.actors.nonces_delete.ActorsNoncesDelete(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.actors.formatters.ActorsFormatOne, tapis_cli.commands.taccapis.v2.actors.mixins.ActorIdentifier, tapis_cli.commands.taccapis.v2.actors.mixins.NonceIdentifier

EXTRA_VERBOSITY = 2
HELP_STRING = 'Delete a Nonce from an Actor (or Alias)'
LEGACY_COMMMAND_STRING = None
VERBOSITY = 2
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.actors.nonces_list module
class tapis_cli.commands.taccapis.v2.actors.nonces_list.ActorsNoncesList(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.actors.formatters.ActorsFormatManyUnlimited, tapis_cli.commands.taccapis.v2.actors.mixins.ActorIdentifier, tapis_cli.commands.taccapis.v2.actors.mixins.GlobListFilter

EXTRA_VERBOSITY = 2
FILTERABLE_KEYS = ['description', 'level']
HELP_STRING = 'List Nonces for the specified Actor (or Alias)'
LEGACY_COMMMAND_STRING = None
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.taccapis.v2.actors.nonces_show module
class tapis_cli.commands.taccapis.v2.actors.nonces_show.ActorsNoncesShow(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.actors.formatters.ActorsFormatOne, tapis_cli.commands.taccapis.v2.actors.mixins.ActorIdentifier, tapis_cli.commands.taccapis.v2.actors.mixins.NonceIdentifier

EXTRA_VERBOSITY = 2.5
HELP_STRING = 'Show details for a Nonce attached to an Actor (or Alias)'
LEGACY_COMMMAND_STRING = None
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.actors.pems_grant module
class tapis_cli.commands.taccapis.v2.actors.pems_grant.ActorsPemsGrant(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.actors.formatters.ActorsFormatManyUnlimited, tapis_cli.commands.taccapis.v2.actors.mixins.ActorIdentifier, tapis_cli.clients.services.mixins.Username

EXTRA_VERBOSITY = 2
HELP_STRING = 'Grant Permissions on the specified Actor'
LEGACY_COMMMAND_STRING = 'abaco permissions'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.taccapis.v2.actors.pems_list module
class tapis_cli.commands.taccapis.v2.actors.pems_list.ActorsPemsList(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.actors.formatters.ActorsFormatManyUnlimited, tapis_cli.commands.taccapis.v2.actors.mixins.ActorIdentifier

Show Permissions on an Actor

EXTRA_VERBOSITY = 2
HELP_STRING = 'Show Permissions for the specified Actor'
LEGACY_COMMMAND_STRING = 'abaco permissions'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.taccapis.v2.actors.pems_revoke module
class tapis_cli.commands.taccapis.v2.actors.pems_revoke.ActorsPemsRevoke(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.actors.formatters.ActorsFormatManyUnlimited, tapis_cli.commands.taccapis.v2.actors.mixins.ActorIdentifier, tapis_cli.clients.services.mixins.Username

EXTRA_VERBOSITY = 2
HELP_STRING = 'Revoke Permissions on the specified Actor for a User'
LEGACY_COMMMAND_STRING = 'abaco permissions'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.taccapis.v2.actors.pems_show module
class tapis_cli.commands.taccapis.v2.actors.pems_show.ActorsPemsShow(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.actors.formatters.ActorsFormatOne, tapis_cli.commands.taccapis.v2.actors.mixins.ActorIdentifier, tapis_cli.clients.services.mixins.Username

EXTRA_VERBOSITY = 2
HELP_STRING = 'Show User-specific Permissions for an Actor'
LEGACY_COMMMAND_STRING = 'abaco permissions'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.actors.run module
class tapis_cli.commands.taccapis.v2.actors.run.ActorsRun(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.actors.submit.ActorsSubmit

ACCEPT_NONCE = True
HELP_STRING = 'Send a message to an Actor and await response'
LEGACY_COMMMAND_STRING = 'abaco run'
SYNCHRONOUS_EXECUTION = True
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.actors.show module
class tapis_cli.commands.taccapis.v2.actors.show.ActorsShow(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.actors.formatters.ActorsFormatOne, tapis_cli.commands.taccapis.v2.actors.mixins.ActorIdentifier

ACCEPT_NONCE = True
EXTRA_VERBOSITY = 2.5
HELP_STRING = 'Show details for an Actor'
LEGACY_COMMMAND_STRING = 'abaco list'
VERBOSITY = 2
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.actors.submit module
class tapis_cli.commands.taccapis.v2.actors.submit.ActorsSubmit(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.actors.formatters.ActorsFormatOne, tapis_cli.commands.taccapis.v2.actors.mixins.ActorIdentifier, tapis_cli.commands.taccapis.v2.actors.mixins.ActorFileOrMessage, tapis_cli.commands.taccapis.v2.actors.mixins.ActorEnvironmentVariables

ACCEPT_NONCE = True
EXTRA_VERBOSITY = 2.5
HELP_STRING = 'Send an asynchronous message to an Actor'
LEGACY_COMMMAND_STRING = 'abaco run'
SYNCHRONOUS_EXECUTION = False
VERBOSITY = 2
get_parser(prog_name)

Return an argparse.ArgumentParser.

prepare_message(parsed_args)
take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.actors.workers_create module
class tapis_cli.commands.taccapis.v2.actors.workers_create.ActorsWorkersCreate(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.actors.formatters.ActorsFormatOne, tapis_cli.commands.taccapis.v2.actors.mixins.ActorIdentifier

EXTRA_VERBOSITY = 2
HELP_STRING = 'Add Workers to the specified Actor'
LEGACY_COMMMAND_STRING = 'abaco workers'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.actors.workers_delete module
class tapis_cli.commands.taccapis.v2.actors.workers_delete.ActorsWorkersDelete(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.actors.formatters.ActorsFormatOne, tapis_cli.commands.taccapis.v2.actors.mixins.ActorIdentifier, tapis_cli.commands.taccapis.v2.actors.mixins.WorkerIdentifier

EXTRA_VERBOSITY = 2
HELP_STRING = 'Delete a Worker'
LEGACY_COMMMAND_STRING = None
VERBOSITY = 2
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.actors.workers_list module
class tapis_cli.commands.taccapis.v2.actors.workers_list.ActorsWorkersList(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.actors.formatters.ActorsFormatManyUnlimited, tapis_cli.commands.taccapis.v2.actors.mixins.ActorIdentifier, tapis_cli.commands.taccapis.v2.actors.mixins.GlobListFilter

ACCEPT_NONCE = True
EXTRA_VERBOSITY = 2.5
FILTERABLE_KEYS = ['status']
HELP_STRING = 'List Workers for an Actor'
LEGACY_COMMMAND_STRING = 'abaco workers'
VERBOSITY = 2
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.taccapis.v2.actors.workers_show module
class tapis_cli.commands.taccapis.v2.actors.workers_show.ActorsWorkersShow(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.actors.formatters.ActorsFormatOne, tapis_cli.commands.taccapis.v2.actors.mixins.ActorIdentifier, tapis_cli.commands.taccapis.v2.actors.mixins.WorkerIdentifier

ACCEPT_NONCE = True
EXTRA_VERBOSITY = 2.5
HELP_STRING = 'Show details for a Worker'
LEGACY_COMMMAND_STRING = None
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.apim package

Clients and tokens commands

Subpackages
tapis_cli.commands.taccapis.v2.apim.gitserver package
Submodules
tapis_cli.commands.taccapis.v2.apim.gitserver.init module
class tapis_cli.commands.taccapis.v2.apim.gitserver.init.GitServerOpts

Bases: tapis_cli.clients.services.mixins.ParserExtender

extend_parser()

Configures a Command to accept git server config

tapis_cli.commands.taccapis.v2.apim.models package
Submodules
tapis_cli.commands.taccapis.v2.apim.models.token module

Data model and functions for Tapis token

class tapis_cli.commands.taccapis.v2.apim.models.token.Token

Bases: tapis_cli.commands.taccapis.model.v2.tapismodel.TapisModel

Model of a Tapis application

SEARCH_ARGS = [('scope', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('token_type', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('expires_at', 'datetime', 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('expires_in', <class 'int'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('access_token', <class 'str'>, 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('refresh_token', <class 'str'>, 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False)]
id_display_name = 'TOKEN'
tapis_cli.commands.taccapis.v2.apim.registry package
Submodules
tapis_cli.commands.taccapis.v2.apim.registry.init module
class tapis_cli.commands.taccapis.v2.apim.registry.init.RegistryOpts

Bases: tapis_cli.clients.services.mixins.ParserExtender

extend_parser()

Configures a Command to accept container registry config

Submodules
tapis_cli.commands.taccapis.v2.apim.auth_init module
class tapis_cli.commands.taccapis.v2.apim.auth_init.AuthInit(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.apim.formatters.CreateTokenFormatOne, tapis_cli.commands.taccapis.v2.apim.registry.init.RegistryOpts, tapis_cli.commands.taccapis.v2.apim.gitserver.init.GitServerOpts

Configure this host to use Tapis

EXTRA_VERBOSITY = 2.5
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.apim.auth_show module
class tapis_cli.commands.taccapis.v2.apim.auth_show.AuthShow(app, app_args, cmd_name=None)

Bases: tapis_cli.clients.services.mixins.JsonVerbose, cliff.show.ShowOne

Show current Tapis authentication configuration

EXTRA_VERBOSITY = 2.5
VERBOSITY = 0
take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.apim.formatters module

Formatters customized for token, client, and client subscription responses

class tapis_cli.commands.taccapis.v2.apim.formatters.TokenFormatOne(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.apim.formatters.TokensBase, tapis_cli.commands.taccapis.formatters.TaccApisFormatOne

class tapis_cli.commands.taccapis.v2.apim.formatters.CreateTokenFormatOne(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.apim.formatters.TokensBase, tapis_cli.commands.taccapis.formatters.TaccApisFormatOneNoBearer

tapis_cli.commands.taccapis.v2.apim.token_create module
class tapis_cli.commands.taccapis.v2.apim.token_create.TokenCreate(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.apim.formatters.CreateTokenFormatOne

Create a new Tapis access/refresh token pair

EXTRA_VERBOSITY = 2.5
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.apim.token_refresh module
class tapis_cli.commands.taccapis.v2.apim.token_refresh.TokenRefresh(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.apim.formatters.TokenFormatOne

Refresh the current Tapis access token

EXTRA_VERBOSITY = 2.5
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.apps package

Apps service commands

Subpackages
tapis_cli.commands.taccapis.v2.apps.deploy package
Submodules
tapis_cli.commands.taccapis.v2.apps.deploy.deploy module
class tapis_cli.commands.taccapis.v2.apps.deploy.deploy.AppsDeploy(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.apps.formatters.AppsFormatManyUnlimited, tapis_cli.clients.services.mixins.DockerPy, tapis_cli.clients.services.mixins.WorkingDirectoryArg, tapis_cli.commands.taccapis.v2.apps.deploy.deploy.UploadAppTemplate

HELP_STRING = 'Deploy an App from a project directory'
LEGACY_COMMMAND_STRING = 'apps-deploy'
backup = False
build = True
config = {}
create = True
display = True
document = None
get_parser(prog_name)

Return an argparse.ArgumentParser.

grant = True
messages = []
passed_vals = {}
pull = True
push = True
results = []
take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

upload = True
tapis_cli.commands.taccapis.v2.apps.helpers package
Submodules
tapis_cli.commands.taccapis.v2.apps.helpers.pems module
tapis_cli.commands.taccapis.v2.apps.helpers.pems.revoke(app_id, username, permissive=False, agave=None, **kwargs)
tapis_cli.commands.taccapis.v2.apps.helpers.pems.drop(app_id, permissive=False, agave=None, **kwargs)
tapis_cli.commands.taccapis.v2.apps.init package
Submodules
tapis_cli.commands.taccapis.v2.apps.init.init module
class tapis_cli.commands.taccapis.v2.apps.init.init.AppsInit(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.apps.formatters.AppsFormatManyUnlimited

CATALOG_FILENAME = 'catalog.json'
EXTRA_VERBOSITY = 2.5
HELP_STRING = 'Initialize a new Tapis App project from a template'
LEGACY_COMMMAND_STRING = 'apps-init'
VERBOSITY = 2
config = None
document = None
exceptions = []
get_parser(prog_name)

Return an argparse.ArgumentParser.

git_init = True
git_remote = False
headers = []
messages = []
passed_vals = {}
results = []
take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.taccapis.v2.apps.init.templates module

Provides key, name, description, and location for cookiecutter apps templates

tapis_cli.commands.taccapis.v2.apps.models package
Submodules
tapis_cli.commands.taccapis.v2.apps.models.app module

Data model and functions for Tapis apps

class tapis_cli.commands.taccapis.v2.apps.models.app.App

Bases: tapis_cli.commands.taccapis.model.v2.tapismodel.TapisModel

Model of a Tapis application

SEARCH_ARGS = [('id', <class 'str'>, 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('name', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('version', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('revision', <class 'int'>, 1, ['eq', 'neq', 'gt', 'gte', 'lt', 'lte'], 'eq', None, None, True), ('label', <class 'str'>, 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('lastModified', 'datetime', 1.5, ['on', 'after', 'before', 'eq', 'neq', 'gt', 'gte', 'lt', 'lte'], 'after', None, None, False), ('shortDescription', <class 'str'>, 1, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('longDescription', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('owner', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('isPublic', <class 'bool'>, 1, ['eq', 'neq'], 'eq', None, None, False), ('executionType', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', ['HPC', 'CLI'], None, True), ('executionSystem', <class 'str'>, 1, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('deploymentSystem', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('available', <class 'bool'>, 2, ['eq', 'neq'], 'eq', None, None, True), ('parallelism', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', ['SERIAL', 'PARALLEL'], None, True), ('defaultProcessorsPerNode', <class 'int'>, 2, ['eq', 'neq', 'gt', 'gte', 'lt', 'lte'], 'eq', None, None, True), ('defaultMemoryPerNode', <class 'int'>, 2, ['eq', 'neq', 'gt', 'gte', 'lt', 'lte'], 'eq', None, None, True), ('defaultNodeCount', <class 'int'>, 2, ['eq', 'neq', 'gt', 'gte', 'lt', 'lte'], 'eq', None, None, True), ('defaultMaxRunTime', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('defaultQueue', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('tags', <class 'list'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('ontology', <class 'list'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('helpURI', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('deploymentPath', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('templatePath', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('testPath', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('checkpointable', <class 'bool'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('modules', <class 'list'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('inputs', <class 'list'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('parameters', <class 'list'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('outputs', <class 'list'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('uuid', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('icon', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('_links', <class 'list'>, 1, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, 'links', False)]
service_id_type = 'App'
tapis_cli.commands.taccapis.v2.apps.models.app_history module
class tapis_cli.commands.taccapis.v2.apps.models.app_history.AppHistory

Bases: tapis_cli.commands.taccapis.v2.apps.models.app.App

Model of a Tapis system history record

SEARCH_ARGS = [('_links', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('id', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('status', <class 'str'>, 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('created', 'datetime', 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('createdBy', <class 'str'>, 1.5, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('description', <class 'str'>, 1, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False)]
Submodules
tapis_cli.commands.taccapis.v2.apps.clone module
class tapis_cli.commands.taccapis.v2.apps.clone.AppsClone(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.apps.formatters.AppsFormatOne, tapis_cli.commands.taccapis.v2.apps.mixins.AppIdentifier

EXTRA_VERBOSITY = 2
HELP_STRING = 'Clone an App'
LEGACY_COMMMAND_STRING = 'apps-clone'
VERBOSITY = 1
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.apps.create module
class tapis_cli.commands.taccapis.v2.apps.create.AppsCreate(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.apps.formatters.AppsFormatOne, tapis_cli.clients.services.mixins.WorkingDirectoryArg, tapis_cli.clients.services.mixins.UploadJSONTemplate

EXTRA_VERBOSITY = 2.5
HELP_STRING = 'Create a new App'
LEGACY_COMMMAND_STRING = 'apps-addupdate'
VERBOSITY = 2
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.apps.disable module
class tapis_cli.commands.taccapis.v2.apps.disable.AppsDisable(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.apps.formatters.AppsFormatOne, tapis_cli.commands.taccapis.v2.apps.mixins.AppIdentifier

EXTRA_VERBOSITY = 2
HELP_STRING = 'Disable usage of an App'
LEGACY_COMMMAND_STRING = 'apps-disable'
VERBOSITY = 1
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.apps.enable module
class tapis_cli.commands.taccapis.v2.apps.enable.AppsEnable(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.apps.formatters.AppsFormatOne, tapis_cli.commands.taccapis.v2.apps.mixins.AppIdentifier

EXTRA_VERBOSITY = 2
HELP_STRING = 'Restore usage for an App if disabled'
LEGACY_COMMMAND_STRING = 'apps-enable'
VERBOSITY = 1
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.apps.formatters module

Formatters customized for App records and listings

class tapis_cli.commands.taccapis.v2.apps.formatters.AppsFormatOne(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.apps.formatters.AppsBase, tapis_cli.commands.taccapis.formatters.TaccApisFormatOne

class tapis_cli.commands.taccapis.v2.apps.formatters.AppsFormatMany(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.apps.formatters.AppsBase, tapis_cli.commands.taccapis.formatters.TaccApisFormatMany

class tapis_cli.commands.taccapis.v2.apps.formatters.AppsFormatManyUnlimited(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.apps.formatters.AppsBase, tapis_cli.commands.taccapis.formatters.TaccApisFormatManyUnlimited

tapis_cli.commands.taccapis.v2.apps.history module
class tapis_cli.commands.taccapis.v2.apps.history.AppsHistory(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.apps.formatters.AppsFormatMany, tapis_cli.commands.taccapis.v2.apps.mixins.AppIdentifier

EXTRA_VERBOSITY = 2
HELP_STRING = 'Show history for an App'
LEGACY_COMMMAND_STRING = 'apps-history'
VERBOSITY = 1
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.taccapis.v2.apps.list module
class tapis_cli.commands.taccapis.v2.apps.list.AppsList(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.apps.formatters.AppsFormatMany

EXTRA_VERBOSITY = 1
HELP_STRING = 'List the Apps catalog'
LEGACY_COMMMAND_STRING = 'apps-list'
VERBOSITY = 0
take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.taccapis.v2.apps.mixins module
class tapis_cli.commands.taccapis.v2.apps.mixins.AppIdentifier

Bases: tapis_cli.clients.services.mixins.ServiceIdentifier

dest = 'app_id'
service_id_type = 'App'
validate_identifier(identifier, permissive=False)
tapis_cli.commands.taccapis.v2.apps.pems_drop module
class tapis_cli.commands.taccapis.v2.apps.pems_drop.AppsPemsDrop(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.apps.formatters.AppsFormatMany, tapis_cli.commands.taccapis.v2.apps.mixins.AppIdentifier

EXTRA_VERBOSITY = 2
HELP_STRING = 'Drop all granted Permissions from an App'
LEGACY_COMMMAND_STRING = 'apps-pems-delete'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.taccapis.v2.apps.pems_grant module
class tapis_cli.commands.taccapis.v2.apps.pems_grant.AppsPemsGrant(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.apps.formatters.AppsFormatMany, tapis_cli.commands.taccapis.v2.apps.mixins.AppIdentifier, tapis_cli.clients.services.mixins.Username

EXTRA_VERBOSITY = 2
HELP_STRING = 'Grant Permissions on an App to a User'
LEGACY_COMMMAND_STRING = 'apps-pems-update'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.taccapis.v2.apps.pems_list module
class tapis_cli.commands.taccapis.v2.apps.pems_list.AppsPemsList(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.apps.formatters.AppsFormatMany, tapis_cli.commands.taccapis.v2.apps.mixins.AppIdentifier

EXTRA_VERBOSITY = 2
HELP_STRING = 'List Permissions for an specific App'
LEGACY_COMMMAND_STRING = 'apps-pems-list'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.taccapis.v2.apps.pems_revoke module
class tapis_cli.commands.taccapis.v2.apps.pems_revoke.AppsPemsRevoke(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.apps.formatters.AppsFormatMany, tapis_cli.commands.taccapis.v2.apps.mixins.AppIdentifier, tapis_cli.clients.services.mixins.Username

EXTRA_VERBOSITY = 2
HELP_STRING = 'Revoke Permissions on an App for a User'
LEGACY_COMMMAND_STRING = 'apps-pems-update'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.taccapis.v2.apps.pems_show module
class tapis_cli.commands.taccapis.v2.apps.pems_show.AppsPemsShow(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.apps.formatters.AppsFormatOne, tapis_cli.commands.taccapis.v2.apps.mixins.AppIdentifier, tapis_cli.clients.services.mixins.Username

EXTRA_VERBOSITY = 2
HELP_STRING = 'Show Permissions on an App for specific User'
LEGACY_COMMMAND_STRING = 'apps-pems-list'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.apps.publish module
class tapis_cli.commands.taccapis.v2.apps.publish.AppsPublish(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.apps.formatters.AppsFormatOne, tapis_cli.commands.taccapis.v2.apps.mixins.AppIdentifier

EXTRA_VERBOSITY = 2
HELP_STRING = 'Publish an App for use by others'
LEGACY_COMMMAND_STRING = 'apps-publish'
VERBOSITY = 1
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.apps.search module
class tapis_cli.commands.taccapis.v2.apps.search.AppsSearch(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.apps.formatters.AppsFormatMany

EXTRA_VERBOSITY = 1
HELP_STRING = 'Search the Apps catalog'
LEGACY_COMMMAND_STRING = 'apps-list'
VERBOSITY = 1
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.taccapis.v2.apps.show module
class tapis_cli.commands.taccapis.v2.apps.show.AppsShow(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.apps.formatters.AppsFormatOne, tapis_cli.commands.taccapis.v2.apps.mixins.AppIdentifier

EXTRA_VERBOSITY = 2.5
HELP_STRING = 'Show details for an App'
LEGACY_COMMMAND_STRING = 'apps-list'
VERBOSITY = 2
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.apps.unpublish module
class tapis_cli.commands.taccapis.v2.apps.unpublish.AppsUnpublish(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.apps.disable.AppsDisable

Disable usage of a public App (it is not possible to actually unpublish)

tapis_cli.commands.taccapis.v2.apps.update module
class tapis_cli.commands.taccapis.v2.apps.update.AppsUpdate(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.apps.create.AppsCreate, tapis_cli.commands.taccapis.v2.apps.mixins.AppIdentifier

HELP_STRING = 'Update an existing App'
LEGACY_COMMMAND_STRING = 'apps-addupdate'
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.files package

Files service commands

Subpackages
tapis_cli.commands.taccapis.v2.files.helpers package
Submodules
tapis_cli.commands.taccapis.v2.files.helpers.constants module

Globals pertaining to the Tapis files API

tapis_cli.commands.taccapis.v2.files.helpers.error module

Exceptions and error handlers

exception tapis_cli.commands.taccapis.v2.files.helpers.error.AgaveError

Bases: Exception

exception tapis_cli.commands.taccapis.v2.files.helpers.error.HTTPError(*args, **kwargs)

Bases: requests.exceptions.RequestException

An HTTP error occurred.

exception tapis_cli.commands.taccapis.v2.files.helpers.error.HTTPNotFoundError(*args, **kwargs)

Bases: requests.exceptions.HTTPError

exception tapis_cli.commands.taccapis.v2.files.helpers.error.TapisOperationFailed

Bases: agavepy.errors.AgaveError

exception tapis_cli.commands.taccapis.v2.files.helpers.error.ImportNotCompleteError(*args, **kwargs)

Bases: tapis_cli.commands.taccapis.v2.files.helpers.error.HTTPNotFoundError

exception tapis_cli.commands.taccapis.v2.files.helpers.error.FileExcludedError

Bases: OSError

tapis_cli.commands.taccapis.v2.files.helpers.error.read_tapis_http_error(http_error_object)

Extract useful details from an exception raised by interactting with a Tapis API

tapis_cli.commands.taccapis.v2.files.helpers.error.handle_http_error(httperror)
tapis_cli.commands.taccapis.v2.files.helpers.manage module
tapis_cli.commands.taccapis.v2.files.helpers.manage.copy(file_path, system_id='data-tacc-sandbox', destination=None, permissive=False, agave=None)
tapis_cli.commands.taccapis.v2.files.helpers.manage.delete(file_path, system_id='data-tacc-sandbox', permissive=False, agave=None)
tapis_cli.commands.taccapis.v2.files.helpers.manage.makedirs(file_path, system_id='data-tacc-sandbox', destination='/', exist_ok=True, permissive=False, agave=None)
tapis_cli.commands.taccapis.v2.files.helpers.manage.move(file_path, system_id='data-tacc-sandbox', destination=None, permissive=False, agave=None)
tapis_cli.commands.taccapis.v2.files.helpers.pems_list module
tapis_cli.commands.taccapis.v2.files.helpers.pems_list.pems_list(file_path, system_id='data-tacc-sandbox', limit=200, offset=0, root_dir='/', permissive=False, agave=None, **kwargs)
tapis_cli.commands.taccapis.v2.files.helpers.stat module

Web service implementations of files-list operations

tapis_cli.commands.taccapis.v2.files.helpers.stat.stat(file_path, system_id='data-tacc-sandbox', root_dir='/', permissive=False, agave=None, **kwargs)

Retrieve attributes for a given path on a Tapis storageSystem

Parameters:
  • file_path (str) – The path from which to fetch attributes
  • system_id (str, optional) – The Tapis storageSystem for file_path
  • root_dir (str, optional) – Base path on the storageSystem if file_path is relative
  • permissive (bool, optional) – Whether to raise an Exception on failure
  • agave (Agave, optional) – An active Tapis client
Returns:

A dictionary containing Tapis files API attributes

Return type:

dict

Raises:
  • HTTPError – A transport or web services error was encountered
  • TapisOperationFailed – Some other error prevented the operation
tapis_cli.commands.taccapis.v2.files.helpers.stat.rsrc_type(file_path, system_id='data-tacc-sandbox', root_dir='/', permissive=False, agave=None, **kwargs)

Retrieve the type for a given path on a Tapis storageSystem

Parameters:
  • file_path (str) – The path from which to fetch attributes
  • system_id (str, optional) – The Tapis storageSystem for file_path
  • root_dir (str, optional) – Base path on the storageSystem if file_path is relative
  • permissive (bool, optional) – Whether to raise an Exception on failure
  • agave (Agave, optional) – An active Tapis client
Returns:

Either file or dir

Return type:

string

Raises:
  • HTTPError – A transport or web services error was encountered
  • TapisOperationFailed – Some other error prevented the operation
tapis_cli.commands.taccapis.v2.files.helpers.stat.exists(file_path, system_id='data-tacc-sandbox', root_dir='/', permissive=False, agave=None, **kwargs)

Determine if a path exists on a Tapis storageSystem

Parameters:
  • file_path (str) – The path from which to fetch attributes
  • system_id (str, optional) – The Tapis storageSystem for file_path
  • root_dir (str, optional) – Base path on the storageSystem if file_path is relative
  • permissive (bool, optional) – Whether to raise an Exception on failure
  • agave (Agave, optional) – An active Tapis client
Returns:

True if the path exists and False if not

Return type:

bool

Raises:
  • HTTPError – A transport or web services error was encountered
  • TapisOperationFailed – Some other error prevented the operation
tapis_cli.commands.taccapis.v2.files.helpers.stat.isfile(file_path, system_id='data-tacc-sandbox', root_dir='/', permissive=False, agave=None, **kwargs)

Determine if a path exists and is a file on a Tapis storageSystem

Parameters:
  • file_path (str) – The path from which to fetch attributes
  • system_id (str, optional) – The Tapis storageSystem for file_path
  • root_dir (str, optional) – Base path on the storageSystem if file_path is relative
  • permissive (bool, optional) – Whether to raise an Exception on failure
  • agave (Agave, optional) – An active Tapis client
Returns:

True if the path is a file and False if not

Return type:

bool

Raises:
  • HTTPError – A transport or web services error was encountered
  • TapisOperationFailed – Some other error prevented the operation
tapis_cli.commands.taccapis.v2.files.helpers.stat.isdir(file_path, system_id='data-tacc-sandbox', root_dir='/', permissive=False, agave=None, **kwargs)

Determine if a path exists and is a directory on a Tapis storageSystem

Parameters:
  • file_path (str) – The path from which to fetch attributes
  • system_id (str, optional) – The Tapis storageSystem for file_path
  • root_dir (str, optional) – Base path on the storageSystem if file_path is relative
  • permissive (bool, optional) – Whether to raise an Exception on failure
  • agave (Agave, optional) – An active Tapis client
Returns:

True if the path is a directory and False if not

Return type:

bool

Raises:
  • HTTPError – A transport or web services error was encountered
  • TapisOperationFailed – Some other error prevented the operation
tapis_cli.commands.taccapis.v2.files.helpers.sync module

Web service implementations of files sync operations.

tapis_cli.commands.taccapis.v2.files.helpers.sync.download(source, system_id, destination='.', includes=None, excludes=None, force=False, sync=False, atomic=False, progress=False, agave=None)
tapis_cli.commands.taccapis.v2.files.helpers.upload module
tapis_cli.commands.taccapis.v2.files.helpers.upload.upload(local_file_path, system_id, destination='/', excludes=None, includes=None, force=False, sync=False, atomic=False, progress=True, agave=None)
tapis_cli.commands.taccapis.v2.files.helpers.walk module

Web service implementations of the walk operation.

Provides both walk and listdir functions via recursive files-list web service operations.

tapis_cli.commands.taccapis.v2.files.helpers.walk.walk(directory_path, system_id='data-tacc-sandbox', root_dir='/', directories=False, dotfiles=False, sort=False, page_size=100, agave=None, **kwargs)

Recursively lists contents of a Tapis files directory.

Parameters:
  • directory_path (str) – Full or relative path of directory to walk
  • system_id (str, optional) – Tapis storageSystem for directory_path
  • root_dir (str, optional) – Base path if directory_path is relative
  • directories (bool, optional) – Whether result should include directories
  • dotfiles (bool, optional) – Whether result should include dotfiles
  • page_size (int, optional) – Override default Tapis files-list page size
  • agave (Agave, optional) – Tapis (Agave) API client
Returns:

List of Tapis-canonical absolute paths as AnnotatedFile objects

Return type:

list

Raises:

TapisOperationFailed – An exception or error happened

tapis_cli.commands.taccapis.v2.files.helpers.walk.listdir(directory_path, system_id='data-tacc-sandbox', root_dir='/', directories=True, dotfiles=False, page_size=100, sort=True, agave=None, **kwargs)

Lists immediate contents of a Tapis files directory.

Parameters:
  • directory_path (str) – Full or relative path of directory to walk
  • system_id (str, optional) – Tapis storageSystem for directory_path
  • root_dir (str, optional) – Base path if directory_path is relative
  • directories (bool, optional) – Whether result should include directories
  • dotfiles (bool, optional) – Whether result should include dotfiles
  • agave (Agave, optional) – Tapis (Agave) API client
Returns:

List of paths relative to directory_path

Return type:

list

Raises:

TapisOperationFailed – Some error prevented the action from completing

tapis_cli.commands.taccapis.v2.files.models package
Submodules
tapis_cli.commands.taccapis.v2.files.models.file module

Data model and functions for Tapis files

class tapis_cli.commands.taccapis.v2.files.models.file.File

Bases: tapis_cli.commands.taccapis.model.v2.tapismodel.TapisModel

Model of a Tapis file

SEARCH_ARGS = [('_links', <class 'list'>, 1, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, 'links', False), ('name', <class 'str'>, 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('path', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('lastModified', 'datetime', 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('length', <class 'int'>, 0, ['eq', 'neq', 'gt', 'gte', 'lt', 'lte'], 'eq', None, None, False), ('permissions', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('mimeType', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('type', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('system', <class 'str'>, 2.5, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False)]
get_headers(verbosity_level=None, formatter='table')
payload = {}
service_id_type = 'File'
tapis_cli.commands.taccapis.v2.files.models.file_history module
class tapis_cli.commands.taccapis.v2.files.models.file_history.FileHistory

Bases: tapis_cli.commands.taccapis.v2.files.models.file.File

SEARCH_ARGS = [('status', <class 'str'>, 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('created', 'datetime', 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('createdBy', <class 'str'>, 1.5, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('description', <class 'str'>, 1, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False)]
tapis_cli.commands.taccapis.v2.files.models.file_pem module
class tapis_cli.commands.taccapis.v2.files.models.file_pem.FilePermission

Bases: tapis_cli.commands.taccapis.v2.files.models.file.File

SEARCH_ARGS = [('_links', <class 'dict'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('username', <class 'str'>, 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('internalUsername', 'datetime', 3, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('recursive', <class 'bool'>, 1.5, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('permission', <class 'dict'>, 1.5, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False)]
tapis_cli.commands.taccapis.v2.files.models.file_staging module
class tapis_cli.commands.taccapis.v2.files.models.file_staging.FileStaging

Bases: tapis_cli.commands.taccapis.v2.files.models.file.File

SEARCH_ARGS = [('_links', <class 'list'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, 'links', False), ('name', <class 'str'>, 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('uuid', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('owner', <class 'str'>, 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('path', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('lastModified', 'datetime', 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('source', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('status', <class 'str'>, 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('nativeFormat', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('systemId', <class 'str'>, 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False)]
Submodules
tapis_cli.commands.taccapis.v2.files.copy module
class tapis_cli.commands.taccapis.v2.files.copy.FilesCopy(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.files.formatters.FilesFormatOne, tapis_cli.clients.services.mixins.AgaveURI, tapis_cli.commands.taccapis.v2.files.mixins.FileOptions

EXTRA_VERBOSITY = 2
HELP_STRING = 'Copy a Files path between locations within Tapis'
LEGACY_COMMMAND_STRING = 'files-copy'
VERBOSITY = 2
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.files.delete module
class tapis_cli.commands.taccapis.v2.files.delete.FilesDelete(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.files.formatters.FilesFormatOne, tapis_cli.clients.services.mixins.AgaveURI, tapis_cli.commands.taccapis.v2.files.mixins.FileOptions, tapis_cli.commands.taccapis.v2.files.mixins.ReportProgress

EXTRA_VERBOSITY = 2
HELP_STRING = 'Delete a file or directory from Tapis'
LEGACY_COMMMAND_STRING = 'files-delete'
VERBOSITY = 2
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.files.download module
class tapis_cli.commands.taccapis.v2.files.download.FilesDownload(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.files.formatters.FilesFormatOne, tapis_cli.clients.services.mixins.AgaveURI, tapis_cli.clients.services.mixins.DownloadDirectoryArg, tapis_cli.commands.taccapis.v2.files.mixins.IncludeFiles, tapis_cli.commands.taccapis.v2.files.mixins.ExcludeFiles, tapis_cli.commands.taccapis.v2.files.mixins.OverwritePolicy, tapis_cli.commands.taccapis.v2.files.mixins.ReportProgress

HELP_STRING = 'Download from Tapis to the local host'
LEGACY_COMMMAND_STRING = 'files-get'
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.files.formatters module

Formatters customized for system records and listings

class tapis_cli.commands.taccapis.v2.files.formatters.FilesFormatOne(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.files.formatters.FilesBase, tapis_cli.commands.taccapis.formatters.TaccApisFormatOne

class tapis_cli.commands.taccapis.v2.files.formatters.FilesFormatMany(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.files.formatters.FilesBase, tapis_cli.commands.taccapis.formatters.TaccApisFormatMany

class tapis_cli.commands.taccapis.v2.files.formatters.FilesHistoryFormatMany(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.files.formatters.FilesBase, tapis_cli.commands.taccapis.formatters.TaccApisFormatMany

class tapis_cli.commands.taccapis.v2.files.formatters.FilesPemsFormatMany(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.files.formatters.FilesBase, tapis_cli.commands.taccapis.formatters.TaccApisFormatMany

tapis_cli.commands.taccapis.v2.files.history module
class tapis_cli.commands.taccapis.v2.files.history.FilesHistory(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.files.formatters.FilesFormatMany, tapis_cli.clients.services.mixins.AgaveURI

EXTRA_VERBOSITY = 2
HELP_STRING = 'List history for a Files'
LEGACY_COMMMAND_STRING = 'files-history'
VERBOSITY = 1
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.taccapis.v2.files.list module
class tapis_cli.commands.taccapis.v2.files.list.FilesList(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.files.formatters.FilesFormatMany, tapis_cli.clients.services.mixins.AgaveURI, tapis_cli.commands.taccapis.v2.files.mixins.FilesOptions

EXTRA_VERBOSITY = 2
HELP_STRING = 'List contents of a Files path'
LEGACY_COMMMAND_STRING = 'files-list'
VERBOSITY = 1
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.taccapis.v2.files.mixins module

Files-specfic mixins

class tapis_cli.commands.taccapis.v2.files.mixins.ExcludeFiles

Bases: tapis_cli.clients.services.mixins.ParserExtender

Configures a Command to accept a list of files to exclude

Sets ‘parsed_args.exclude_files’

extend_parser(parser)
class tapis_cli.commands.taccapis.v2.files.mixins.FileOptions

Bases: tapis_cli.clients.services.mixins.ParserExtender

Configures a Command to accept rendering options for a single file

extend_parser(parser)
class tapis_cli.commands.taccapis.v2.files.mixins.FilesOptions

Bases: tapis_cli.commands.taccapis.v2.files.mixins.FileOptions

Configures a Command to accept rendering options for a list of files

Extends parser to set ‘parsed_args.ls_sort_reverse’, ‘parsed_args.ls_sort_size’, and ‘parsed_args.ls_sort_time’. Also provides a ‘sort_table’ function to sort a table by designated header.

extend_parser(parser)
classmethod sort_table(rows, headers, header='name', reverse=False)
class tapis_cli.commands.taccapis.v2.files.mixins.FilesCallbackURI

Bases: tapis_cli.clients.services.mixins.ParserExtender

Configures a Command to accept a URI to call when a files action is complete

Sets ‘parsed_args.files_callback_uri’

extend_parser(parser)
class tapis_cli.commands.taccapis.v2.files.mixins.IncludeFiles

Bases: tapis_cli.clients.services.mixins.ParserExtender

Configures a Command to accept a list of files to include

Sets ‘parsed_args.include_files’

extend_parser(parser)
class tapis_cli.commands.taccapis.v2.files.mixins.OverwritePolicy

Bases: tapis_cli.clients.services.mixins.ParserExtender

Configures a Command to allow specification of file overwrite policy

Sets ‘parsed_args.overwrite’ or ‘parsed_args.sync’

extend_parser(parser)
class tapis_cli.commands.taccapis.v2.files.mixins.ReportProgress

Bases: tapis_cli.clients.services.mixins.ParserExtender

Configures a Command to report progress to STDERR

Sets ‘parsed_args.progress’

extend_parser(parser)
tapis_cli.commands.taccapis.v2.files.mkdir module
class tapis_cli.commands.taccapis.v2.files.mkdir.FilesMakeDir(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.files.formatters.FilesFormatOne, tapis_cli.clients.services.mixins.AgaveURI, tapis_cli.commands.taccapis.v2.files.mixins.FileOptions

EXTRA_VERBOSITY = 2
HELP_STRING = 'Create a directory on a System'
LEGACY_COMMMAND_STRING = 'files-mkdir'
VERBOSITY = 2
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.files.move module
class tapis_cli.commands.taccapis.v2.files.move.FilesMove(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.files.formatters.FilesFormatOne, tapis_cli.clients.services.mixins.AgaveURI, tapis_cli.commands.taccapis.v2.files.mixins.FileOptions

EXTRA_VERBOSITY = 2
HELP_STRING = 'Move a Files path from one location to another on a System'
LEGACY_COMMMAND_STRING = 'files-move'
VERBOSITY = 2
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.files.pems_drop module
class tapis_cli.commands.taccapis.v2.files.pems_drop.FilesPemsDrop(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.files.formatters.FilesFormatMany, tapis_cli.clients.services.mixins.AgaveURI

EXTRA_VERBOSITY = 2
HELP_STRING = 'Drop all granted permissions from a Files path'
LEGACY_COMMMAND_STRING = 'files-pems-update'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.taccapis.v2.files.pems_grant module
class tapis_cli.commands.taccapis.v2.files.pems_grant.FilesPemsGrant(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.files.formatters.FilesFormatMany, tapis_cli.clients.services.mixins.AgaveURI, tapis_cli.clients.services.mixins.Username

EXTRA_VERBOSITY = 2
HELP_STRING = 'Grant permissions on a Files path to a User'
LEGACY_COMMMAND_STRING = 'files-pems-update'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.taccapis.v2.files.pems_list module
class tapis_cli.commands.taccapis.v2.files.pems_list.FilesPemsList(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.files.formatters.FilesPemsFormatMany, tapis_cli.clients.services.mixins.AgaveURI, tapis_cli.commands.taccapis.v2.files.mixins.FileOptions

EXTRA_VERBOSITY = 2
HELP_STRING = 'List permissions for an specific Files path'
LEGACY_COMMMAND_STRING = 'files-pems-list'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.taccapis.v2.files.pems_revoke module
class tapis_cli.commands.taccapis.v2.files.pems_revoke.FilesPemsRevoke(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.files.formatters.FilesFormatMany, tapis_cli.clients.services.mixins.AgaveURI, tapis_cli.clients.services.mixins.Username

EXTRA_VERBOSITY = 2
HELP_STRING = 'Revoke permissions on a Files path for a User'
LEGACY_COMMMAND_STRING = 'files-pems-update'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.taccapis.v2.files.pems_show module
class tapis_cli.commands.taccapis.v2.files.pems_show.FilesPemsShow(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.files.formatters.FilesFormatOne, tapis_cli.clients.services.mixins.AgaveURI, tapis_cli.clients.services.mixins.Username

EXTRA_VERBOSITY = 2
HELP_STRING = 'Show permissions on a Files path for a User'
LEGACY_COMMMAND_STRING = 'files-pems-list'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.files.show module
class tapis_cli.commands.taccapis.v2.files.show.FilesShow(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.files.formatters.FilesFormatOne, tapis_cli.clients.services.mixins.AgaveURI, tapis_cli.commands.taccapis.v2.files.mixins.FileOptions

EXTRA_VERBOSITY = 2
HELP_STRING = 'Show details of a Files path'
LEGACY_COMMMAND_STRING = 'files-list'
VERBOSITY = 2
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.files.upload module
class tapis_cli.commands.taccapis.v2.files.upload.FilesUpload(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.files.formatters.FilesFormatOne, tapis_cli.clients.services.mixins.AgaveURI, tapis_cli.clients.services.mixins.LocalFilePath, tapis_cli.commands.taccapis.v2.files.mixins.ExcludeFiles, tapis_cli.commands.taccapis.v2.files.mixins.IncludeFiles, tapis_cli.commands.taccapis.v2.files.mixins.FilesCallbackURI, tapis_cli.commands.taccapis.v2.files.mixins.OverwritePolicy, tapis_cli.commands.taccapis.v2.files.mixins.ReportProgress

HELP_STRING = 'Upload from local host to Tapis'
LEGACY_COMMMAND_STRING = 'files-upload'
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.jobs package

Jobs service commands

Subpackages
tapis_cli.commands.taccapis.v2.jobs.helpers package
Submodules
tapis_cli.commands.taccapis.v2.jobs.helpers.constants module

Globals pertaining to the Tapis files API

tapis_cli.commands.taccapis.v2.jobs.helpers.error module

Exceptions and error handlers

exception tapis_cli.commands.taccapis.v2.jobs.helpers.error.AgaveError

Bases: Exception

exception tapis_cli.commands.taccapis.v2.jobs.helpers.error.HTTPError(*args, **kwargs)

Bases: requests.exceptions.RequestException

An HTTP error occurred.

exception tapis_cli.commands.taccapis.v2.jobs.helpers.error.HTTPNotFoundError(*args, **kwargs)

Bases: requests.exceptions.HTTPError

exception tapis_cli.commands.taccapis.v2.jobs.helpers.error.TapisOperationFailed

Bases: agavepy.errors.AgaveError

exception tapis_cli.commands.taccapis.v2.jobs.helpers.error.ImportNotCompleteError(*args, **kwargs)

Bases: tapis_cli.commands.taccapis.v2.jobs.helpers.error.HTTPNotFoundError

exception tapis_cli.commands.taccapis.v2.jobs.helpers.error.OutputFileExistsError

Bases: OSError

tapis_cli.commands.taccapis.v2.jobs.helpers.error.read_tapis_http_error(http_error_object)

Extract useful details from an exception raised by interactting with a Tapis API

tapis_cli.commands.taccapis.v2.jobs.helpers.error.handle_http_error(httperror)
tapis_cli.commands.taccapis.v2.jobs.helpers.stat module

Web service implementations of jobs-output-list operations

tapis_cli.commands.taccapis.v2.jobs.helpers.stat.stat(file_path, job_uuid, root_dir='/', permissive=False, agave=None, **kwargs)

Retrieve attributes for a given path on a Tapis storageSystem

Parameters:
  • file_path (str) – The path from which to fetch attributes
  • job_uuid (str) – The Tapis job for file_path
  • root_dir (str, optional) – Base path in output directory if file_path is relative
  • permissive (bool, optional) – Whether to raise an Exception on failure
  • agave (Agave, optional) – An active Tapis client
Returns:

A dictionary containing Tapis attributes for a jobs output

Return type:

dict

Raises:
  • HTTPError – A transport or web services error was encountered
  • TapisOperationFailed – Some other error prevented the operation
tapis_cli.commands.taccapis.v2.jobs.helpers.stat.rsrc_type(file_path, job_uuid, root_dir='/', permissive=False, agave=None, **kwargs)

Retrieve the type for a given path in a Tapis job output

Parameters:
  • file_path (str) – The path from which to fetch attributes
  • job_uuid (str) – The Tapis job UUID for file_path
  • root_dir (str, optional) – Base path in output directory if file_path is relative
  • permissive (bool, optional) – Whether to raise an Exception on failure
  • agave (Agave, optional) – An active Tapis client
Returns:

Either file or dir

Return type:

string

Raises:
  • HTTPError – A transport or web services error was encountered
  • TapisOperationFailed – Some other error prevented the operation
tapis_cli.commands.taccapis.v2.jobs.helpers.stat.exists(file_path, job_uuid, root_dir='/', permissive=False, agave=None, **kwargs)

Determine if a path exists in a Tapis job output

Parameters:
  • file_path (str) – The path from which to fetch attributes
  • job_uuid (str) – The Tapis job UUID for file_path
  • root_dir (str, optional) – Base path in output directory if file_path is relative
  • permissive (bool, optional) – Whether to raise an Exception on failure
  • agave (Agave, optional) – An active Tapis client
Returns:

True if the path exists and False if not

Return type:

bool

Raises:
  • HTTPError – A transport or web services error was encountered
  • TapisOperationFailed – Some other error prevented the operation
tapis_cli.commands.taccapis.v2.jobs.helpers.stat.isfile(file_path, job_uuid, root_dir='/', permissive=False, agave=None, **kwargs)

Determine if a path exists and is a file in a Tapis job output

Parameters:
  • file_path (str) – The path from which to fetch attributes
  • job_uuid (str) – The Tapis job UUID for file_path
  • root_dir (str, optional) – Base path in output directory if file_path is relative
  • permissive (bool, optional) – Whether to raise an Exception on failure
  • agave (Agave, optional) – An active Tapis client
Returns:

True if the path is a file and False if not

Return type:

bool

Raises:
  • HTTPError – A transport or web services error was encountered
  • TapisOperationFailed – Some other error prevented the operation
tapis_cli.commands.taccapis.v2.jobs.helpers.stat.isdir(file_path, job_uuid, root_dir='/', permissive=False, agave=None, **kwargs)

Determine if a path exists and is a directory in a Tapis job output

Parameters:
  • file_path (str) – The path from which to fetch attributes
  • job_uuid (str) – The Tapis job UUID for file_path
  • root_dir (str, optional) – Base path in output directory if file_path is relative
  • permissive (bool, optional) – Whether to raise an Exception on failure
  • agave (Agave, optional) – An active Tapis client
Returns:

True if the path is a directory and False if not

Return type:

bool

Raises:
  • HTTPError – A transport or web services error was encountered
  • TapisOperationFailed – Some other error prevented the operation
tapis_cli.commands.taccapis.v2.jobs.helpers.sync module

Web service implementations of jobs-output sync operations.

tapis_cli.commands.taccapis.v2.jobs.helpers.sync.download(source, job_uuid, destination=None, excludes=None, includes=None, force=False, sync=False, atomic=False, progress=False, agave=None)
tapis_cli.commands.taccapis.v2.jobs.helpers.sync.basic_download(src, job_uuid, dest=None, agave=None)
tapis_cli.commands.taccapis.v2.jobs.helpers.walk module

Web service implementations of the walk operation.

Provides both walk and listdir functions via recursive jobs-output-list web service operations.

tapis_cli.commands.taccapis.v2.jobs.helpers.walk.walk(directory_path, job_uuid, root_dir='/', directories=False, dotfiles=False, sort=False, page_size=100, agave=None, **kwargs)

Recursively lists contents of a Tapis job output directory.

Parameters:
  • directory_path (str) – Full or relative path of directory to walk
  • job_uuid (str) – Tapis job UUID for directory path
  • root_dir (str, optional) – Base path if directory_path is relative
  • directories (bool, optional) – Whether result should include directories
  • dotfiles (bool, optional) – Whether result should include dotfiles
  • page_size (int, optional) – Override default Tapis files-list page size
  • agave (Agave, optional) – Tapis (Agave) API client
Returns:

List of Tapis-canonical absolute paths as AnnotatedFile objects

Return type:

list

Raises:

TapisOperationFailed – An exception or error happened

tapis_cli.commands.taccapis.v2.jobs.helpers.walk.listdir(directory_path, job_uuid, root_dir='/', directories=True, dotfiles=False, page_size=100, sort=True, agave=None, **kwargs)

Lists immediate contents of a Tapis job output directory.

Parameters:
  • directory_path (str) – Full or relative path of directory to walk
  • job_uuid (str) – Tapis job UUID for directory path
  • root_dir (str, optional) – Base path if directory_path is relative
  • directories (bool, optional) – Whether result should include directories
  • dotfiles (bool, optional) – Whether result should include dotfiles
  • agave (Agave, optional) – Tapis (Agave) API client
Returns:

List of paths relative to directory_path

Return type:

list

Raises:

TapisOperationFailed – Some error prevented the action from completing

tapis_cli.commands.taccapis.v2.jobs.init package
Submodules
tapis_cli.commands.taccapis.v2.jobs.init.init module
class tapis_cli.commands.taccapis.v2.jobs.init.init.JobsInit(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.jobs.formatters.JobsFormatManyUnlimited, tapis_cli.commands.taccapis.v2.apps.mixins.AppIdentifier

EXTRA_VERBOSITY = 2.5
HELP_STRING = 'Create a Job document for the specified App'
LEGACY_COMMMAND_STRING = 'jobs-template'
VERBOSITY = 2
config = None
document = None
exceptions = []
get_parser(prog_name)

Return an argparse.ArgumentParser.

messages = []
passed_vals = {}
results = []
take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.taccapis.v2.jobs.init.job module
tapis_cli.commands.taccapis.v2.jobs.models package
Submodules
tapis_cli.commands.taccapis.v2.jobs.models.job module

Data model and functions for Tapis jobs

class tapis_cli.commands.taccapis.v2.jobs.models.job.Job

Bases: tapis_cli.commands.taccapis.model.v2.tapismodel.TapisModel

Model of a Tapis job

SEARCH_ARGS = [('_links', <class 'list'>, 1, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, 'links', False), ('accepted', 'datetime', 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('appId', <class 'str'>, 1.5, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('appUuid', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('archive', <class 'bool'>, 2, ['eq', 'neq'], 'eq', None, None, True), ('archiveOnAppError', <class 'bool'>, 2, ['eq', 'neq'], 'eq', None, None, True), ('archivePath', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('archiveSystem', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('blockedCount', <class 'int'>, 2, ['eq', 'neq', 'gt', 'gte', 'lt', 'lte'], 'eq', None, None, True), ('created', 'datetime', 1.5, ['on', 'after', 'before', 'eq', 'neq', 'gt', 'gte', 'lt', 'lte'], 'after', None, None, True), ('ended', 'datetime', 1.5, ['on', 'after', 'before', 'eq', 'neq', 'gt', 'gte', 'lt', 'lte'], 'after', None, None, True), ('failedStatusChecks', <class 'int'>, 2, ['eq', 'neq', 'gt', 'gte', 'lt', 'lte'], 'eq', None, None, True), ('id', <class 'str'>, 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('inputs', <class 'dict'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('lastStatusCheck', 'datetime', 1.5, ['on', 'after', 'before', 'eq', 'neq', 'gt', 'gte', 'lt', 'lte'], 'after', None, None, False), ('lastStatusMessage', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('lastUpdated', 'datetime', 1.5, ['on', 'after', 'before', 'eq', 'neq', 'gt', 'gte', 'lt', 'lte'], 'after', None, None, True), ('maxHours', <class 'int'>, 2, ['eq', 'neq', 'gt', 'gte', 'lt', 'lte'], 'eq', None, None, True), ('memoryPerNode', <class 'int'>, 2, ['eq', 'neq', 'gt', 'gte', 'lt', 'lte'], 'eq', None, None, True), ('name', <class 'str'>, 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('nodeCount', <class 'int'>, 2, ['eq', 'neq', 'gt', 'gte', 'lt', 'lte'], 'eq', None, None, True), ('owner', <class 'str'>, 1, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('parameters', <class 'dict'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('processorsPerNode', <class 'int'>, 2, ['eq', 'neq', 'gt', 'gte', 'lt', 'lte'], 'eq', None, None, True), ('remoteEnded', 'datetime', 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('remoteJobId', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('remoteOutcome', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('remoteQueue', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('remoteStarted', 'datetime', 1.5, ['on', 'after', 'before', 'eq', 'neq', 'gt', 'gte', 'lt', 'lte'], 'after', None, None, False), ('remoteStatusChecks', <class 'int'>, 2, ['eq', 'neq', 'gt', 'gte', 'lt', 'lte'], 'eq', None, None, True), ('remoteSubmitted', 'datetime', 1.5, ['on', 'after', 'before', 'eq', 'neq', 'gt', 'gte', 'lt', 'lte'], 'after', None, None, False), ('roles', <class 'list'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('schedulerJobId', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('status', <class 'str'>, 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('submitRetries', <class 'int'>, 2, ['eq', 'neq', 'gt', 'gte', 'lt', 'lte'], 'eq', None, None, True), ('systemId', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('tenantId', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('tenantQueue', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('visible', <class 'bool'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('workPath', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False)]
TEMPLATE_KEYS = ['appId', 'archive', 'archiveSystem', 'maxRunTime', 'inputs', 'memoryPerNode', 'name', 'nodeCount', 'parameters', 'processorsPerNode']
get_template_headers(verbosity_level=None, formatter='table')

Return only submittable Job fields

classmethod render_key_value(key, value)

Rules for transforming key names and values

service_id_type = 'Job'
tapis_cli.commands.taccapis.v2.jobs.models.job_history module
class tapis_cli.commands.taccapis.v2.jobs.models.job_history.JobHistory

Bases: tapis_cli.commands.taccapis.v2.jobs.models.job.Job

SEARCH_ARGS = [('status', <class 'str'>, 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('created', 'datetime', 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('createdBy', <class 'str'>, 1.5, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('description', <class 'str'>, 1, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('progress', <class 'str'>, 1.5, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False)]
tapis_cli.commands.taccapis.v2.jobs.models.job_pem module
class tapis_cli.commands.taccapis.v2.jobs.models.job_pem.JobPermission

Bases: tapis_cli.commands.taccapis.v2.jobs.models.job.Job

SEARCH_ARGS = [('_links', <class 'dict'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('username', <class 'str'>, 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('internalUsername', 'datetime', 3, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('permission', <class 'dict'>, 1.5, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False)]
Submodules
tapis_cli.commands.taccapis.v2.jobs.cancel module
class tapis_cli.commands.taccapis.v2.jobs.cancel.JobsCancel(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.jobs.formatters.JobsFormatOne, tapis_cli.commands.taccapis.v2.jobs.mixins.JobsUUID

EXTRA_VERBOSITY = 2
HELP_STRING = 'Cancel a running or queued Job'
LEGACY_COMMMAND_STRING = 'jobs-stop'
VERBOSITY = 1
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.jobs.formatters module

Formatters customized for job records and listings

class tapis_cli.commands.taccapis.v2.jobs.formatters.JobsFormatOne(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.jobs.formatters.JobsBase, tapis_cli.commands.taccapis.formatters.TaccApisFormatOne

class tapis_cli.commands.taccapis.v2.jobs.formatters.JobsFormatMany(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.jobs.formatters.JobsBase, tapis_cli.commands.taccapis.formatters.TaccApisFormatMany

class tapis_cli.commands.taccapis.v2.jobs.formatters.JobsHistoryFormatMany(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.jobs.formatters.JobsBase, tapis_cli.commands.taccapis.formatters.TaccApisFormatManyUnlimited

class tapis_cli.commands.taccapis.v2.jobs.formatters.JobsFormatManyUnlimited(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.jobs.formatters.JobsBase, tapis_cli.commands.taccapis.formatters.TaccApisFormatManyUnlimited

tapis_cli.commands.taccapis.v2.jobs.hide module
class tapis_cli.commands.taccapis.v2.jobs.hide.JobsHide(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.jobs.formatters.JobsFormatOne, tapis_cli.commands.taccapis.v2.jobs.mixins.JobsUUID

EXTRA_VERBOSITY = 2
HELP_STRING = 'Hide a Job from view'
LEGACY_COMMMAND_STRING = 'jobs-hide'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.jobs.history module
class tapis_cli.commands.taccapis.v2.jobs.history.JobsHistory(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.jobs.formatters.JobsHistoryFormatMany, tapis_cli.commands.taccapis.v2.jobs.mixins.JobsUUID

EXTRA_VERBOSITY = 2
HELP_STRING = 'List history of a given job'
LEGACY_COMMMAND_STRING = 'jobs-history'
VERBOSITY = 1
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.taccapis.v2.jobs.list module
class tapis_cli.commands.taccapis.v2.jobs.list.JobsList(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.jobs.formatters.JobsFormatMany

EXTRA_VERBOSITY = 1
HELP_STRING = 'List Jobs'
LEGACY_COMMMAND_STRING = 'jobs-list'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.taccapis.v2.jobs.mixins module
class tapis_cli.commands.taccapis.v2.jobs.mixins.JobsUUID

Bases: tapis_cli.clients.services.mixins.TapisEntityUUID

Configures a Command to require a mandatory Tapis job UUID

dest = 'job_uuid'
service_id_type = 'Job'
validate_identifier(identifier, permissive=False)
tapis_cli.commands.taccapis.v2.jobs.outputs_download module
class tapis_cli.commands.taccapis.v2.jobs.outputs_download.JobsOutputsDownload(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.jobs.formatters.JobsFormatOne, tapis_cli.commands.taccapis.v2.jobs.mixins.JobsUUID, tapis_cli.clients.services.mixins.RemoteFilePath, tapis_cli.commands.taccapis.v2.files.mixins.ExcludeFiles, tapis_cli.commands.taccapis.v2.files.mixins.IncludeFiles, tapis_cli.commands.taccapis.v2.files.mixins.OverwritePolicy, tapis_cli.commands.taccapis.v2.files.mixins.ReportProgress

HELP_STRING = 'Download outputs from a Job'
LEGACY_COMMMAND_STRING = 'jobs-output-get'
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.jobs.outputs_list module
class tapis_cli.commands.taccapis.v2.jobs.outputs_list.JobsOutputsList(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.jobs.formatters.JobsFormatMany, tapis_cli.commands.taccapis.v2.jobs.mixins.JobsUUID, tapis_cli.commands.taccapis.v2.files.mixins.FilesOptions, tapis_cli.clients.services.mixins.RemoteFilePath

EXTRA_VERBOSITY = 2
HELP_STRING = 'Lists output directory for a Jobs'
LEGACY_COMMMAND_STRING = 'jobs-output-list'
VERBOSITY = 1
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.taccapis.v2.jobs.outputs_logs module
class tapis_cli.commands.taccapis.v2.jobs.outputs_logs.JobsOutputsLogs(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.files.formatters.FilesFormatOne, tapis_cli.commands.taccapis.v2.jobs.mixins.JobsUUID

EXTRA_VERBOSITY = 2
HELP_STRING = 'Displays logs for a Tapis Job'
LEGACY_COMMMAND_STRING = None
VERBOSITY = 1
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.jobs.pems_drop module
class tapis_cli.commands.taccapis.v2.jobs.pems_drop.JobsPemsDrop(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.jobs.formatters.JobsFormatMany, tapis_cli.commands.taccapis.v2.jobs.mixins.JobsUUID

EXTRA_VERBOSITY = 2
HELP_STRING = 'Drop all granted Permissions from a Job'
LEGACY_COMMMAND_STRING = 'jobs-pems-update'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.taccapis.v2.jobs.pems_grant module
class tapis_cli.commands.taccapis.v2.jobs.pems_grant.JobsPemsGrant(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.jobs.formatters.JobsFormatMany, tapis_cli.commands.taccapis.v2.jobs.mixins.JobsUUID, tapis_cli.clients.services.mixins.Username

EXTRA_VERBOSITY = 2
HELP_STRING = 'Grant Permissions on a Job to a User'
LEGACY_COMMMAND_STRING = 'jobs-pems-update'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.taccapis.v2.jobs.pems_list module
class tapis_cli.commands.taccapis.v2.jobs.pems_list.JobsPemsList(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.jobs.formatters.JobsFormatMany, tapis_cli.commands.taccapis.v2.jobs.mixins.JobsUUID

EXTRA_VERBOSITY = 2
HELP_STRING = 'List Permissions for a Job'
LEGACY_COMMMAND_STRING = 'jobs-pems-list'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.taccapis.v2.jobs.pems_revoke module
class tapis_cli.commands.taccapis.v2.jobs.pems_revoke.JobsPemsRevoke(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.jobs.formatters.JobsFormatMany, tapis_cli.commands.taccapis.v2.jobs.mixins.JobsUUID, tapis_cli.clients.services.mixins.Username

EXTRA_VERBOSITY = 2
HELP_STRING = 'Revoke Permissions on a Job for a User'
LEGACY_COMMMAND_STRING = 'jobs-pems-update'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.taccapis.v2.jobs.pems_show module
class tapis_cli.commands.taccapis.v2.jobs.pems_show.JobsPemsShow(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.jobs.formatters.JobsFormatOne, tapis_cli.commands.taccapis.v2.jobs.mixins.JobsUUID, tapis_cli.clients.services.mixins.Username

EXTRA_VERBOSITY = 2
HELP_STRING = 'Show Permissions on a Job for a User'
LEGACY_COMMMAND_STRING = 'jobs-pems-list'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.jobs.resubmit module
class tapis_cli.commands.taccapis.v2.jobs.resubmit.JobsResubmit(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.jobs.formatters.JobsFormatOne, tapis_cli.commands.taccapis.v2.jobs.mixins.JobsUUID

EXTRA_VERBOSITY = 2
HELP_STRING = 'Resubmit a Job using the same inputs and parameters'
LEGACY_COMMMAND_STRING = 'jobs-resubmit'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.jobs.search module
class tapis_cli.commands.taccapis.v2.jobs.search.JobsSearch(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.jobs.formatters.JobsFormatMany

EXTRA_VERBOSITY = 1
HELP_STRING = 'Search Job records'
LEGACY_COMMMAND_STRING = 'jobs-search'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.taccapis.v2.jobs.show module
class tapis_cli.commands.taccapis.v2.jobs.show.JobsShow(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.jobs.formatters.JobsFormatOne, tapis_cli.commands.taccapis.v2.jobs.mixins.JobsUUID

EXTRA_VERBOSITY = 2.5
HELP_STRING = 'Show a specific Job'
LEGACY_COMMMAND_STRING = 'jobs-list'
VERBOSITY = 2
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.jobs.status module
class tapis_cli.commands.taccapis.v2.jobs.status.JobsStatus(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.jobs.formatters.JobsFormatOne, tapis_cli.commands.taccapis.v2.jobs.mixins.JobsUUID

EXTRA_VERBOSITY = 2
HELP_STRING = 'how the status of a Job'
LEGACY_COMMMAND_STRING = 'jobs-status'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.jobs.submit module
class tapis_cli.commands.taccapis.v2.jobs.submit.JobsSubmit(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.jobs.formatters.JobsFormatOne, tapis_cli.clients.services.mixins.UploadJSONTemplate

EXTRA_VERBOSITY = 2
HELP_STRING = 'Submit a new Job'
LEGACY_COMMMAND_STRING = 'jobs-submit'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.jobs.unhide module
class tapis_cli.commands.taccapis.v2.jobs.unhide.JobsUnhide(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.jobs.formatters.JobsFormatOne, tapis_cli.commands.taccapis.v2.jobs.mixins.JobsUUID

EXTRA_VERBOSITY = 2
HELP_STRING = 'Unhide a hidden Job'
LEGACY_COMMMAND_STRING = 'jobs-unhide'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.keys package

TACC SSH keys service commands

Subpackages
tapis_cli.commands.taccapis.v2.keys.models package
tapis_cli.commands.taccapis.v2.metadata package

Metadata service commands

Subpackages
tapis_cli.commands.taccapis.v2.metadata.helpers package
Submodules
tapis_cli.commands.taccapis.v2.metadata.helpers.create module
tapis_cli.commands.taccapis.v2.metadata.helpers.create.create_update(name=None, value=None, uuid=None, peristent_name=False, permissive=False, agave=None)
tapis_cli.commands.taccapis.v2.metadata.helpers.name module
tapis_cli.commands.taccapis.v2.metadata.helpers.name.generate_name(username=None, data=None)

Deterministically generate a name for a metadata document

tapis_cli.commands.taccapis.v2.metadata.models package
Submodules
tapis_cli.commands.taccapis.v2.metadata.models.metadata module

Data model and functions for Tapis apps

class tapis_cli.commands.taccapis.v2.metadata.models.metadata.Metadata

Bases: tapis_cli.commands.taccapis.model.v2.tapismodel.TapisModel

Model of a Tapis metadata record

SEARCH_ARGS = [('uuid', <class 'str'>, 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('schemaId', <class 'str'>, 2.5, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('internalUsername', <class 'str'>, 2.5, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('owner', <class 'str'>, 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('associationIds', <class 'list'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('name', <class 'str'>, 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('value', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('created', 'datetime', 2, ['on', 'after', 'before', 'eq', 'neq', 'gt', 'gte', 'lt', 'lte'], 'after', None, None, False), ('lastUpdated', 'datetime', 2, ['on', 'after', 'before', 'eq', 'neq', 'gt', 'gte', 'lt', 'lte'], 'after', None, None, False), ('_links', <class 'list'>, 1, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, 'links', False)]
service_id_type = 'Unique'
Submodules
tapis_cli.commands.taccapis.v2.metadata.create module
class tapis_cli.commands.taccapis.v2.metadata.create.MetadataCreate(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.metadata.formatters.MetadataFormatOne, tapis_cli.commands.taccapis.v2.metadata.mixins.UploadMetadataFile

EXTRA_VERBOSITY = 2.5
HELP_STRING = 'Store Metadata in a new document'
LEGACY_COMMMAND_STRING = 'metadata-addupdate'
VERBOSITY = 2
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.metadata.delete module
class tapis_cli.commands.taccapis.v2.metadata.delete.MetadataDelete(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.metadata.formatters.MetadataFormatOne, tapis_cli.commands.taccapis.v2.metadata.mixins.MetadataUUID

EXTRA_VERBOSITY = 2.5
HELP_STRING = 'Delete a Metadata document by UUID'
LEGACY_COMMMAND_STRING = 'metadata-delete'
VERBOSITY = 2
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.metadata.formatters module

Formatters customized for metadata records and listings

class tapis_cli.commands.taccapis.v2.metadata.formatters.MetadataFormatOne(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.metadata.formatters.MetadataBase, tapis_cli.commands.taccapis.formatters.TaccApisFormatOne

class tapis_cli.commands.taccapis.v2.metadata.formatters.MetadataFormatMany(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.metadata.formatters.MetadataBase, tapis_cli.commands.taccapis.formatters.TaccApisFormatMany

tapis_cli.commands.taccapis.v2.metadata.list module
class tapis_cli.commands.taccapis.v2.metadata.list.MetadataList(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.metadata.formatters.MetadataFormatMany

EXTRA_VERBOSITY = 2
HELP_STRING = 'List Metadata documents'
LEGACY_COMMMAND_STRING = 'metadata-list'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.taccapis.v2.metadata.mixins module

Metadata-specfic mixins

class tapis_cli.commands.taccapis.v2.metadata.mixins.UploadMetadataFile

Bases: tapis_cli.clients.services.mixins.UploadJSONTemplate

optional = True
class tapis_cli.commands.taccapis.v2.metadata.mixins.MetadataUUID

Bases: tapis_cli.clients.services.mixins.TapisEntityUUID

Configures a command to require a mandatory Tapis metadata UUID

dest = 'meta_uuid'
optional = False
service_id_type = 'Metadata'
suffix = '-012'
tapis_cli.commands.taccapis.v2.metadata.pems_drop module
class tapis_cli.commands.taccapis.v2.metadata.pems_drop.MetadataPemsDrop(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.metadata.formatters.MetadataFormatMany, tapis_cli.commands.taccapis.v2.metadata.mixins.MetadataUUID

EXTRA_VERBOSITY = 2
HELP_STRING = 'Drop all granted Permissions from a Metadata document'
LEGACY_COMMMAND_STRING = 'metadata-pems-update'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.taccapis.v2.metadata.pems_grant module
class tapis_cli.commands.taccapis.v2.metadata.pems_grant.MetadataPemsGrant(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.metadata.formatters.MetadataFormatMany, tapis_cli.commands.taccapis.v2.metadata.mixins.MetadataUUID, tapis_cli.clients.services.mixins.Username

EXTRA_VERBOSITY = 2
HELP_STRING = 'Grant Permissions on a Metadata document to a User'
LEGACY_COMMMAND_STRING = 'metadata-pems-update'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.taccapis.v2.metadata.pems_list module
class tapis_cli.commands.taccapis.v2.metadata.pems_list.MetadataPemsList(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.metadata.formatters.MetadataFormatMany, tapis_cli.commands.taccapis.v2.metadata.mixins.MetadataUUID

EXTRA_VERBOSITY = 2
HELP_STRING = 'List Permissions for a Metadata document'
LEGACY_COMMMAND_STRING = 'metadata-pems-list'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.taccapis.v2.metadata.pems_revoke module
class tapis_cli.commands.taccapis.v2.metadata.pems_revoke.MetadataPemsRevoke(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.metadata.formatters.MetadataFormatMany, tapis_cli.commands.taccapis.v2.metadata.mixins.MetadataUUID, tapis_cli.clients.services.mixins.Username

EXTRA_VERBOSITY = 2
HELP_STRING = 'Revoke Permissions on a Metadata document for a User'
LEGACY_COMMMAND_STRING = 'metadata-pems-update'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.taccapis.v2.metadata.pems_show module
class tapis_cli.commands.taccapis.v2.metadata.pems_show.MetadataPemsShow(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.metadata.formatters.MetadataFormatOne, tapis_cli.commands.taccapis.v2.metadata.mixins.MetadataUUID, tapis_cli.clients.services.mixins.Username

EXTRA_VERBOSITY = 2
HELP_STRING = 'Show Permissions on a Metadata document for specific User'
LEGACY_COMMMAND_STRING = 'metadata-pems-list'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.metadata.search module
class tapis_cli.commands.taccapis.v2.metadata.search.MetadataSearch(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.metadata.formatters.MetadataFormatMany, tapis_cli.commands.taccapis.searchable.SearchableCommand

EXTRA_VERBOSITY = 2
HELP_STRING = 'Search for Metadata documents'
LEGACY_COMMMAND_STRING = 'metadata-list'
VERBOSITY = 1
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

update_payload(parsed_args)
tapis_cli.commands.taccapis.v2.metadata.show module
class tapis_cli.commands.taccapis.v2.metadata.show.MetadataShow(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.metadata.formatters.MetadataFormatOne, tapis_cli.commands.taccapis.v2.metadata.mixins.MetadataUUID

EXTRA_VERBOSITY = 2.5
HELP_STRING = 'Show a Metadata document by UUID'
LEGACY_COMMMAND_STRING = 'metadata-list'
VERBOSITY = 2
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.metadata.update module
class tapis_cli.commands.taccapis.v2.metadata.update.MetadataUpdate(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.metadata.formatters.MetadataFormatOne, tapis_cli.commands.taccapis.v2.metadata.mixins.UploadMetadataFile, tapis_cli.commands.taccapis.v2.metadata.mixins.MetadataUUID

EXTRA_VERBOSITY = 2.5
HELP_STRING = 'Update an existing Metadata document by UUID'
LEGACY_COMMMAND_STRING = 'metadata-addupdate'
VERBOSITY = 2
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.notifications package

Notifications service commands

Subpackages
tapis_cli.commands.taccapis.v2.notifications.models package
Submodules
tapis_cli.commands.taccapis.v2.notifications.models.notification module

Data model and functions for Tapis notifications

class tapis_cli.commands.taccapis.v2.notifications.models.notification.Notification

Bases: tapis_cli.commands.taccapis.model.v2.tapismodel.TapisModel

Model of a Tapis notification

SEARCH_ARGS = [('_links', <class 'list'>, 1, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, 'links', False), ('id', <class 'str'>, 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('associatedUuid', <class 'str'>, 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('event', <class 'str'>, 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('url', <class 'str'>, 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('persistent', <class 'bool'>, 1, ['eq', 'neq'], 'eq', None, None, True), ('responseCode', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('attempts', <class 'int'>, 2, ['eq', 'neq', 'gt', 'gte', 'lt', 'lte'], 'eq', None, None, False), ('status', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('lastUpdated', 'datetime', 2, ['on', 'after', 'before', 'eq', 'neq', 'gt', 'gte', 'lt', 'lte'], 'eq', None, None, True), ('created', 'datetime', 2, ['on', 'after', 'before', 'eq', 'neq', 'gt', 'gte', 'lt', 'lte'], 'eq', None, None, True), ('policy', <class 'dict'>, 2, ['on', 'after', 'before', 'eq', 'neq', 'gt', 'gte', 'lt', 'lte'], 'eq', None, None, True)]
service_id_type = 'Notification'
Submodules
tapis_cli.commands.taccapis.v2.notifications.create module
class tapis_cli.commands.taccapis.v2.notifications.create.NotificationsCreate(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.notifications.formatters.NotificationsFormatOne, tapis_cli.commands.taccapis.v2.notifications.mixins.NotificationOptions, tapis_cli.commands.taccapis.v2.notifications.mixins.UploadNotificationJson, tapis_cli.clients.services.mixins.OptionalTapisEntityUUID

EXTRA_VERBOSITY = 2.5
HELP_STRING = 'Create a Notification'
LEGACY_COMMMAND_STRING = 'notifications-addupdate'
VERBOSITY = 2
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.notifications.delete module
class tapis_cli.commands.taccapis.v2.notifications.delete.NotificationsDelete(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.notifications.formatters.NotificationsFormatOne, tapis_cli.commands.taccapis.v2.notifications.mixins.NotificationsUUID

EXTRA_VERBOSITY = 2
HELP_STRING = 'Delete a Notification'
LEGACY_COMMMAND_STRING = 'notifications-delete'
VERBOSITY = 2
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.notifications.formatters module

Formatters customized for notification records and listings

class tapis_cli.commands.taccapis.v2.notifications.formatters.NotificationsFormatOne(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.notifications.formatters.NotificationsBase, tapis_cli.commands.taccapis.formatters.TaccApisFormatOne

class tapis_cli.commands.taccapis.v2.notifications.formatters.NotificationsFormatMany(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.notifications.formatters.NotificationsBase, tapis_cli.commands.taccapis.formatters.TaccApisFormatMany

render_extended_parser_value(key, value, formatter=None)
tapis_cli.commands.taccapis.v2.notifications.list module
class tapis_cli.commands.taccapis.v2.notifications.list.NotificationsList(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.notifications.formatters.NotificationsFormatMany, tapis_cli.clients.services.mixins.OptionalTapisEntityUUID

EXTRA_VERBOSITY = 1
HELP_STRING = 'List Notifications [by Tapis UUID]'
LEGACY_COMMMAND_STRING = 'notifications-list'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.taccapis.v2.notifications.mixins module
class tapis_cli.commands.taccapis.v2.notifications.mixins.UploadNotificationJson

Bases: tapis_cli.clients.services.mixins.UploadJsonFile

optional = True
class tapis_cli.commands.taccapis.v2.notifications.mixins.NotificationsUUID

Bases: tapis_cli.clients.services.mixins.TapisEntityUUID

Configures a Command to require a mandatory Tapis notification UUID

dest = 'notification_uuid'
service_id_type = 'Notification'
suffix = '-011'
class tapis_cli.commands.taccapis.v2.notifications.mixins.NotificationOptions

Bases: tapis_cli.clients.services.mixins.ParserExtender

extend_parser(parser)
parsed_args_to_body(parsed_args, tapis_uuid)
tapis_cli.commands.taccapis.v2.notifications.show module
class tapis_cli.commands.taccapis.v2.notifications.show.NotificationsShow(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.notifications.formatters.NotificationsFormatOne, tapis_cli.commands.taccapis.v2.notifications.mixins.NotificationsUUID

EXTRA_VERBOSITY = 2
HELP_STRING = 'Show details of a Notification'
LEGACY_COMMMAND_STRING = 'notifications-list'
VERBOSITY = 2
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.notifications.update module
class tapis_cli.commands.taccapis.v2.notifications.update.NotificationsUpdate(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.notifications.create.NotificationsCreate, tapis_cli.commands.taccapis.v2.notifications.mixins.NotificationsUUID

EXTRA_VERBOSITY = 2.5
HELP_STRING = 'Update a Notification by UUID'
LEGACY_COMMMAND_STRING = 'notifications-addupdate'
VERBOSITY = 2
get_parser(prog_name)

Return an argparse.ArgumentParser.

tapis_cli.commands.taccapis.v2.postits package

PostIts service commands

Subpackages
tapis_cli.commands.taccapis.v2.postits.models package
Submodules
tapis_cli.commands.taccapis.v2.postits.models.postit module

Data model and functions for Tapis apps

class tapis_cli.commands.taccapis.v2.postits.models.postit.PostIt

Bases: tapis_cli.commands.taccapis.model.v2.tapismodel.TapisModel

Model of a Tapis post-it entry

SEARCH_ARGS = [('postit', <class 'str'>, 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('remainingUses', <class 'int'>, 0, ['eq', 'neq', 'gt', 'gte', 'lt', 'lte'], 'eq', None, None, False), ('expires', 'datetime', 0, ['on', 'after', 'before', 'eq', 'neq', 'gt', 'gte', 'lt', 'lte'], 'after', None, None, False), ('url', <class 'str'>, 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('creator', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('created', 'datetime', 2, ['on', 'after', 'before', 'eq', 'neq', 'gt', 'gte', 'lt', 'lte'], 'after', None, None, False), ('noauth', <class 'bool'>, 2, ['eq', 'neq'], 'eq', None, None, False), ('method', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('_links', <class 'list'>, 1, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, 'links', False)]
service_id_type = 'Post-it'
Submodules
tapis_cli.commands.taccapis.v2.postits.create module
class tapis_cli.commands.taccapis.v2.postits.create.PostItsCreate(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.postits.formatters.PostItsFormatOne, tapis_cli.clients.services.mixins.FilesURI

EXTRA_VERBOSITY = 2.5
HELP_STRING = 'Create a new Postit'
LEGACY_COMMMAND_STRING = 'postits-create'
VERBOSITY = 2
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.postits.delete module
class tapis_cli.commands.taccapis.v2.postits.delete.PostItsDelete(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.postits.formatters.PostItsFormatOne, tapis_cli.commands.taccapis.v2.postits.mixins.PostItsIdentifier

EXTRA_VERBOSITY = 2.5
HELP_STRING = 'Delete a Postit'
LEGACY_COMMMAND_STRING = 'postits-delete'
VERBOSITY = 2
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.postits.formatters module

Formatters customized for postit records and listings

class tapis_cli.commands.taccapis.v2.postits.formatters.PostItsFormatOne(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.postits.formatters.PostItsBase, tapis_cli.commands.taccapis.formatters.TaccApisFormatOne

class tapis_cli.commands.taccapis.v2.postits.formatters.PostItsFormatMany(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.postits.formatters.PostItsBase, tapis_cli.commands.taccapis.formatters.TaccApisFormatManyUnlimited

tapis_cli.commands.taccapis.v2.postits.list module
class tapis_cli.commands.taccapis.v2.postits.list.PostItsList(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.postits.formatters.PostItsFormatMany

EXTRA_VERBOSITY = 2
HELP_STRING = 'List active Post-Its'
LEGACY_COMMMAND_STRING = 'postits-list'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.taccapis.v2.postits.mixins module
class tapis_cli.commands.taccapis.v2.postits.mixins.PostItsIdentifier

Bases: tapis_cli.clients.services.mixins.ServiceIdentifier

Configures a Command to require a mandatory Post-it

dest = 'postit_id'
service_id_type = 'PostIt'
validate_identifier(identifier, permissive=False)
tapis_cli.commands.taccapis.v2.profiles package

Profiles service commands

Subpackages
tapis_cli.commands.taccapis.v2.profiles.models package
Submodules
tapis_cli.commands.taccapis.v2.profiles.models.profile module

Data model and functions for Tapis profiles

class tapis_cli.commands.taccapis.v2.profiles.models.profile.Profile

Bases: tapis_cli.commands.taccapis.model.v2.tapismodel.TapisModel

Model of a Tapis user profile

SEARCH_ARGS = [('first_name', <class 'str'>, 0, ['eq'], 'eq', None, None, True), ('last_name', <class 'str'>, 0, ['eq'], 'eq', None, None, True), ('full_name', <class 'str'>, 2.5, ['eq'], 'eq', None, None, False), ('email', <class 'str'>, 0, ['eq'], 'eq', None, None, True), ('mobile_phone', <class 'str'>, 2, ['eq'], 'eq', None, None, False), ('phone', <class 'str'>, 2, ['eq'], 'eq', None, None, False), ('username', <class 'str'>, 0, ['eq'], 'eq', None, None, True), ('uid', <class 'int'>, 2.5, ['eq'], 'eq', None, None, False), ('nonce', <class 'str'>, 2.5, ['eq'], 'eq', None, None, False), ('status', <class 'str'>, 2.5, ['eq'], 'eq', None, None, False), ('create_time', 'datetime', 2.5, ['eq'], 'eq', None, None, False)]
service_id_type = 'User'
Submodules
tapis_cli.commands.taccapis.v2.profiles.formatters module

Formatters customized for profile records and listings

class tapis_cli.commands.taccapis.v2.profiles.formatters.ProfilesFormatOne(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.profiles.formatters.ProfilesBase, tapis_cli.commands.taccapis.formatters.TaccApisFormatOne

class tapis_cli.commands.taccapis.v2.profiles.formatters.ProfilesFormatMany(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.profiles.formatters.ProfilesBase, tapis_cli.commands.taccapis.formatters.TaccApisFormatManyUnlimited

tapis_cli.commands.taccapis.v2.profiles.list module
class tapis_cli.commands.taccapis.v2.profiles.list.ProfilesList(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.profiles.formatters.ProfilesFormatMany

List all Profiles (requires administrative privileges)

EXTRA_VERBOSITY = 1
VERBOSITY = 1
take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.taccapis.v2.profiles.search module
class tapis_cli.commands.taccapis.v2.profiles.search.ProfilesSearch(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.profiles.formatters.ProfilesFormatMany

HELP_STRING = 'Search by attribute for a Profile'
LEGACY_COMMMAND_STRING = 'profiles-search'
VERBOSITY = 1
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.taccapis.v2.profiles.show module
class tapis_cli.commands.taccapis.v2.profiles.show.ProfilesShow(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.profiles.formatters.ProfilesFormatOne, tapis_cli.clients.services.mixins.Username

HELP_STRING = 'Show details for a specific Profile'
LEGACY_COMMMAND_STRING = 'profiles-list'
VERBOSITY = 2
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.profiles.show_self module
class tapis_cli.commands.taccapis.v2.profiles.show_self.ProfilesShowSelf(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.profiles.formatters.ProfilesFormatOne

EXTRA_VERBOSITY = 2
HELP_STRING = 'Show Profile for the authenticated User'
LEGACY_COMMMAND_STRING = 'profiles-list'
VERBOSITY = 2
take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.systems package

Systems service commands

Subpackages
tapis_cli.commands.taccapis.v2.systems.models package
Submodules
tapis_cli.commands.taccapis.v2.systems.models.system module

Data model and functions for Tapis systems

class tapis_cli.commands.taccapis.v2.systems.models.system.System

Bases: tapis_cli.commands.taccapis.model.v2.tapismodel.TapisModel

Model of a Tapis system

ARGS_ORDERED = ['id', 'name', 'type', 'default']
SEARCH_ARGS = [('_links', <class 'list'>, 1, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, 'links', False), ('available', <class 'bool'>, 1, ['eq', 'neq'], 'eq', None, None, True), ('default', <class 'bool'>, 0, ['eq', 'neq'], 'eq', None, None, True), ('description', <class 'str'>, 1, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('environment', <class 'dict'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('executionType', <class 'str'>, 2, ['eq', 'neq'], 'eq', ['HPC', 'CLI', 'Condor'], None, True), ('globalDefault', <class 'bool'>, 2, ['eq', 'neq'], 'eq', None, None, True), ('id', <class 'str'>, 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('lastModified', 'datetime', 1.5, ['on', 'after', 'before', 'eq', 'neq', 'gt', 'gte', 'lt', 'lte'], 'after', None, None, False), ('login', <class 'dict'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('maxSystemJobs', <class 'int'>, 2, ['eq', 'neq', 'gt', 'gte', 'lt', 'lte'], 'eq', None, None, True), ('maxSystemJobsPerUser', <class 'int'>, 2, ['eq', 'neq', 'gt', 'gte', 'lt', 'lte'], 'eq', None, None, True), ('name', <class 'str'>, 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('owner', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('public', <class 'bool'>, 1, ['eq', 'neq'], 'eq', None, None, True), ('queues', <class 'dict'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('revision', <class 'int'>, 2, ['eq', 'neq', 'gt', 'gte', 'lt', 'lte'], 'eq', None, None, True), ('scheduler', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', ['CONDOR', 'SGE', 'LSF', 'PBS', 'SLURM', 'CUSTOM_SLURM', 'FORK'], None, True), ('scratchDir', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('site', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('status', <class 'str'>, 1, ['eq', 'neq'], 'eq', ['UP', 'DOWN', 'MAINTENANCE', 'UNKNOWN'], None, True), ('storage', <class 'dict'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('type', <class 'str'>, 0, ['eq', 'neq'], 'eq', ['STORAGE', 'EXECUTION'], None, True), ('uuid', <class 'str'>, 2, ['eq', 'neq'], 'eq', None, None, False), ('workDir', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False)]
service_id_type = 'System'
tapis_cli.commands.taccapis.v2.systems.models.system_history module
class tapis_cli.commands.taccapis.v2.systems.models.system_history.SystemHistory

Bases: tapis_cli.commands.taccapis.v2.systems.models.system.System

Model of a Tapis system history record

SEARCH_ARGS = [('_links', <class 'dict'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('id', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('status', <class 'str'>, 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('created', 'datetime', 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('createdBy', <class 'str'>, 1.5, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('description', <class 'str'>, 1, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False)]
tapis_cli.commands.taccapis.v2.systems.models.system_queue module
class tapis_cli.commands.taccapis.v2.systems.models.system_queue.SystemQueue

Bases: tapis_cli.commands.taccapis.v2.systems.models.system.System

Model of a Tapis system virtual queue

SEARCH_ARGS = [('_links', <class 'dict'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('id', <class 'str'>, 1.5, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('name', <class 'str'>, 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('mappedName', <class 'str'>, 1, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('description', <class 'str'>, 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('default', <class 'bool'>, 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('maxJobs', <class 'int'>, 1, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('maxUserJobs', <class 'int'>, 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('maxNodes', <class 'int'>, 1.5, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('maxProcessorsPerNode', <class 'int'>, 1.5, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('maxMemoryPerNode', <class 'float'>, 1.5, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('maxRequestedTime', <class 'str'>, 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('customDirectives', <class 'str'>, 1.5, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('load', <class 'str'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False)]
tapis_cli.commands.taccapis.v2.systems.models.system_queue_load module
class tapis_cli.commands.taccapis.v2.systems.models.system_queue_load.SystemQueueLoad

Bases: tapis_cli.commands.taccapis.v2.systems.models.system.System

Model of the load on a Tapis system virtual queue

SEARCH_ARGS = [('active', <class 'int'>, 1, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('backlogged', <class 'int'>, 1, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('pending', <class 'int'>, 1, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('paused', <class 'int'>, 1, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('processingInputs', <class 'int'>, 1, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('stagingInputs', <class 'int'>, 1, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('staging', <class 'int'>, 1, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('submitting', <class 'int'>, 1, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('queued', <class 'int'>, 1, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('running', <class 'int'>, 1, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('cleaningUp', <class 'int'>, 1, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('archiving', <class 'int'>, 1, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False)]
tapis_cli.commands.taccapis.v2.systems.models.system_role module
class tapis_cli.commands.taccapis.v2.systems.models.system_role.SystemRole

Bases: tapis_cli.commands.taccapis.v2.systems.models.system.System

Model of a Tapis system role

NAMES = ['GUEST', 'USER', 'PUBLISHER', 'ADMIN', 'OWNER']
SEARCH_ARGS = [('_links', <class 'dict'>, 2, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, False), ('username', <class 'str'>, 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True), ('role', <class 'str'>, 0, ['eq', 'neq', 'start', 'end', 'like'], 'eq', None, None, True)]
Submodules
tapis_cli.commands.taccapis.v2.systems.create module
class tapis_cli.commands.taccapis.v2.systems.create.SystemsCreate(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.systems.formatters.SystemsFormatOne, tapis_cli.clients.services.mixins.UploadJSONTemplate

EXTRA_VERBOSITY = 2
HELP_STRING = 'Create a new System'
LEGACY_COMMMAND_STRING = 'systems-addupdate'
VERBOSITY = 2
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

update_json_creds(parsed_args) → None

Updates system login and storage credentials in attr json_file_contents with command line arguments from parsed_args.

tapis_cli.commands.taccapis.v2.systems.default_set module
class tapis_cli.commands.taccapis.v2.systems.default_set.SystemsDefaultSet(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.systems.formatters.SystemsFormatOne, tapis_cli.clients.services.mixins.ServiceIdentifier

EXTRA_VERBOSITY = 2
HELP_STRING = 'Set a Tapis System to user (or global) default'
LEGACY_COMMMAND_STRING = 'systems-setdefault'
VERBOSITY = 1
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.systems.default_unset module
class tapis_cli.commands.taccapis.v2.systems.default_unset.SystemsDefaultUnset(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.systems.formatters.SystemsFormatOne, tapis_cli.clients.services.mixins.ServiceIdentifier

EXTRA_VERBOSITY = 2
HELP_STRING = "Unset a Tapis System as the user's (or global) default"
LEGACY_COMMMAND_STRING = 'systems-unsetdefault'
VERBOSITY = 1
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.systems.disable module
class tapis_cli.commands.taccapis.v2.systems.disable.SystemsDisable(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.systems.formatters.SystemsFormatOne, tapis_cli.clients.services.mixins.ServiceIdentifier

EXTRA_VERBOSITY = 2
HELP_STRING = 'Remove a System from active use'
LEGACY_COMMMAND_STRING = 'systems-disable'
VERBOSITY = 1
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.systems.enable module
class tapis_cli.commands.taccapis.v2.systems.enable.SystemsEnable(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.systems.formatters.SystemsFormatOne, tapis_cli.clients.services.mixins.ServiceIdentifier

EXTRA_VERBOSITY = 2
HELP_STRING = 'Return a disabled System to active use'
LEGACY_COMMMAND_STRING = 'systems-enable'
VERBOSITY = 1
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.systems.formatters module

Formatters customized for system records and listings

class tapis_cli.commands.taccapis.v2.systems.formatters.SystemsFormatOne(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.systems.formatters.SystemsBase, tapis_cli.commands.taccapis.formatters.TaccApisFormatOne

class tapis_cli.commands.taccapis.v2.systems.formatters.SystemsFormatMany(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.systems.formatters.SystemsBase, tapis_cli.commands.taccapis.formatters.TaccApisFormatMany

class tapis_cli.commands.taccapis.v2.systems.formatters.SystemsHistoryFormatMany(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.systems.formatters.SystemsBase, tapis_cli.commands.taccapis.formatters.TaccApisFormatMany

tapis_cli.commands.taccapis.v2.systems.helpers module
tapis_cli.commands.taccapis.v2.systems.helpers.default_execution_system(agave, public_only=False)

Determines a default execution system for the current user

Resolves private default, followed by public default, or None

tapis_cli.commands.taccapis.v2.systems.helpers.default_storage_system(agave, public_only=False)

Determines a default storage system for the current user

Resolves private default, followed by public default, or None

tapis_cli.commands.taccapis.v2.systems.history module
class tapis_cli.commands.taccapis.v2.systems.history.SystemsHistory(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.systems.formatters.SystemsHistoryFormatMany, tapis_cli.clients.services.mixins.ServiceIdentifier

EXTRA_VERBOSITY = 2
HELP_STRING = 'Show history for a System'
LEGACY_COMMMAND_STRING = 'systems-history'
VERBOSITY = 1
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.taccapis.v2.systems.list module
class tapis_cli.commands.taccapis.v2.systems.list.SystemsList(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.systems.formatters.SystemsFormatMany

EXTRA_VERBOSITY = 1
HELP_STRING = 'List available Systems'
LEGACY_COMMMAND_STRING = 'systems-list'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.taccapis.v2.systems.publish module
class tapis_cli.commands.taccapis.v2.systems.publish.SystemsPublish(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.systems.formatters.SystemsFormatOne, tapis_cli.clients.services.mixins.ServiceIdentifier

EXTRA_VERBOSITY = 2
HELP_STRING = 'Publish a System for general use'
LEGACY_COMMMAND_STRING = 'systems-publish'
VERBOSITY = 1
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.systems.queues_list module
class tapis_cli.commands.taccapis.v2.systems.queues_list.SystemsQueuesList(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.systems.formatters.SystemsFormatMany, tapis_cli.clients.services.mixins.ServiceIdentifier

EXTRA_VERBOSITY = 2
HELP_STRING = 'List virtual queues on a System'
LEGACY_COMMMAND_STRING = 'systems-queues-list'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.taccapis.v2.systems.roles_drop module
class tapis_cli.commands.taccapis.v2.systems.roles_drop.SystemsRolesDrop(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.systems.formatters.SystemsFormatMany, tapis_cli.clients.services.mixins.ServiceIdentifier

EXTRA_VERBOSITY = 2
HELP_STRING = 'Drop all granted roles from a System'
LEGACY_COMMMAND_STRING = 'systems-roles-delete'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.taccapis.v2.systems.roles_grant module
class tapis_cli.commands.taccapis.v2.systems.roles_grant.SystemsRolesGrant(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.systems.formatters.SystemsFormatOne, tapis_cli.clients.services.mixins.ServiceIdentifier, tapis_cli.clients.services.mixins.Username

EXTRA_VERBOSITY = 2
HELP_STRING = 'Grant a user role on a System'
LEGACY_COMMMAND_STRING = 'systems-roles-addupdate'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.systems.roles_list module
class tapis_cli.commands.taccapis.v2.systems.roles_list.SystemsRolesList(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.systems.formatters.SystemsFormatMany, tapis_cli.clients.services.mixins.ServiceIdentifier

EXTRA_VERBOSITY = 2
HELP_STRING = 'List user roles on a System'
LEGACY_COMMMAND_STRING = 'systems-roles-list'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.taccapis.v2.systems.roles_revoke module
class tapis_cli.commands.taccapis.v2.systems.roles_revoke.SystemsRolesRevoke(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.systems.formatters.SystemsFormatOne, tapis_cli.clients.services.mixins.ServiceIdentifier, tapis_cli.clients.services.mixins.Username

EXTRA_VERBOSITY = 2
HELP_STRING = 'Revoke a user role from a System'
LEGACY_COMMMAND_STRING = 'systems-roles-addupdate'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.systems.roles_show module
class tapis_cli.commands.taccapis.v2.systems.roles_show.SystemsRolesShow(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.systems.formatters.SystemsFormatOne, tapis_cli.clients.services.mixins.ServiceIdentifier, tapis_cli.clients.services.mixins.Username

EXTRA_VERBOSITY = 2
HELP_STRING = 'Show roles on a System for the specified User'
LEGACY_COMMMAND_STRING = 'systems-roles-list'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.systems.search module
class tapis_cli.commands.taccapis.v2.systems.search.SystemsSearch(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.systems.formatters.SystemsFormatMany, tapis_cli.commands.taccapis.searchable.SearchableCommand

EXTRA_VERBOSITY = 1
HELP_STRING = 'Search available Systems'
LEGACY_COMMMAND_STRING = 'systems-search'
VERBOSITY = 0
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.commands.taccapis.v2.systems.show module
class tapis_cli.commands.taccapis.v2.systems.show.SystemsShow(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.systems.formatters.SystemsFormatOne, tapis_cli.clients.services.mixins.ServiceIdentifier

EXTRA_VERBOSITY = 2
HELP_STRING = 'Show details of a System'
LEGACY_COMMMAND_STRING = 'systems-list'
VERBOSITY = 2
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.systems.status module
class tapis_cli.commands.taccapis.v2.systems.status.SystemsStatus(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.systems.show.SystemsShow

Show status of a System

EXTRA_VERBOSITY = 0
HELP_STRING = 'Show status of a System'
LEGACY_COMMMAND_STRING = 'systems-status'
VERBOSITY = 0
tapis_cli.commands.taccapis.v2.systems.unpublish module
class tapis_cli.commands.taccapis.v2.systems.unpublish.SystemsUnpublish(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.systems.formatters.SystemsFormatOne, tapis_cli.clients.services.mixins.ServiceIdentifier

EXTRA_VERBOSITY = 2
HELP_STRING = 'Unpublish a public System'
LEGACY_COMMMAND_STRING = 'systems-unpublish'
VERBOSITY = 1
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.systems.update module
class tapis_cli.commands.taccapis.v2.systems.update.SystemsUpdate(app, app_args, cmd_name=None)

Bases: tapis_cli.commands.taccapis.v2.systems.create.SystemsCreate, tapis_cli.clients.services.mixins.ServiceIdentifier

HELP_STRING = 'Update an existing System'
LEGACY_COMMMAND_STRING = 'systems-addupdate'
get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

tapis_cli.commands.taccapis.v2.uuid package

UUID service commands

Submodules
tapis_cli.commands.taccapis.v2.pem module

Representation and helpers for app, system, metadata, job permissions

tapis_cli.commands.taccapis.v2.pem.posixify_pem(pem)

Translate a Tapis systems, jobs, or apps pem into a POSIX-like string

tapis_cli.commands.taccapis.v3 package

TACC API commands referencing /v3

Submodules
tapis_cli.commands.taccapis.formatters module
class tapis_cli.commands.taccapis.formatters.TaccApisCommandBase

Bases: tapis_cli.clients.services.taccapis.v2.base.TaccApisCommandBase, tapis_cli.commands.taccapis.searchable.SearchableCommand

class tapis_cli.commands.taccapis.formatters.TaccApisFormatOne(app, app_args, cmd_name=None)

Bases: tapis_cli.clients.services.taccapis.v2.format_one.TaccApisFormatOne

class tapis_cli.commands.taccapis.formatters.TaccApisFormatMany(app, app_args, cmd_name=None)

Bases: tapis_cli.clients.services.taccapis.v2.format_many.TaccApisFormatMany

class tapis_cli.commands.taccapis.formatters.TaccApisFormatOneNoBearer(app, app_args, cmd_name=None)

Bases: tapis_cli.clients.services.taccapis.v2.format_one.TaccApisFormatOneNoBearer

class tapis_cli.commands.taccapis.formatters.TaccApisFormatManyUnlimited(app, app_args, cmd_name=None)

Bases: tapis_cli.clients.services.taccapis.v2.format_many.TaccApisFormatManyUnlimited

tapis_cli.commands.taccapis.searchable module
class tapis_cli.commands.taccapis.searchable.SearchableCommand

Bases: object

Manages population of the search arguments option group

extend_parser(parser, class_name)

Adds a named argument to parser for each searchable argument

Help for each argument is displayed in the special argument group

render_headers(tapis_entity_class, parsed_args)

Returns headers from a TapisModel based on current verbosity level

search_args = {}
tapis_cli.et package
Submodules
tapis_cli.et.phone_home module
tapis_cli.et.phone_home.generate_tracking_url(path=None)

Generates a Google Analytics tracking URL

tapis_cli.et.phone_home.phone_home()

Report a usage event to Google Analytics (if not disabled)

tapis_cli.hashcache package

Extends Python hashing to support memoization.

Extends Python’s hashing support to support memoizing and serialization of functions with complex parameters and/or returns.

tapis_cli.hashcache.lru_cache(maxsize=128, typed=False)

Least-recently-used cache decorator.

If maxsize is set to None, the LRU features are disabled and the cache can grow without bound.

If typed is True, arguments of different types will be cached separately. For example, f(3.0) and f(3) will be treated as distinct calls with distinct results.

Arguments to the cached function must be hashable.

View the cache statistics named tuple (hits, misses, maxsize, currsize) with f.cache_info(). Clear the cache and statistics with f.cache_clear(). Access the underlying function with f.__wrapped__.

See: http://en.wikipedia.org/wiki/Cache_replacement_policies#Least_recently_used_(LRU)

Submodules
tapis_cli.hashcache.jsoncache module

A memoizing cache built on the Python json module

class tapis_cli.hashcache.jsoncache.Serialized(json)

Bases: tuple

json

Alias for field number 0

tapis_cli.hashcache.jsoncache.mcache(cache)
tapis_cli.hashcache.lru_py27 module

Backport of Python 3.3 lru_cache to Python 2.7

tapis_cli.hashcache.lru_py27.lru_cache(maxsize=100, typed=False)

Least-recently-used cache decorator.

If maxsize is set to None, the LRU features are disabled and the cache can grow without bound.

If typed is True, arguments of different types will be cached separately. For example, f(3.0) and f(3) will be treated as distinct calls with distinct results.

Arguments to the cached function must be hashable.

View the cache statistics named tuple (hits, misses, maxsize, currsize) with f.cache_info(). Clear the cache and statistics with f.cache_clear(). Access the underlying function with f.__wrapped__.

See: http://en.wikipedia.org/wiki/Cache_algorithms#Least_Recently_Used

tapis_cli.hashcache.picklecache module

A memoizing cache built on the Python cloudpickle (preferred) or pickle module.

class tapis_cli.hashcache.picklecache.Serialized(payload)

Bases: tuple

payload

Alias for field number 0

tapis_cli.hashcache.picklecache.mcache(cache)
tapis_cli.mocks package

Mockup formatters

class tapis_cli.mocks.FormatOne(app, app_args, cmd_name=None)

Bases: cliff.show.ShowOne

Generic Record Display

get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Return a two-part tuple with a tuple of column names and a tuple of values.

class tapis_cli.mocks.FormatMany(app, app_args, cmd_name=None)

Bases: cliff.lister.Lister

Generic Records Listing

get_parser(prog_name)

Return an argparse.ArgumentParser.

take_action(parsed_args)

Run command.

Return a tuple containing the column names and an iterable containing the data to be listed.

tapis_cli.project_ini package

Supports the .ini format used to configure app and actor projects

Subpackages
tapis_cli.project_ini.mixins package
tapis_cli.project_ini.mixins.ActorIniArgs(ParserExtender)
tapis_cli.project_ini.mixins.AppIniArgs(ParserExtender)
tapis_cli.project_ini.mixins.DockerIniArgs(ParserExtender)
tapis_cli.project_ini.mixins.GitIniArgs(ParserExtender)
tapis_cli.project_ini.mixins.JobIniArgs(ParserExtender)
tapis_cli.project_ini.mixins.SystemIniArgs(ParserExtender)
Submodules
tapis_cli.project_ini.mixins.actor module
tapis_cli.project_ini.mixins.app module
tapis_cli.project_ini.schema package
class tapis_cli.project_ini.schema.BaseSchema

Bases: object

PROPERTIES = [('field', 'default', <class 'str'>, 'Field description')]
get_keys()
get_section()
parser_args()
section = 'DEFAULT'
Submodules
tapis_cli.project_ini.schema.actor module
class tapis_cli.project_ini.schema.actor.Schema

Bases: tapis_cli.project_ini.schema.BaseSchema

PROPERTIES = [('name', '', <class 'str'>, 'Tapis actor name'), ('description', '', <class 'str'>, 'Tapis actor name description'), ('alias', '', <class 'str'>, 'Tapis actor alias'), ('stateless', True, <class 'bool'>, 'Whether actor is stateless'), ('hint', '', <class 'str'>, 'Scaling hint for actor'), ('privileged', False, <class 'bool'>, 'Whether actor runs with advanced capabilities'), ('use_uid', True, <class 'bool'>, 'Whether actor should run as the owner UNIX ID'), ('workers', 1, <class 'int'>, 'Default number of workers for the actor')]
tapis_cli.project_ini.schema.app module
class tapis_cli.project_ini.schema.app.Schema

Bases: tapis_cli.project_ini.schema.BaseSchema

PROPERTIES = [('name', '', <class 'str'>, 'Tapis app name'), ('version', '', <class 'str'>, 'Tapis app semantic version'), ('bundle', '', <class 'str'>, 'Local path containing app assets'), ('deployment_path', '', <class 'str'>, 'Remote path holding app assets'), ('deployment_system', '', <class 'str'>, 'Storage system holding app assets'), ('execution_system', '', <class 'str'>, 'Execution system for Tapis app')]
tapis_cli.project_ini.schema.docker module
class tapis_cli.project_ini.schema.docker.Schema

Bases: tapis_cli.project_ini.schema.BaseSchema

PROPERTIES = [('dockerfile', 'Dockerfile', <class 'str'>, 'Dockerfile to build current project'), ('username', '', <class 'str'>, 'Container registry username'), ('group', '', <class 'str'>, 'Container registry group'), ('registry', '', <class 'str'>, 'Container registry URL'), ('repo', '', <class 'str'>, 'Container repo name'), ('tag', '', <class 'str'>, 'Container repo tag'), ('build_args', '', <class 'str'>, 'Container build arguments'), ('use_commit_hash', True, <class 'bool'>, 'Use commit hash for tag if available')]
tapis_cli.project_ini.schema.env module
class tapis_cli.project_ini.schema.env.Schema

Bases: tapis_cli.project_ini.schema.BaseSchema

PROPERTIES = []
tapis_cli.project_ini.schema.git module
class tapis_cli.project_ini.schema.git.Schema

Bases: tapis_cli.project_ini.schema.BaseSchema

PROPERTIES = [('branch', 'master', <class 'str'>, 'Current git branch'), ('remote', '', <class 'str'>, 'Current git remote')]
tapis_cli.project_ini.schema.job module
class tapis_cli.project_ini.schema.job.Schema

Bases: tapis_cli.project_ini.schema.BaseSchema

PROPERTIES = []
tapis_cli.project_ini.schema.system module
class tapis_cli.project_ini.schema.system.Schema

Bases: tapis_cli.project_ini.schema.BaseSchema

PROPERTIES = [('ssh_private_key', '~/.ssh/id_rsa', <class 'str'>, 'Current user SSH private key'), ('ssh_public_key', '~/.ssh/id_rsa.pub', <class 'str'>, 'Current user SSH public key')]
Submodules
tapis_cli.project_ini.config_file module
tapis_cli.project_ini.config_file.load_config(filename=None, as_dict=False)
tapis_cli.project_ini.config_file.save_config(config, filename='project.ini')
tapis_cli.project_ini.config_file.config_path(filename=None, working_directory=None)
tapis_cli.project_ini.templating module
tapis_cli.project_ini.templating.key_values(filename=None, as_dict=True)

Load project config file into a dict for template remdering

Keyword Arguments:
 filename (str, optional) – Path to a project config file. Defaults to $PWD/project.ini
Returns:Variables and names to support Jinja template rendering
Return type:dict
tapis_cli.project_ini.templating.generate_template_ini(passed_vals=None)
tapis_cli.project_ini.templating.update_config(config={}, values_dict=None, add_keys=False)

Recursively merge a dict onto a ConfigParser

This is used to initialize the parser with passed values, like one might do when setting up a project for the first time.

tapis_cli.search package

Methods and classes for building CLI-driven search and filtering

Submodules
tapis_cli.search.argdef module
class tapis_cli.search.argdef.Argdef(param_name, param_type, verbosity, mod_types, default_mod, choices, override_option, searchable)

Bases: tuple

choices

Alias for field number 5

default_mod

Alias for field number 4

mod_types

Alias for field number 3

override_option

Alias for field number 6

param_name

Alias for field number 0

param_type

Alias for field number 1

searchable

Alias for field number 7

verbosity

Alias for field number 2

tapis_cli.search.argdef.optionize(fieldKeyName)

Transforms a string into an argparse option

tapis_cli.search.argdef.propertize(fieldKeyName)

Transforms a string into an Python parameter name

tapis_cli.search.argdef.tapisize(fieldKeyName)

Transforms a string into a Tapis query parameter

tapis_cli.search.argdef.spinal_to_camel(optionName)
tapis_cli.search.argmod module

Enumeration of valid modifiers for search arguments

tapis_cli.search.argtype module

Enumeration of valid types for search arguments

tapis_cli.search.argtype.param_type_repr(param_type)
tapis_cli.search.argtype.format_allows_param_type(argdef, formatter='table')

Filter (mostly structured) un-formattable arguments

This method implements a handful fo empirically-determined policies to filter out parameter types that cannot be easily displayed in flattened formats like ‘table’ or ‘value’.

tapis_cli.search.arrowspan module
class tapis_cli.search.arrowspan.ArrowSpan(year: int, month: int, day: int, hour: int = 0, minute: int = 0, second: int = 0, microsecond: int = 0, tzinfo: Union[datetime.tzinfo, str, None] = None, **kwargs)

Bases: arrow.arrow.Arrow

Subclass of Arrow with upgraded span() capability used to generate MongoDB date ranges for queries

DAY = 'day'
HOUR = 'hour'
MINUTE = 'minute'
MONTH = 'month'
SPANS = ['year', 'month', 'week', 'day', 'hour', 'minute']
WEEK = 'week'
YEAR = 'year'
default_span = 'day'
original_value = None
setup(value)
smart_ceil(span_value=None)
smart_floor(span_value=None)
smart_span(span_value=None)
tapis_cli.search.mongoql module
class tapis_cli.search.mongoql.MongoQuery

Bases: dict

class tapis_cli.search.mongoql.SearchMongoQuery(field_type=<class 'str'>, **kwargs)

Bases: tapis_cli.search.searcharg.SearchArg

query_after(value)
query_before(value)
query_end(value)
query_eq(value)
query_gt(value)
query_gte(value)
query_in(values)
query_like(value)
query_lt(value)
query_lte(value)
query_nend(value)
query_neq(value)
query_nin(values)
query_nlike(value)
query_nstart(value)
query_on(value)
query_start(value)
tapis_cli.search.param module
class tapis_cli.search.param.WebParam

Bases: dict

class tapis_cli.search.param.SearchWebParam(field_type=<class 'str'>, **kwargs)

Bases: tapis_cli.search.searcharg.SearchArg

Renders param.mod=value for passing to a web service

query_after(value)
query_before(value)
query_end(value)
query_eq(value)
query_gt(value)
query_gte(value)
query_in(values)
query_like(value)
query_lt(value)
query_lte(value)
query_neq(value)
query_nin(values)
query_nlike(value)
query_on(value)
query_start(value)
class tapis_cli.search.param.SearchWebParamEqualsOnly(field_type=<class 'str'>, **kwargs)

Bases: tapis_cli.search.searcharg.SearchArg

Renders param=value for passing to a web service

query_eq(value)
tapis_cli.search.searcharg module
class tapis_cli.search.searcharg.Argument(argument, attributes)

Bases: tuple

argument

Alias for field number 0

attributes

Alias for field number 1

class tapis_cli.search.searcharg.SearchArg(field_type=<class 'str'>, **kwargs)

Bases: object

Uses metadata to generate argparse and param views of a search term

PARAMS = [('argument', False, 'argument', 'str', None), ('field', False, 'field', 'str', None), ('destination', False, 'destination', None, None), ('choices', False, 'choices', None, None), ('mods', False, 'mods', 'list', ['eq']), ('default_mod', False, 'default_mod', 'str', 'eq')]
cast(value, field_type=None)

Cast a value into a defined Python type

get_argparse()

Generate an argparse argument for a MongoDB collection field

get_param(values)

Render a query from the argument’s metadata and value(s)

classmethod parse_datetime(value, span=None)

Transform a human date or time string to a Python UTC datetime

to_values(value, delim=', ')

Transform a value into a list of values

tapis_cli.settings package

Provides a consistent environment- and file-driven approach to run-time application configuration.

tapis_cli.settings.all_settings()

Returns name and value of all properties resembling settings

Subpackages
tapis_cli.settings.taccapis package
Submodules
tapis_cli.settings.taccapis.v1 module

APIv1-specific CLI settings

tapis_cli.settings.taccapis.v2 module

APIv2-specific CLI settings

tapis_cli.settings.taccapis.v3 module

APIv3-specific CLI settings

Submodules
tapis_cli.settings.auth module
tapis_cli.settings.config module

Provides config file loading and management

tapis_cli.settings.config.find_config(filename='.env')

Wrapper for find_dotenv that searches module path, CWD, and HOME

tapis_cli.settings.config.load_config(filename='.env', override=False)

Wrapper for load_env that considers module path, CWD, and HOME

tapis_cli.settings.debug module
tapis_cli.settings.display module
tapis_cli.settings.gitserver module

Git server settings

tapis_cli.settings.google module

Google Analytics settings

tapis_cli.settings.helpers module
tapis_cli.settings.helpers.ns_os_environ_get(env_var_name, default, prefix='TAPIS_CLI')
tapis_cli.settings.helpers.fix_assets_path(path)
tapis_cli.settings.helpers.array_from_string(s)
tapis_cli.settings.helpers.set_from_string(s)
tapis_cli.settings.helpers.parse_boolean(s)

Takes a string and returns the equivalent as a boolean value.

tapis_cli.settings.helpers.int_or_none(value)
tapis_cli.settings.helpers.os_environ_get_none(env_var_name, default=None)
tapis_cli.settings.jupyter module

TACC Jupyter-specific CLI settings

tapis_cli.settings.organization module
tapis_cli.settings.projects module

Project configuration and build settings

tapis_cli.settings.redact module

Functions supporting redaction of private settings

tapis_cli.settings.redact.key_is_private(key)

Determine if a key has a name indicating it is private

tapis_cli.settings.redact.auto_redact(key, value)

Automatically redact values of private settings

tapis_cli.settings.redact.redact(value)
tapis_cli.settings.registry module

Container registry settings

tapis_cli.settings.ssh module
tapis_cli.templating package

Supports Jinja-based templating across the CLI

tapis_cli.templating.key_values(passed_vals=None)

Create a dict that can be used to render a Jinja template

tapis_cli.templating.render_template(doc_source, passed_vals=None, allow_undefined=True)

Render a string template using extant variables

Parameters:

doc_source (str) – Template string

Keyword Arguments:
 
  • passed_vals (dict, optional) – Dictionary of variable name/value pairs
  • file (str|list, optional) – One or more files containing variable data
  • allow_undefined (bool, optional) – Do not raise an Exception when there are un-rendered variables
Returns:

Rendered string

Return type:

str

tapis_cli.templating.dot_notation(sourcedict, replacelevel=None)

Transform a nested configparser option into section.option form

Subpackages
tapis_cli.templating.variables package
tapis_cli.templating.variables.key_values()
Submodules
tapis_cli.templating.variables.cli module
tapis_cli.templating.variables.cli.key_values()
tapis_cli.templating.variables.date_time module
tapis_cli.templating.variables.date_time.key_values()

Return a dictonary of handy date and time values

tapis_cli.templating.variables.git module
tapis_cli.templating.variables.git.key_values()
tapis_cli.templating.variables.posix module
tapis_cli.templating.variables.posix.key_values()
Submodules
tapis_cli.templating.settings module

Imports Tapis CLI settings to a Jinja environment

Prefixes TAPIS_PY and TAPIS_CLI are stripped and key names are lowercased.

tapis_cli.templating.settings.key_values()

Submodules

tapis_cli.constants module

Constant values and help strings

tapis_cli.display module

Constants, classes, and helpers pertaining to results display

class tapis_cli.display.Verbosity

Bases: object

BRIEF = 0
BRIEF_VERBOSE = 0.5
EXPANDED = 3
EXPANDED_VERBOSE = 3
LISTING = 1
LISTING_VERBOSE = 1.5
RECORD = 2
RECORD_VERBOSE = 2.5
VERBOSE = 1
VERY_VERBOSE = 3
tapis_cli.display.abbreviate(value)

tapis_cli.firstrun module

tapis_cli.firstrun.firstrun()

First-run workflow

tapis_cli.githelper module

Functions for inspecting Git repository details at runtime

tapis_cli.githelper.get_git_revision_hash()
tapis_cli.githelper.get_git_revision_short_hash()
tapis_cli.githelper.get_git_remote(name='origin')

tapis_cli.main module

class tapis_cli.main.Tapis_App

Bases: cliff.app.App

build_option_parser(description, version)

Return an argparse option parser for this application.

Subclasses may override this method to extend the parser with more global options.

Parameters:
  • description – full description of the application
  • version – version number for the application
  • argparse_kwargs – extra keyword argument passed to the ArgumentParser constructor
configure_logging()

Create logging handlers for any log output.

initialize_app(argv)

Hook for subclasses to take global initialization action after the arguments are parsed but before a command is run. Invoked only once, even in interactive mode.

Parameters:argv – List of arguments, including the subcommand to run. Empty for interactive mode.
prepare_to_run_command(cmd)

Prepares to run the command

Checks if the minimal parameters are provided and creates the client interface. This is inherited from the framework.

tapis_cli.main.main(argv=['-T', '-E', '-b', 'readthedocssinglehtmllocalmedia', '-d', '_build/doctrees', '-D', 'language=en', '.', '_build/localmedia'])

tapis_cli.user_agent module

tapis_cli.user_agent.user_agent()

Generate a custom user-agent string for Tapis CLI

tapis_cli.utils module

Public, low-dependency helper functions

tapis_cli.utils.abspath(file_path, root='/')

Safely combine a relative (which might not actually be relative) and base path.

Parameters:
  • file_path (str) – Relative path
  • root_dir (str, optional) – Base path for file_path
Returns:

Processed file_path

Return type:

str

tapis_cli.utils.command_set()

Discover and return the full complement of commands

tapis_cli.utils.current_time()

Current UTC time :returns: A datetime object rounded to millisecond precision

tapis_cli.utils.datestring_to_epoch(date_string)

Convert a date string to UNIX epoch

tapis_cli.utils.datetime_to_human(date_obj)

Convert a Python datetime object to a human-friendly string

tapis_cli.utils.datetime_to_isodate(date_obj)

Convert a Python datetime object to ISO-8601

tapis_cli.utils.dynamic_import(module, package=None)

Dynamically import a module by name at runtime

Parameters:
  • module (str) – The name of the module to import
  • package (str, optional) – The package to import module from
Returns:

The imported module

Return type:

object

tapis_cli.utils.fg_blue(message)

Blue text

tapis_cli.utils.fg_bright(message)

Bright text

tapis_cli.utils.fg_dim(message)

Dim text

tapis_cli.utils.fg_green(message)

Green text

tapis_cli.utils.fg_red(message)

Red text

tapis_cli.utils.fmtcols(mylist, cols)

Generate a string of tab and newline delimited columns from a list

tapis_cli.utils.fnmatches(file_name, patterns=None)

Check if a filename string matches a specified patterns

Uses UNIX-style file wildcards

tapis_cli.utils.get_hostname()

Returns the fully-qualified domain name for current localhost

tapis_cli.utils.get_local_username()

Returns local system username

tapis_cli.utils.get_public_ip()

Returns localhost’s public IP address (or NAT gateway address)

tapis_cli.utils.humanize_bytes(bytesize, precision=2)

Render byte counts into human-scale formats

tapis_cli.utils.import_submodules(module, package=None, exclude=[])

Dynamically discover and import submodules at runtime

tapis_cli.utils.makedirs(file_path, exist_ok=True)

Python2-compatible makedirs with exist_ok support

tapis_cli.utils.microseconds()

Current time in microseconds as int

tapis_cli.utils.milliseconds()

Current time in milliseconds as int

tapis_cli.utils.nanoseconds()

Current time in nanoseconds as int

tapis_cli.utils.normalize(file_path)

Trim leading slash or slashes from a path

Parameters:file_path (str) – Path to normalize
Returns:Normalized file_path
Return type:str
tapis_cli.utils.normpath(file_path)

Collapse duplicate leading slashes and resolve relative references in a path

Parameters:file_path (str) – Path to process
Returns:Processed file_path
Return type:str
tapis_cli.utils.nrlist(sequence)

Python 2.7 compatible list deduplication

tapis_cli.utils.num(n)
tapis_cli.utils.parse_uri(url)
tapis_cli.utils.print_stderr(message)

Print to STDERR without using logging

tapis_cli.utils.prompt(body, default=None, secret=False, allow_empty=True)

Prompt user for input

tapis_cli.utils.prompt_accept(body, default='y', exit_reject=True)
tapis_cli.utils.prompt_boolean(body, default=True)
tapis_cli.utils.redact(value)
tapis_cli.utils.relpath(file_path, root='/')

Returns path relative to start

tapis_cli.utils.reserved_environment_vars()
tapis_cli.utils.seconds()

Current time in seconds as int

tapis_cli.utils.serializable(obj, permissive=True)

Check that a Python object is JSON serializable

tapis_cli.utils.slugify(text, separator='_')

Implements a stable slugify function over python-slugify, unicode-slugify, or awesome-slugify

tapis_cli.utils.split_string(inp, separator=', ')

Split and de-whitespace delimited string

tapis_cli.utils.splitall(path)

Splits a path into all of its parts

tapis_cli.utils.timestamp()

Returns Zulu-formatted UTC time

tapis_cli.utils.to_slug(inp, lowercase=True)

Implements Aloe Slugify.to_slug

tapis_cli.utils.ts_to_date(date_string)

Convert a datetime string (UTC) into a pretty date string

tapis_cli.utils.ts_to_isodate(date_string, include_time=False)

Convert a datetime string (UTC) into a date string in ISO format

Indices and tables