- Table of contents
- JobSub Client
- Client Commands
- Obtaining and Setting up the client
- Environment Variables Supported by Client Commands
- Client Command Return Codes
- Basic online help: jobsub
- Submitting a Job: jobsub_submit
- Submitting a DAG: jobsub_submit_dag
- Querying the Job Queue: jobsub_q
- Querying Job History: jobsub_history
- Retrieving job log and error files: jobsub_fetchlog
- Removing a Job: jobsub_rm
- Holding a Job: jobsub_hold
- Releasing a Job: jobsub_release
- Checking status of resources: jobsub_status
- Client Commands
JobSub Client¶
This wiki page covers jobsub version 1.2.8
To see information about the currently installed jobsub server version see https://fifebatch.fnal.gov:8443/jobsub/version/
Client Commands¶
Jobsub client commands have an option, --jobsub-server, that can be use to talk to different Jobsub servers. Unless you are using default production servers, you need to specify the address to talk to alternate Jobsub servers. Currently, following servers are deployed in the Fermilab.
Server Type | Server Address |
---|---|
Production Server (default) | https://fifebatch.fnal.gov:8443 |
Integration Test Bed Server | https://jobsub-dev.fnal.gov:8443 |
Development Server | https://jobsubdevgpvm01.fnal.gov:8443 |
Obtaining and Setting up the client¶
Refer to the "Obtaining the Client" page for info on how to get access to/setup the JobSub client commands.
Environment Variables Supported by Client Commands¶
Client commands support few environment variables as an alternative to command line options.
Variable | Client Versions | Default for Client Options | Example |
---|---|---|---|
JOBSUB_SERVER | v1.0+ | --jobsub-server | Dev: JOBSUB_SERVER="https://fifebatch-dev.fnal.gov:8443" |
JOBSUB_GROUP | v1.0+ | --group | JOBSUB_GROUP=minos |
Other environment variables that affect Jobsub client authentication
Variable | Client Versions | Explanation |
---|---|---|
X509_USER_PROXY | v0.1+ | kx509, voms-proxy-init, or grid-proxy-init generated |
default authentication method since v0.1 | ||
KRB5CCNAME | v0.1+ | users kerberos credential used for kx509 |
X509_USER_CERT | v1.1+ | use cert/key pair for service certs or for |
X509_USER_KEY | v1.1+ | digicert or other non-kx509 generated certs |
Order of env variable usage for authentication :
1. $X509_USER_PROXY
2. $X509_USER_CERT & $X509_USER_KEY
3. Default proxy location: /tmp/x509up_u<UID>
4. Kerberos ticket in $KRB5CCNAME. Convert it to proxy.
Client Command Return Codes¶
The jobsub client and server communicate via HTTP via a defined REST API. The server returns HTTP status codes to any queries, which the client commands will print out if the --debug option is set. An HTTP status code of 200 (OK) generally results in the client exiting with unix status 0. Most other HTTP return codes result in the cleint exiting with a non zero status, in keeping with unix/posix conventions. These zero/non-zero exit codes should be checked for success when using the commands in a script
Basic online help: jobsub¶
$ jobsub jobsub has been replaced with a suite of client tools listed here: jobsub_submit -- submit a job jobsub_submit_dag -- submit a dag description of jobs jobsub_status -- list OSG sites that are available to submit jobs to jobsub_q -- check status of jobs in queue (like condor_q) jobsub_hold -- hold jobs in queue jobsub_release -- release held jobs jobsub_rm -- remove jobs from queue jobsub_fetchlog -- retrieve job log files from jobsub_server jobsub_history -- check status of finished jobs (like conndor_history) all of these tools respond to the --help flag by listing their input options along with explanations for more information see
https://cdcvs.fnal.gov/redmine/projects/jobsub/wiki/Using_the_Client
Submitting a Job: jobsub_submit¶
- Using jobsub_submit to submit a job
Submitting a DAG: jobsub_submit_dag¶
- Using jobsub_submit_dag to submit a job
Querying the Job Queue: jobsub_q¶
- Using jobsub_q
Querying Job History: jobsub_history¶
- Using jobsub_history
Retrieving job log and error files: jobsub_fetchlog¶
- Using jobsub_fetchlog
Removing a Job: jobsub_rm¶
- Using jobsub_rm
Holding a Job: jobsub_hold¶
- Using jobsub_hold
Releasing a Job: jobsub_release¶
- Using jobsub_release
Checking status of resources: jobsub_status¶
- Using jobsub_status