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:
parent
2221445ffe
commit
0e22f6f06f
@ -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
|
Loading…
Reference in New Issue
Block a user