#!/bin/bash

set -eux

function create_import() {
	project_id=$1
	cluster_id=$2
	create_req=$3
	curl_output=$(curl -X POST --location "https://api.${ENV}.tidbcloud.com/api/v1beta/projects/${project_id}/clusters/${cluster_id}/imports" \
		-H "Content-Type: application/json" \
		--digest --silent --user "${API_AK}:${API_SK}" \
		--data-raw "${create_req}")
	echo "${curl_output}" | jq -r '.id'
}

function get_import() {
	project_id=$1
	cluster_id=$2
	import_id=$3
	curl -X GET --location "https://api.${ENV}.tidbcloud.com/api/v1beta/projects/${project_id}/clusters/${cluster_id}/imports/${import_id}" \
		-H "Content-Type: application/json" \
		--digest --silent --user "${API_AK}:${API_SK}"
}

function get_import_status() {
	get_import_output=$(get_import "$@")
	echo "${get_import_output}" | jq -r '.status.phase'
}

function wait_import_completed() {
	for i in {1..15}; do
		echo "get import $i time:"
		import_status=$(get_import_status "$@")

		case "${import_status}" in
		"COMPLETED")
			echo "import completed"
			return 0
			;;
		"PREPARING" | "IMPORTING")
			# continue to wait
			sleep 20
			;;
		*)
			echo "import has an abnormal status: ${import_status}"
			return 1
			;;
		esac
	done
}
