diff options
Diffstat (limited to 'kud/tests/_functions.sh')
-rwxr-xr-x | kud/tests/_functions.sh | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/kud/tests/_functions.sh b/kud/tests/_functions.sh index 7687f3fa..720470eb 100755 --- a/kud/tests/_functions.sh +++ b/kud/tests/_functions.sh @@ -88,6 +88,37 @@ function call_api { fi } +function call_api_nox { + # this version doesn't exit the script if there's + # an error. + + #Runs curl with passed flags and provides + #additional error handling and debug information + + #Function outputs server response body + #and performs validation of http_code + + local status + local curl_response_file="$(mktemp -p /tmp)" + local curl_common_flags=(-s -w "%{http_code}" -o "${curl_response_file}") + local command=(curl "${curl_common_flags[@]}" "$@") + + echo "[INFO] Running '${command[@]}'" >&2 + if ! status="$("${command[@]}")"; then + echo "[ERROR] Internal curl error! '$status'" >&2 + cat "${curl_response_file}" + rm "${curl_response_file}" + else + echo "[INFO] Server replied with status: ${status}" >&2 + if [[ "${status:0:1}" =~ [45] ]]; then + cat "${curl_response_file}" + else + cat "${curl_response_file}" | jq . + fi + rm "${curl_response_file}" + fi +} + function delete_resource { #Issues DELETE http call to provided endpoint #and further validates by following GET request @@ -216,6 +247,25 @@ function wait_for_deployment { done } +# wait_for_deployment_status() - Wait until the deployment intent group is the specified status +function wait_for_deployment_status { + #Example usage: + # wait_for_deployment_status {base-url-orchestrator}/projects/{project-name}/composite-apps/{composite-app-name}/{composite-app-version}/deployment-intent-groups/{deployment-intent-group-name}/status Instantiated + if [ "$#" -ne 2 ]; then + echo "Usage: wait_for_deployment_status URL STATUS" + exit 1 + fi + for try in {0..59}; do + sleep 1 + new_phase="$(call_api $1 | jq -r .status)" + echo "$(date +%H:%M:%S) - Filter=[$*] : $new_phase" + if [[ "$new_phase" == "$2" ]]; then + return 0 + fi + done + exit 1 +} + # setup() - Base testing setup shared among functional tests function setup { if ! $(kubectl version &>/dev/null); then |