glusterfs

Форк
0
/
bug-918437-sh-mtime.t 
71 строка · 2.4 Кб
1
#!/bin/bash
2

3
. $(dirname $0)/../../include.rc
4
. $(dirname $0)/../../volume.rc
5

6
function get_mtime {
7
        local f=$1
8
        stat $f | grep Modify | awk '{print $2 $3}' | cut -f1 -d'.'
9
}
10

11
function file_exists {
12
        if [ -f $1 ]; then echo "Y"; else echo "N"; fi
13
}
14
cleanup;
15

16
## Tests if mtime is correct after self-heal.
17
TEST glusterd
18
TEST pidof glusterd
19
TEST mkdir -p $B0/gfs0/brick0{1,2}
20
TEST $CLI volume create $V0 replica 2 transport tcp $H0:$B0/gfs0/brick01 $H0:$B0/gfs0/brick02
21
TEST $CLI volume set $V0 nfs.disable on
22
TEST $CLI volume set $V0 performance.stat-prefetch off
23
TEST $CLI volume set $V0 cluster.background-self-heal-count 0
24
TEST $CLI volume set $V0 cluster.self-heal-daemon off
25
TEST $CLI volume start $V0
26
TEST glusterfs --volfile-id=/$V0 --volfile-server=$H0 $M0 --direct-io-mode=enable
27
# file 'a' is healed from brick02 to brick01 where as file 'b' is healed from
28
# brick01 to brick02
29

30
TEST cp -p /etc/passwd $M0/a
31
TEST cp -p /etc/passwd $M0/b
32

33
#Store mtimes before self-heals
34
TEST modify_atstamp=$(get_mtime $B0/gfs0/brick02/a)
35
TEST modify_btstamp=$(get_mtime $B0/gfs0/brick02/b)
36

37
TEST $CLI volume stop $V0
38
TEST gf_rm_file_and_gfid_link $B0/gfs0/brick01 a
39
TEST gf_rm_file_and_gfid_link $B0/gfs0/brick02 b
40

41
TEST $CLI volume start $V0 force
42
EXPECT_WITHIN $CHILD_UP_TIMEOUT "1" afr_child_up_status $V0 0
43
EXPECT_WITHIN $CHILD_UP_TIMEOUT "1" afr_child_up_status $V0 1
44

45
TEST $CLI volume set $V0 cluster.self-heal-daemon on
46
EXPECT_WITHIN $PROCESS_UP_TIMEOUT "Y" glustershd_up_status
47
EXPECT_WITHIN $CHILD_UP_TIMEOUT "1" afr_child_up_status_in_shd $V0 0
48
EXPECT_WITHIN $CHILD_UP_TIMEOUT "1" afr_child_up_status_in_shd $V0 1
49

50
#TODO remove these 2 lines once heal-full is fixed in v2.
51
TEST stat $M0/a
52
TEST stat $M0/b
53

54
TEST gluster volume heal $V0 full
55
EXPECT_WITHIN $HEAL_TIMEOUT "Y" file_exists $B0/gfs0/brick01/a
56
EXPECT_WITHIN $HEAL_TIMEOUT "Y" file_exists $B0/gfs0/brick02/b
57
EXPECT_WITHIN $HEAL_TIMEOUT 0 get_pending_heal_count $V0
58

59
size=`stat -c '%s' /etc/passwd`
60
EXPECT $size stat -c '%s' $B0/gfs0/brick01/a
61

62
TEST modify_atstamp1=$(get_mtime $B0/gfs0/brick01/a)
63
TEST modify_atstamp2=$(get_mtime $B0/gfs0/brick02/a)
64
EXPECT $modify_atstamp echo $modify_atstamp1
65
EXPECT $modify_atstamp echo $modify_atstamp2
66

67
TEST modify_btstamp1=$(get_mtime $B0/gfs0/brick01/b)
68
TEST modify_btstamp2=$(get_mtime $B0/gfs0/brick02/b)
69
EXPECT $modify_btstamp echo $modify_btstamp1
70
EXPECT $modify_btstamp echo $modify_btstamp2
71
cleanup;
72

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.