Teraslice CLI
Command line manager for teraslice jobs, assets, and cluster references.
Installation
# Using yarn
yarn global add teraslice-cli
# Using npm
npm install --global teraslice-cli
Aliases
Useful for referencing a cluster without having to write out the entire name. Once a cluster url is added as an alias use the alias name to reference the cluster for all teraslice-cli commands.
aliases list
List cluster aliases. By default localhost - http://localhost:5678
is already set up
command:
teraslice-cli aliases list
output:
cluster host
----------- --------------------------------------
localhost http://localhost:5678
aliases add
Adds a cluster alias to the config file
$ teraslice-cli aliases add cluster1 http://cluster1.net:80
Added alias cluster1 host: http://cluster1.net:80
After adding a cluster the command teraslice-cli aliases list output:
cluster host
----------- --------------------------------------
localhost http://localhost:5678
cluster1 http://cluster1.net:80
aliases remove
Removes a cluster alias to the config file
$ teraslice-cli aliases remove cluster1
> Removed cluster alias cluster1
Now aliases cluster list will output:
cluster host
----------- --------------------------------------
localhost http://localhost:5678
aliases update
update an alias
$ teraslice-cli aliases update local localhost:3000
Updated alias local host: localhost:3000
New aliases list will output:
cluster host
----------- --------------------------------------
localhost http://localhost:3000
Assets
Commands to manage assets.
NOTE: Before using the assets command add clusters via the aliases command
assets build
Creates a build directory and saves the zipped asset in the build directory.
$ teraslice-cli assets build
# or by specifying the path
# teraslice-cli assets build --src-dir /path/to/asset
Asset created:
/dir/path/new_asset-v0.0.01-node-version-bundle.zip
assets deploy
Deploys an asset to a cluster. The asset can be a zipfile or a github repo.
To deploy an asset from a github repo:
teraslice-cli assets deploy <cluster-alias> <user/repo-name>
working example:
$ teraslice-cli assets deploy localhost terascope/elasticsearch-assets
terascope/kafka-assets has either been downloaded or was already present on disk.
Asset posted to localhost: <asset-hash>
To deploy an asset from a zipfile:
teraslice-cli assets deploy localhost --file /path/to/zipFile/asset.zip
Use --build
to build and deploy in one step
teraslice-cli assets deploy --build
See teraslice-cli assets --help
for all examples and options
assets list
Shows all the assets on a cluster.
teraslice-cli assets list <cluster-alias>
assets remove
Removes an asset from a cluster
$ teraslice-cli assets remove <cluster-alias> <asset-id>
Asset <asset-id> deleted from <cluster-alias>
assets registry
Creates a new asset registry or updates the existing registry. If a javascript repo the registry will be at asset/index.js
. If a typescript repo the registry will be at asset/src/index.ts
. A registry is required to properly bundle assets using ESBuild.
teraslice-cli assets init
TJM (teraslice job manager)
Commands to manage jobs by referencing a job file.
tjm register or reg
Registers a job to a cluster and adds the metadata to a job file. Before a job can be registered set up cluster aliases as instructed above.
--start
Starts job after it is registered
teraslice-cli tjm register <cluster-alias> JOB.JSON
teraslice-cli tjm reg <cluster-alias> JOB.JSON --start
For all the commands below the job must be registered on the cluster and have metadata in the jobsFile.json
to work
tjm convert
For anyone who was using the previous version of tjm this command converts the old metadata style to the current version so that jobs don't have to be re-registered with the cluster. Just use convert and any of the below commands will work, this does break the use of any older versions of tjm.
teraslice-cli tjm convert JOB.JSON
tjm errors
Displays errors for a job.
teraslice-cli tjm errors JOB.JSON
tjm init
Creates an example teraslice-job in the current working directory
terasclie-cli tjm init JOB.JSON
tjm reset
Removes metadata from job file, useful if the job needs to be moved to a different cluster.
teraslice-cli tjm reset JOB.JSON
tjm restart
Stops and restarts a job.
teraslice-cli tjm restart JOB.JSON
tjm start
Starts a job, run
is an alias to start
.
teraslice-cli jobs start JOB.JSON
tjm status
Reports the status of a job.
teraslice-cli tjm status JOB.JSON
tjm stop
Stops a job.
teraslice-cli tjm stop JOB.JSON
tjm await
Waits for job to reach specified status
--status
The status to wait on, once the job gets to specified status the cli exits- defaults to stopped or completed if not specified
- can enter more than one status seperated by a space
--timeout
Time in microseconds, how long to wait for the job to reach the status- default is forever
teraslice-cli tjm await JOB.JSON
teraslice-cli tjm await JOB.JSON --status completed
teraslice-cli tjm await JOB.JSON --status completed --timeout 10000
teraslice-cli tjm await JOB.JSON --status failing --timeout 10000
teraslice-cli tjm await JOB.JSON --status running failing initializing
tjm update
Updates the job file on the cluster
--start
Starts job after update is complete
teraslice-cli tjm update JOB.JSON
teraslice-cli tjm update JOB.JSON --start
tjm view
Displays job file as it is saved on the cluster.
teraslice-cli tjm view JOB.JSON
tjm workers
Adjusts the number of workers for a job. Only accepts add, remove and total. Total will add or remove workers accordingly to get to the number specified.
teraslice-cli tjm workers add 10 JOB.JSON
teraslice-cli tjm workers remove 5 JOB.JSON
teraslice-cli tjm workers total 50 JOB.JSON
tjm delete
Delete a job or jobs from a teraslice cluster by referencing the job file. Jobs must be stopped.
teraslice-cli tjm delete JOB.JSON
teraslice-cli tjm delete JOB1.JSON JOB2.JSON
Jobs
*** Job control commands start, stop, pause, resume, and restart all function with the same syntax.***
-
Providing a job_id of
all
will perform the action on all the jobs on a given cluster. -
--yes
ory
answers yes to all prompts -
When jobs are stopped or paused the state of the jobs are saved in
~/.teraslice/job_state_files
Commands:
teraslice-cli jobs <command> <cluster> [job_id | all]
# stop
teraslice-cli jobs stop local 99999999-9999-9999-9999-999999999999
# start
teraslice-cli jobs start local 99999999-9999-9999-9999-999999999999
# pause
teraslice-cli jobs pause local 99999999-9999-9999-9999-999999999999
# resume
teraslice-cli jobs resume local 99999999-9999-9999-9999-999999999999
# restart job
teraslice-cli jobs restart local 99999999-9999-9999-9999-999999999999
# restart all jobs, no prompt
teraslice-cli jobs restart local all -y
jobs await
Waits for job to reach a specified status
--status
The status to wait on, once the job gets to specified status the cli exits- defaults to stopped or completed if not specified
- can enter more than one status seperated by a space
--timeout
Time in microseconds, how long to wait for the job to reach the status- default is forever
teraslice-cli jobs await <cluster> <job_id>
teraslice-cli jobs await LOCALHOST 99999999-9999-9999-9999-999999999999
teraslice-cli jobs await LOCALHOST 99999999-9999-9999-9999-999999999999 --status running failing terminated --timeout 10000
jobs errors
List errors for a given job
--size
Limit the number of errors to display, default is100
.
teraslice-cli jobs errors <cluster> <job_id>
teraslice-cli jobs errors local 99999999-9999-9999-9999-999999999999
jobs status
Display the status of jobs on the cluster
--status
or-s
define status to display, default isrunning
and `failing.
teraslice-cli jobs status <cluster> [--status status1,status2]
# default
teraslice-cli jobs status local
# list only failed and stopped jobs
teraslice-cli jobs status local --status failed:stopped
# list only failing jobs
teraslice-cli jobs status local --status failing
jobs list
Display jobs registered on the cluster
teraslice-cli jobs list <cluster>
# list jobs
teraslice-cli jobs list local
# list only deleted jobs
teraslice-cli jobs list local --deleted=true
# list only active jobs that have not been deleted
teraslice-cli jobs list local --active=true
jobs view
Display config for a giving job in json
.
teraslice-cli jobs view <cluster> <job_id>
# view job
teraslice-cli jobs view local 99999999-9999-9999-9999-999999999999
jobs export
Export job on a cluster to a json file. By default the file is saved to the current working directory as <job.name>.json
teraslice-cli jobs export <cluster> <job_id>
# export job to current directory
teraslice-cli jobs export local 99999999-9999-9999-9999-999999999999
# export job to custom directory
teraslice-cli jobs export local 99999999-9999-9999-9999-999999999999 --outdir ~/my_jobs
jobs recover
Recover a crashed jobs
teraslice-cli jobs recover <cluster> <ex_id>
# recover job with ex id
teraslice-cli jobs recover cluster1 99999999-9999-9999-9999-999999999999
# recover job with ex id, no prompt
teraslice-cli jobs recover cluster1 99999999-9999-9999-9999-999999999999 --yes
jobs workers
Adds to or removes workers from a job.
teraslice-cli jobs workers add 5 cluster1 99999999-9999-9999-9999-999999999999
teraslice-cli jobs workers remove 5 cluster1 99999999-9999-9999-9999-999999999999
jobs delete
Delete a job or jobs by job_id from a teraslice cluster. Jobs must be in a terminal state.
teraslice-cli jobs delete <cluster> <job_id>
# delete a job
teraslice-cli jobs delete cluster1 99999999-9999-9999-9999-999999999999
# delete all stopped jobs on a cluster, no prompt. Active jobs will be skipped.
teraslice-cli jobs delete cluster1 all -y
Executions
ex errors
List errors for a given execution id.
--size
Limit the number of errors to display, default is100
.
teraslice-cli ex errors <cluster> <ex_id>
teraslice-cli ex errors local 99999999-9999-9999-9999-999999999999
ex status
Display the status of jobs on the cluster
--status
or-s
define status to display, default isrunning
andfailing
.
teraslice-cli ex status <cluster> [--status status1,status2]
# default
teraslice-cli ex status local
# list only failed and stopped jobs
teraslice-cli ex status local --status failed,stopped
# list only failing jobs
teraslice-cli jobs status local --status failing
ex list
Display execution ids on the cluster, default is to exclude deleted and show all statuses
teraslice-cli ex list <cluster>
# list ex_ids
teraslice-cli ex list local
# list failed ex_ids
teraslice-cli ex list local --status=failed
# list deleted ex_ids
teraslice-cli ex list local --deleted=true
Nodes
nodes list
List nodes in a cluster
teraslice-cli nodes list <cluster>
teraslice-cli nodes list local
nodes controllers
List controllers in a cluster
teraslice-cli controllers list <cluster>
teraslice-cli controllers list local
nodes stats
Shows stats for controllers in a cluster
teraslice-cli controllers stats <cluster>
teraslice-cli controllers stats local