According to test logs, grace time could be 3m56s,
and it will be converted to 21305s by wrongly which
caused timeout of test sytem.
Actually, grace time could be something like 1w2d3h4m5s
Fix calculations for this.
Test-Parameters: trivial testlist=sanity-quota
Signed-off-by: Wang Shilong <wshilong@ddn.com>
Change-Id: I1c02e83f5ec15de2a4a6b312dd6e36b55dd4a7bc
Reviewed-on: https://review.whamcloud.com/41259
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Jian Yu <yujian@whamcloud.com>
Reviewed-by: James Nunez <jnunez@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
case $flavour in
block)
time=$(lfs quota -$qtype $qarg $parg $DIR|
case $flavour in
block)
time=$(lfs quota -$qtype $qarg $parg $DIR|
- awk 'NR == 3{ print $5 }'| sed 's/s$//')
+ awk 'NR == 3{ print $5 }')
;;
file)
time=$(lfs quota -$qtype $qarg $DIR|
;;
file)
time=$(lfs quota -$qtype $qarg $DIR|
- awk 'NR == 3{ print $9 }'| sed 's/s$//')
+ awk 'NR == 3{ print $9 }')
;;
*)
error "Unknown quota type: $flavour"
;;
esac
;;
*)
error "Unknown quota type: $flavour"
;;
esac
+ local sleep_seconds=0
+ local orig_time=$time
+
+ echo "Grace time is $time"
# from lfs.c:__sec2str()
# const char spec[] = "smhdw";
# {1, 60, 60*60, 24*60*60, 7*24*60*60};
# from lfs.c:__sec2str()
# const char spec[] = "smhdw";
# {1, 60, 60*60, 24*60*60, 7*24*60*60};
- [[ $time == *m* ]] && time=${time//m/} && time=$((time*60));
- [[ $time == *h* ]] && time=${time//h/} && time=$((time*60*60));
- [[ $time == *d* ]] && time=${time//d/} && time=$((time*24*60*60));
- [[ $time == *w* ]] && time=${time//w/} && time=$((time*7*24*60*60));
+ [[ $time == *w* ]] && w_time=${time%w*} &&
+ let sleep_seconds+=$((w_time*7*24*60*60));
+ time=${time#*w}
+ [[ $time == *d* ]] && d_time=${time%d*} &&
+ let sleep_seconds+=$((d_time*24*60*60));
+ time=${time#*d}
+ [[ $time == *h* ]] && h_time=${time%h*} &&
+ let sleep_seconds+=$((h_time*60*60));
+ time=${time#*h}
+ [[ $time == *m* ]] && m_time=${time%m*} &&
+ let sleep_seconds+=$((m_time*60));
+ time=${time#*m}
+ [[ $time == *s* ]] && s_time=${time%s*} &&
+ let sleep_seconds+=$s_time
echo "Sleep through grace ..."
echo "Sleep through grace ..."
+ [ "$orig_time" == "-" ] &&
error "Grace timeout was not set or quota not exceeded"
error "Grace timeout was not set or quota not exceeded"
- if [ "$time" == "none" ]; then
+ if [ "$orig_time" == "none" ]; then
echo "...Grace timeout already expired"
else
echo "...Grace timeout already expired"
else
- let time+=$extrasleep
- echo "...sleep $time seconds"
- sleep $time
+ let sleep_seconds+=$extrasleep
+ echo "...sleep $sleep_seconds seconds"
+ sleep $sleep_seconds