glusterfs/tests/tier.rc
hari gowtham eb013e4c18 tests: fix for bug-1260185-donot-allow-detach-commit-unnecessarily.t failure
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>
2017-11-30 10:15:10 +00:00

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
}