You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 14 Next »

Introduction

  • The JS7 offers to perform any operation on orders, workflows, jobs and related objects by the JS7 - REST Web Service API.
  • The REST Web Service API can be accessed from Shell utilities such as curl.
  • In addition, a PowerShell module is available for simplified access to the REST Web Service API. This is described in the JS7 - PowerShell Module article.

The Job Resource Update Script introduced in this article can be used to update variables in JS7 - Job Resources.

The script can be considered an alternative for use of the respective JS7 PowerShell cmdlets, see JS7 - How to make a global Business Date variable available to jobs.

Job Resource Update Script

The Job Resource Update Script is provided for download and can be used to automate updates of job resources.

  • The script is available for Linux and MacOS® using bash, dash, ksh and zsh POSIX-compatible shells.
  • The script terminates with exit code 0 to signal success, with exit code 1 for command line argument errors and with exit code 4 for non-recoverable errors.
  • The script is intended as a baseline example for customization by JS7 users and by SOS within the scope of professional services.

Prerequisites

The Job Resource Update Script requires the jq utility to be available from the operating system. 

jq is ships with the MIT license, see https://opensource.org/licenses/MIT.

Download

Download: set_job_resource.sh

Usage

Invoking the script without arguments displays the usage clause:


Usage
Usage: set_job_resource.sh [Options] [Switches]

  Options:
    --url=<url>                   | required: JOC Cockpit URL
    --controller-id=<identifier>  | required: Controller ID
    --job-resource=<path>         | required: path to job resource
    --key=<identifier>            | required: name of variable in job resource
    --value=<string>              | required: value of variable in job resource
    --user=<account>[:<password>] | optional: user account for login to JOC Cockpit, use <account> or <account>:<password>
    --cacert=<path>               | optional: path to Root CA Certificate for HTTPS connections
    --client-cert=<path>          | optional: path to Client Certificate for HTTPS mutual authentication
    --client-key=<path>           | optional: path to Client Private Key for HTTPS mutual authentication
    --log-dir=<directory>         | optional: log directory for log output of this script

  Switches:
    -h | --help                   | displays usage
    -v | --verbose                | shows verbose log output
    --show-logs                   | shows log output if --log-dir is used
    --make-dirs                   | creates directories if they do not exist

Options

  • --url
  • --controller-id
    • Specifies the Controller ID to which the updated job resource should be deployed.
  • --job-resource
    • Specifies the path to the job resource in the JOC Cockpit inventory.
  • --key
    • Specifies the name of the variable in the job resource specified with the --job-resource option.
    • Job Resource variables are case-sensitive.
  • --value
    • Specifies the value of the variable in the job resource specified with the --job-resource option.
  • --user
    • Specifies the user account for login to JOC Cockpit. Specification of the user account can be omitted if a JS7 - Identity Services is available for Client authentication certificates that are specified with the --client-cert and --client-key options.
    • --user=<account> can be specified to cause the password to be prompted.
    • --user=<account>:<password> can be specified.
  • --cacert
    • Specifies the path to a .pem file that holds the Root CA Certificate and optionally Intermediate CA Certificates to verify HTTPS connections to JOC Cockpit.
  • --client-cert
    • Specifies the path to a .pem file that holds the Client Certificate if HTTPS mutual authentication is used..
  • --client-key
    • Specifies the path to a .pem file that holds the Client Privae Key if HTTPS mutual authentication is used..
  • --log-dir
    • If a log directory is specified then the script will log information about processing steps to a log file in this directory.
    • File names are created according to the pattern: set_job_resource.<yyyy>-<MM>-<dd>T<hh>-<mm>-<ss>.log
    • For example: set_job_resource.2022-03-19T20-50-45.log

Switches

  • -h | --help
    • Displays usage.
  • -v | --verbose
    • Displays verbose log output.
  • --show-logs
    • Displays the log output created by the script if the --log-dir option is used.
  • --make-dirs
    • If directories are missing that are indicated with the --home, --backup-dir or --log-dir options then they will be created.

Exit Codes

  • 1: argument errors
  • 4: this exit code is returned if the JS7 REST Web Service is not reachable or reports errors

Examples

The following examples illustrate typical use cases.

Update Job Resource from HTTP Connection

Example for Update of a Job Resource Variable
./set_job_resource.sh \
    --url=http://joc-2-0-primary:7446 \
    --controller-id=controller \
    --user=root:root \
    --job-resource=/ProductDemo/Variables/pdBusinessDate \
    --key=businessDate \
    --value=$(date +'%Y-%m-%d')

# updates the job resource variable "businessDate" from the current date
# the connection to JOC Cockpit is established by HTTP

Update Job Resource from HTTPS Connection

Example for Update of a Job Resource Variable
./set_job_resource.sh \
    --url=https://joc-2-0-primary:7446 \
    --cacert=/home/sos/jstest/certs/root-ca.pem \
    --controller-id=controller \
    --user=root:root \
    --job-resource=/ProductDemo/Variables/pdBusinessDate \
    --key=businessDate \
    --value=$(date +'%Y-%m-%d')

# updates the job resource variable "businessDate" from the current date
# the connection to JOC Cockpit is established by HTTPS and the Root CA Certificate is specified from the path to a .pem file




  • No labels