added script to create and run a process model w/ burnettk
This commit is contained in:
parent
2e4b0a507b
commit
1a84f4802f
|
@ -0,0 +1,59 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
function error_handler() {
|
||||||
|
>&2 echo "Exited with BAD EXIT CODE '${2}' in ${0} script at line: ${1}."
|
||||||
|
exit "$2"
|
||||||
|
}
|
||||||
|
trap 'error_handler ${LINENO} $?' ERR
|
||||||
|
set -o errtrace -o errexit -o nounset -o pipefail
|
||||||
|
|
||||||
|
script_dir="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"
|
||||||
|
|
||||||
|
if [[ -z "${KEYCLOAK_BASE_URL:-}" ]]; then
|
||||||
|
export KEYCLOAK_BASE_URL=https://keycloak.dev.spiffworkflow.org
|
||||||
|
fi
|
||||||
|
if [[ -z "${BACKEND_BASE_URL:-}" ]]; then
|
||||||
|
export BACKEND_BASE_URL=https://api.dev.spiffworkflow.org
|
||||||
|
fi
|
||||||
|
|
||||||
|
process_model_identifier="${1:-}"
|
||||||
|
username="${2:-admin}"
|
||||||
|
password="${3:-admin}"
|
||||||
|
realm_name="${4:-spiffworkflow}"
|
||||||
|
if [[ -z "${1:-}" ]]; then
|
||||||
|
>&2 echo "usage: $(basename "$0") [process_model_identifier] [username: OPTONAL] [password: OPTONAL] [realm_name: OPTONAL]"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
modified_process_model_identifier=$(tr '/' ':' <<<"$process_model_identifier")
|
||||||
|
|
||||||
|
function process_next_task() {
|
||||||
|
local next_task="$1"
|
||||||
|
|
||||||
|
if [[ -n "$next_task" && "$next_task" != "null" ]]; then
|
||||||
|
task_type=$(jq -r '.type' <<<"$next_task")
|
||||||
|
task_state=$(jq -r '.state' <<<"$next_task")
|
||||||
|
task_guid=$(jq -r '.id' <<<$"$next_task")
|
||||||
|
|
||||||
|
if grep -qE "Manual ?Task" <<<"$task_type" && [[ "${task_state}" == "READY" ]]; then
|
||||||
|
next_task=$(curl --silent -X PUT "${BACKEND_BASE_URL}/v1.0/tasks/${process_instance_id}/${task_guid}" -H "Authorization: Bearer $access_token")
|
||||||
|
process_next_task "$next_task"
|
||||||
|
elif [[ "$(jq '.ok' <<<"$next_task")" == "null" ]]; then
|
||||||
|
echo -e "\n\nThe next task is not a Manual Task and requires user input. It must be completed manually."
|
||||||
|
echo "$next_task"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
access_token=$("${script_dir}/get_token" "$username" "$password" "$realm_name")
|
||||||
|
curl --silent -X POST "${BACKEND_BASE_URL}/v1.0/login_with_access_token?access_token=${access_token}" -H "Authorization: Bearer $access_token" >/dev/null
|
||||||
|
result=$(curl --silent -X POST "${BACKEND_BASE_URL}/v1.0/process-instances/${modified_process_model_identifier}" -H "Authorization: Bearer $access_token")
|
||||||
|
process_instance_id=$(jq '.id' <<<"$result")
|
||||||
|
if ! grep -qE '^[0-9]+$' <<<"$process_instance_id"; then
|
||||||
|
>&2 echo "ERROR: Did not receive valid process instance id when instantiating process model. result was ${result}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
result=$(curl --silent -X POST "${BACKEND_BASE_URL}/v1.0/process-instances/${modified_process_model_identifier}/${process_instance_id}/run" -H "Authorization: Bearer $access_token")
|
||||||
|
next_task=$(jq '.next_task' <<<"$result")
|
||||||
|
process_next_task "$next_task"
|
Loading…
Reference in New Issue