milvus/tests/python_client/deploy/utils.sh
zhuwenxing 99cbaccdf1
[skip e2e]Update the method to check health for deploy (#17359)
Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
2022-06-03 17:14:04 +08:00

57 lines
1.8 KiB
Bash

#!/bin/bash
function replace_image_tag {
image_repo=$1
image_tag=$2
image_repo=${image_repo//\//\\\/}
platform='unknown'
unamestr=$(uname)
if [[ "$unamestr" == 'Linux' ]]; then
platform='Linux'
elif [[ "$unamestr" == 'Darwin' ]]; then
platform='Mac'
fi
echo "before replace: "
cat docker-compose.yml | grep milvusdb
if [[ "$platform" == "Mac" ]];
then
# for mac os
echo "replace image tag for mac start"
sed -i "" "s/milvusdb.*/${image_repo}\:${image_tag}/g" docker-compose.yml
echo "replace image tag for mac done"
else
#for linux os
sed -i "s/milvusdb.*/${image_repo}\:${image_tag}/g" docker-compose.yml
fi
echo "after replace: "
cat docker-compose.yml | grep milvusdb
}
#to check containers all running and minio is healthy
function check_healthy {
Expect=$(yq '.services | length' 'docker-compose.yml')
Expect_health=$(yq '.services' 'docker-compose.yml' |grep 'healthcheck'|wc -l)
cnt=$(docker-compose ps | grep -E "running|Running|Up|up" | wc -l)
healthy=$(docker-compose ps | grep "healthy" | wc -l)
time_cnt=0
echo "running num $cnt expect num $Expect"
echo "healthy num $healthy expect num $Expect_health"
while [[ $cnt -ne $Expect || $healthy -ne 1 ]];
do
printf "waiting all containers getting running\n"
sleep 5
let time_cnt+=5
# if time is greater than 300s, the condition still not satisfied, we regard it as a failure
if [ $time_cnt -gt 300 ];
then
printf "timeout,there are some issues with deployment!"
exit 1
fi
cnt=$(docker-compose ps | grep -E "running|Running|Up|up" | wc -l)
healthy=$(docker-compose ps | grep "healthy" | wc -l)
echo "running num $cnt expect num $Expect"
echo "healthy num $healthy expect num $Expect_health"
done
}