summaryrefslogtreecommitdiffstats
path: root/tests/tier.rc
blob: 88acdc791ebda9eefc82980959324ef5298dcd68 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
#!/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
}