1
0
mirror of https://github.com/rancher/os.git synced 2025-05-05 22:56:21 +00:00

Add retry mechanism to os-subscriber

This commit is contained in:
Jason-ZW 2019-07-17 09:28:38 +08:00 committed by niusmallnan
parent 2221445ffe
commit 0e22f6f06f

View File

@ -3,46 +3,59 @@ set -e -x
gateway_address="http://ros.rancher.io/gateway" gateway_address="http://ros.rancher.io/gateway"
_sigProcess() { sigProcess() {
echo "SIGINT/SIGTERM signal..." echo "SIGINT/SIGTERM signal..."
kill -9 $$ kill -9 $$
} }
trap _sigProcess SIGINT SIGKILL SIGTERM trap sigProcess SIGINT SIGKILL SIGTERM
__read_policy() { read_policy() {
policy=`ros c get rancher.upgrade.policy` policy=`ros c get rancher.upgrade.policy`
if [ -z $policy ]; then if [[ -z ${policy} ]]; then
echo "can not read upgrade.policy" echo "can not read upgrade.policy"
exit 1 return 1
fi fi
return $(($policy)) return $(($policy))
} }
__report_activity() { report_activity() {
arch=`uname -m` arch=`uname -m`
uuid=`cat /sys/class/dmi/id/product_uuid || true` uuid=`cat /sys/class/dmi/id/product_uuid || true`
release=`ros -v | awk '{print $2}'` release=`ros -v | awk '{print $2}'`
response=`wget --server-response ${gateway_address}/report --header 'Accept: application/json' --header 'Content-type: application/json' --header "arch: $arch" --header "uuid: $uuid" --header "release: $release" 2>&1 | awk '/^ HTTP/{print $2}'` response=`wget --server-response ${gateway_address}/report --header 'Accept: application/json' --header 'Content-type: application/json' --header "arch: $arch" --header "uuid: $uuid" --header "release: $release" 2>&1 | awk '/^ HTTP/{print $2}'`
if [ $response -ge 200 -a $response -le 300 ]; then if [[ -n ${response} && ${response} -ge 200 && ${response} -le 300 ]]; then
echo "report activity success" echo "report activity success"
else else
echo "report activity failed" echo "report activity failed"
return 1
fi fi
} }
__upgrade_operate() { upgrade_operate() {
recommend_version=`wget ${gateway_address}/version -q -O -` recommend_version=`wget ${gateway_address}/version -q -O -`
case $policy in case ${policy} in
download) download)
echo "upgrade.policy is 'download'" echo "upgrade.policy is 'download'"
__report_activity report_activity
system-docker pull $recommend_version if [[ ${recommend_version} ]];
then
system-docker pull ${recommend_version}
else
echo "pull recommend image failed"
return 1
fi
;; ;;
auto) auto)
echo "upgrade.policy is 'auto'" echo "upgrade.policy is 'auto'"
__report_activity report_activity
ros os upgrade -i $recommend_version -f if [[ ${recommend_version} ]];
then
ros os upgrade -i ${recommend_version} -f
else
echo "execute ros os upgrade failed"
return 1
fi
;; ;;
none) none)
echo "upgrade.policy is 'none'" echo "upgrade.policy is 'none'"
@ -53,6 +66,12 @@ __upgrade_operate() {
esac esac
} }
__read_policy read_policy
__upgrade_operate n=0
until [[ ${n} -ge 5 ]]
do
upgrade_operate && break
n=$[$n+1]
sleep 5
done