mirror of
https://github.com/ceph/ceph-csi.git
synced 2024-11-23 06:40:23 +00:00
1cb2eef010
In ./deploy/jjb.sh line 11: oc get pod/${1} --no-headers -o=jsonpath='{.status.phase}' ^--^ SC2086: Double quote to prevent globbing and word splitting. In ./deploy/jjb.sh line 29: cd $(dirname ${0}) ^----------------^ SC2164: Use 'cd ... || exit' or 'cd ... || return' in case cd fails. ^-------------^ SC2046: Quote this to prevent word splitting. ^--^ SC2086: Double quote to prevent globbing and word splitting. In ./deploy/jjb.sh line 31: oc create -f jjb-${CMD}.yaml ^----^ SC2086: Double quote to prevent globbing and word splitting. In ./deploy/jjb.sh line 36: jjb_pod=$(oc get pods --no-headers -l job-name=jjb-${CMD} -o=jsonpath='{.items[0].metadata.name}') ^----^ SC2086: Double quote to prevent globbing and word splitting. In ./deploy/jjb.sh line 37: [ ${?} = 0 ] && [ -n "${jjb_pod}" ] && break ^--^ SC2181: Check exit code directly with e.g. 'if mycmd;', not indirectly with $?. In ./deploy/jjb.sh line 46: [ ${?} = 0 ] && ( [ "${status}" = "Succeeded" ] || [ "${status}" = "Failed" ] ) && break ^--^ SC2181: Check exit code directly with e.g. 'if mycmd;', not indirectly with $?. ^-- SC2235: Use { ..; } instead of (..) to avoid subshell overhead. In ./deploy/jjb.sh line 54: oc delete --wait -f jjb-${CMD}.yaml ^----^ SC2086: Double quote to prevent globbing and word splitting. Signed-off-by: Niels de Vos <ndevos@redhat.com>
66 lines
1.4 KiB
Bash
Executable File
66 lines
1.4 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# Create a new Job in OCP that runs the jbb-validate container once. This
|
|
# script will wait for completion of the validation, and uses the result of the
|
|
# container to report the status.
|
|
#
|
|
|
|
# error out in case a command fails
|
|
set -e
|
|
|
|
CMD="${1}"
|
|
|
|
get_pod_status() {
|
|
oc get "pod/${1}" --no-headers -o=jsonpath='{.status.phase}'
|
|
}
|
|
|
|
case "${CMD}" in
|
|
"validate")
|
|
;;
|
|
"deploy")
|
|
;;
|
|
*)
|
|
echo "no such command: ${CMD}"
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
# make sure there is a valid OCP session
|
|
oc version
|
|
|
|
# the deploy directory where this script is located, contains files we need
|
|
cd "$(dirname "${0}")"
|
|
|
|
oc create -f "jjb-${CMD}.yaml"
|
|
|
|
# loop until pod is available
|
|
while true
|
|
do
|
|
jjb_pod=$(oc get pods --no-headers -l "job-name=jjb-${CMD}" -o=jsonpath='{.items[0].metadata.name}')
|
|
ret=${?}
|
|
|
|
# break the loop when the command returned success and jjb_pod is not empty
|
|
[ ${ret} = 0 ] && [ -n "${jjb_pod}" ] && break
|
|
sleep 1
|
|
done
|
|
|
|
# loop until the pod has finished
|
|
while true
|
|
do
|
|
status=$(get_pod_status "${jjb_pod}")
|
|
ret=${?}
|
|
|
|
# TODO: is Running as a status sufficient, did it terminate yet?
|
|
[ ${ret} = 0 ] && { [ "${status}" = "Succeeded" ] || [ "${status}" = "Failed" ]; } && break
|
|
sleep 0.5
|
|
done
|
|
|
|
# show the log of the finished pod
|
|
oc logs "${jjb_pod}"
|
|
|
|
# delete the job, so a next run can create it again
|
|
oc delete --wait -f "jjb-${CMD}.yaml"
|
|
|
|
# return the exit status of the pod
|
|
[ "${status}" = 'Succeeded' ]
|