aboutsummaryrefslogtreecommitdiffstats
path: root/kud/tests/_functions.sh
diff options
context:
space:
mode:
Diffstat (limited to 'kud/tests/_functions.sh')
-rwxr-xr-xkud/tests/_functions.sh50
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