1
0
mirror of https://github.com/rancher/os.git synced 2025-08-26 10:19:16 +00:00
os/images/01-base/usr/bin/os-subscriber

77 lines
1.9 KiB
Plaintext
Raw Normal View History

2019-01-30 05:32:08 +00:00
#!/bin/bash
set -e -x
gateway_address="http://ros.rancher.io/gateway"
2019-07-17 01:28:38 +00:00
sigProcess() {
2019-01-30 05:32:08 +00:00
echo "SIGINT/SIGTERM signal..."
kill -9 $$
}
2019-07-17 01:28:38 +00:00
trap sigProcess SIGINT SIGKILL SIGTERM
2019-01-30 05:32:08 +00:00
2019-07-17 01:28:38 +00:00
read_policy() {
2019-01-30 05:32:08 +00:00
policy=`ros c get rancher.upgrade.policy`
2019-07-17 01:28:38 +00:00
if [[ -z ${policy} ]]; then
2019-01-30 05:32:08 +00:00
echo "can not read upgrade.policy"
2019-07-17 01:28:38 +00:00
return 1
2019-01-30 05:32:08 +00:00
fi
return $(($policy))
}
2019-07-17 01:28:38 +00:00
report_activity() {
2019-01-30 05:32:08 +00:00
arch=`uname -m`
2019-02-11 06:07:30 +00:00
uuid=`cat /sys/class/dmi/id/product_uuid || true`
2019-01-30 05:32:08 +00:00
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}'`
2019-07-17 01:28:38 +00:00
if [[ -n ${response} && ${response} -ge 200 && ${response} -le 300 ]]; then
2019-01-30 05:32:08 +00:00
echo "report activity success"
else
echo "report activity failed"
2019-07-17 01:28:38 +00:00
return 1
2019-01-30 05:32:08 +00:00
fi
}
2019-07-17 01:28:38 +00:00
upgrade_operate() {
2019-01-30 05:32:08 +00:00
recommend_version=`wget ${gateway_address}/version -q -O -`
2019-07-17 01:28:38 +00:00
case ${policy} in
2019-01-30 05:32:08 +00:00
download)
echo "upgrade.policy is 'download'"
2019-07-17 01:28:38 +00:00
report_activity
if [[ ${recommend_version} ]];
then
system-docker pull ${recommend_version}
else
echo "pull recommend image failed"
return 1
fi
2019-01-30 05:32:08 +00:00
;;
auto)
echo "upgrade.policy is 'auto'"
2019-07-17 01:28:38 +00:00
report_activity
if [[ ${recommend_version} ]];
then
ros os upgrade -i ${recommend_version} -f
else
echo "execute ros os upgrade failed"
return 1
fi
2019-01-30 05:32:08 +00:00
;;
none)
echo "upgrade.policy is 'none'"
;;
*)
echo "upgrade.policy is 'illegal'"
;;
esac
}
2019-07-17 01:28:38 +00:00
read_policy
2019-01-30 05:32:08 +00:00
2019-07-17 01:28:38 +00:00
n=0
until [[ ${n} -ge 5 ]]
do
upgrade_operate && break
n=$[$n+1]
sleep 5
done