glusterfs
103 строки · 2.7 Кб
1#!/bin/bash
2
3. $(dirname $0)/../../include.rc
4. $(dirname $0)/../../volume.rc
5. $(dirname $0)/../../nfs.rc
6
7#G_TESTDEF_TEST_STATUS_CENTOS6=NFS_TEST
8
9create_files () {
10for i in {1..10}; do
11orig=$(printf %s/file%04d $1 $i)
12echo "This is file $i" > $orig
13done
14for i in {1..10}; do
15mkdir $(printf %s/dir%04d $1 $i)
16done
17sync
18}
19
20create_dirs () {
21for i in {1..10}; do
22mkdir $(printf %s/dir%04d $1 $i)
23create_files $(printf %s/dir%04d $1 $i)
24done
25sync
26}
27
28stat_files () {
29for i in {1..10}; do
30orig=$(printf %s/file%04d $1 $i)
31stat $orig
32done
33for i in {1..10}; do
34stat $(printf %s/dir%04d $1 $i)
35done
36sync
37}
38
39stat_dirs () {
40for i in {1..10}; do
41stat $(printf %s/dir%04d $1 $i)
42stat_files $(printf %s/dir%04d $1 $i)
43done
44sync
45}
46
47cleanup;
48
49TEST glusterd
50TEST pidof glusterd
51TEST $CLI volume info;
52
53TEST $CLI volume create $V0 replica 2 $H0:$B0/${V0}{1,2,3,4};
54
55EXPECT "$V0" volinfo_field $V0 'Volume Name';
56EXPECT 'Created' volinfo_field $V0 'Status';
57EXPECT '4' brick_count $V0
58
59TEST $CLI volume set $V0 nfs.disable false
60TEST $CLI volume start $V0;
61EXPECT 'Started' volinfo_field $V0 'Status';
62
63EXPECT_WITHIN $NFS_EXPORT_TIMEOUT "1" is_nfs_export_available;
64TEST mount_nfs $H0:/$V0 $N0
65
66# Create and poulate the NFS inode tables
67TEST create_dirs $N0
68TEST stat_dirs $N0
69
70# add-bricks changing the state of the volume where some bricks
71# would have some directories and others would not
72TEST $CLI volume add-brick $V0 replica 2 $H0:$B0/${V0}{5,6,7,8}
73
74# Post this dht_access was creating a mess for directories which is fixed
75# with this commit. The issues could range from getting ENOENT or
76# ESTALE or entries missing to directories not having complete
77# layouts.
78TEST cd $N0
79TEST ls -lR
80
81TEST $CLI volume rebalance $V0 start force
82EXPECT_WITHIN $REBALANCE_TIMEOUT "completed" rebalance_status_field $V0
83
84# tests to check post rebalance if layouts and entires are fine and
85# accessible by NFS to clear the volume
86TEST ls -lR
87rm -rf ./*
88# There are additional bugs where NFS+DHT does not delete all entries
89# on an rm -rf, so we do an additional rm -rf to ensure all is done
90# and we are facing this transient issue, rather than a bad directory
91# layout that is cached in memory
92TEST rm -rf ./*
93
94# Get out of the mount, so that umount can work
95TEST cd /
96
97EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" force_umount $N0
98TEST $CLI volume stop $V0;
99EXPECT 'Stopped' volinfo_field $V0 'Status';
100TEST $CLI volume delete $V0;
101TEST ! $CLI volume info $V0;
102
103cleanup;
104