eb013e4c18
problem: detach commit was issues before detach start was completed. fix: wait for detach start to finish and then detach commit. Change-Id: I639962be6de6dbd1512f0a5617050d1e6872eac8 BUG: 1517961 Signed-off-by: hari gowtham <hgowtham@redhat.com>
160 lines
3.3 KiB
Bash
160 lines
3.3 KiB
Bash
#!/bin/bash
|
|
|
|
# Common tier functions
|
|
|
|
# Check if a file is being migrated
|
|
# by checking for the presence of
|
|
# the sticky bit
|
|
# Args: $1 : path to file
|
|
|
|
function is_sticky_set () {
|
|
echo $1
|
|
if [ -k $1 ];
|
|
then
|
|
echo "yes"
|
|
else
|
|
echo "no"
|
|
fi
|
|
}
|
|
|
|
|
|
function exists_and_regular_file () {
|
|
filepath=$1
|
|
if [ -n "$filepath" ];
|
|
then
|
|
if [ -k "$filepath" ]
|
|
then
|
|
echo "no"
|
|
else
|
|
echo "yes"
|
|
fi
|
|
else
|
|
echo "no"
|
|
fi
|
|
}
|
|
|
|
|
|
function check_counters {
|
|
index=0
|
|
ret=0
|
|
rm -f /tmp/tc*.txt
|
|
echo "0" > /tmp/tc2.txt
|
|
$CLI volume tier $V0 status | grep localhost > /tmp/tc.txt
|
|
|
|
promote=`cat /tmp/tc.txt |awk '{print $2}'`
|
|
demote=`cat /tmp/tc.txt |awk '{print $3}'`
|
|
if [ "${promote}" != "${1}" ]; then
|
|
echo "1" > /tmp/tc2.txt
|
|
|
|
elif [ "${demote}" != "${2}" ]; then
|
|
echo "2" > /tmp/tc2.txt
|
|
fi
|
|
|
|
# temporarily disable non-Linux tests.
|
|
case $OSTYPE in
|
|
NetBSD | FreeBSD | Darwin)
|
|
echo "0" > /tmp/tc2.txt
|
|
;;
|
|
esac
|
|
cat /tmp/tc2.txt
|
|
}
|
|
|
|
|
|
function detach_start {
|
|
$CLI volume tier $1 detach start
|
|
echo $?;
|
|
}
|
|
|
|
|
|
# Grab md5sum without file path (failed attempt notifications are discarded)
|
|
function fingerprint {
|
|
md5sum $1 2> /dev/null | grep --only-matching -m 1 '^[0-9a-f]*'
|
|
}
|
|
|
|
|
|
|
|
# Create a large number of files in the current directory.
|
|
# $1 : file name prefix. Will create files $2-1 to $2-$3
|
|
# $2 : number of files
|
|
|
|
function create_many_files {
|
|
filename=$1
|
|
num=$2
|
|
|
|
for i in `seq 1 $num`; do
|
|
dd if=/dev/urandom of=./${dirname}/${filename}$i bs=104857 count=1;
|
|
done
|
|
}
|
|
|
|
|
|
function confirm_tier_removed {
|
|
$CLI system getspec $V0 | grep $1
|
|
if [ $? == 0 ]; then
|
|
echo "1"
|
|
else
|
|
echo "0"
|
|
fi
|
|
}
|
|
|
|
function confirm_vol_stopped {
|
|
$CLI volume stop $1
|
|
if [ $? == 0 ]; then
|
|
echo "0"
|
|
else
|
|
echo "1"
|
|
fi
|
|
}
|
|
|
|
|
|
function sleep_first_cycle {
|
|
startTime=$(date +%s)
|
|
mod=$(( ( $startTime % $1 ) + 1 ))
|
|
sleep $mod
|
|
}
|
|
|
|
function sleep_until_mid_cycle {
|
|
startTime=$(date +%s)
|
|
mod=$(( ( $startTime % $1 ) + 1 ))
|
|
mod=$(( $1 - $mod ))
|
|
mod=$(( $mod + $1 / 2 ))
|
|
sleep $mod
|
|
}
|
|
|
|
function tier_daemon_check () {
|
|
pgrep -f "tierd/$V0"
|
|
echo "$?"
|
|
}
|
|
|
|
function rebalance_run_time () {
|
|
local time=$($CLI volume tier $1 status | awk '{print $6}' | sed -n 3p);
|
|
local hh=$(echo $time | cut -d ':' -f1);
|
|
local mm=$(echo $time | cut -d ':' -f2);
|
|
local ss=$(echo $time | cut -d ':' -f3);
|
|
local total=$(($hh * 3600 + $mm * 60 + $ss));
|
|
echo $total;
|
|
}
|
|
|
|
function tier_detach_commit () {
|
|
$CLI_1 volume tier $V0 detach commit | grep "success" | wc -l
|
|
}
|
|
|
|
function tier_detach_status_node_down () {
|
|
$CLI_1 volume tier $V0 detach status | grep "WARNING" | wc -l
|
|
}
|
|
|
|
function tier_status_node_down () {
|
|
$CLI_1 volume tier $V0 status | grep "WARNING" | wc -l
|
|
}
|
|
|
|
function tier_detach_status () {
|
|
$CLI_1 volume tier $V0 detach status | grep "success" | wc -l
|
|
}
|
|
|
|
function wait_for_tier_start () {
|
|
sleep 5
|
|
}
|
|
|
|
function tier_detach_commit_for_single_node () {
|
|
$CLI volume tier $V0 detach commit | grep "success" | wc -l
|
|
}
|