Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Impact Check Script

The script makes use of the JS7 - Unix Shell CLI for JOC Cockpit Status Operations that offers the health-check command with the --whatif-shutdown option, see Examples for Health Checks.

The script is a stub that can be adjusted and applied for frequently used operations:

  • The script is available for Linux and MacOS® using bash shell.
  • The script terminates with exit code 0 to signal that the there will not be a fatal impact of the outage scenario, other exit codes signal fatal impact on JS7 scheduling operation.
  • The script is intended as a baseline example for customization by JS7 users and by SOS within the scope of professional services. Examples make use of JS7 Release 2.7.2, bash 4.2.

The below script checks hosts from a list - one after the next - for shutdown impact.

  • Users can limit health checks to clustered JS7 products. Shutdown of a Standalone Agent's host always has a fatal impact. Limiting health checks to clustered Agents using the --agent-cluster switch is recommended.
  • Users can improve performance
    • by checking (and later patching) more than one host at the same time, using for example: --whatif-shutdown=joc-2-0-primary joc-2-0-secondary.
    • by executing health checsks for hosts in parallel.


Code Block
languagebash
#!/bin/bash

# set common options for connection to the JS7 REST Web Service
request_options=(--url=http://joc-2-0-primary.sos:7446 --user=root --password=root --ca-cert=./root-ca.crt --controller-id=controller --agent-cluster)

# hosts to be patched
hosts=(joc-2-0-primary joc-2-0-secondary controller-2-0-primary controller-2-0-secondary diragent-2-0-primary diragent-2-0-secondary)

# max. number of tries for non-fatal problems
tries=3

# delay in seconds between retries after non-fatal problems
delay=10

for host in "${hosts[@]}"; do
    echo "--------------------------------------------------------"
    echo "CHECKING SHUTDOWN IMPACT OF HOST: $host"
    echo "--------------------------------------------------------"

    try=1
    while [ "$try" -le "$tries" ]; do
        echo ""
        echo "TRY $try/$tries: ./bin/operate-joc.sh health-check "${request_options[@]}" --whatif-shutdown=$host"
        echo ""
        ./bin/operate-joc.sh health-status "${request_options[@]}" --whatif-shutdown="$host"
        rc=$?
        echo -n ""

        case "$rc" in
            0)  break;
                ;;
            3)  sleep "$delay"
                ;;
            *)  exit "$rc"
                ;;
        esac

        try=$((try+1))
    done

    if [ "$rc" -eq 0 ]
    then
        echo "PATCH CAN BE APPLIED TO HOST: $host"
        # add your code for patching
    else
        echo "PATCH CANNOT BE APPLIED TO HOST: $host, Exit Code: $rc"
        # add your code for exiterror "$rc"handling
    fi

    echo ""
done