summaryrefslogtreecommitdiffstats
path: root/tests/features/nuke.t
blob: ad9479ffaa5d95c08c594cbc1aa11f0e8bd1dca7 (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
#!/bin/bash

. $(dirname $0)/../include.rc

create_files () {
	mkdir $1
	for i in $(seq 0 99); do
		mkdir $1/dir$i
		for j in $(seq 0 99); do
			touch $1/dir$i/file$j
		done
	done
}

count_files () {
	ls $1 | wc -l
}

LANDFILL=$B0/${V0}1/.glusterfs/landfill

TEST glusterd

TEST $CLI volume create $V0 $H0:$B0/${V0}1
TEST $CLI volume start $V0
TEST $GFS -s $H0 --volfile-id $V0 $M0

TEST create_files $M0/foo
TEST [ $(count_files $LANDFILL) = "0" ]

# This should immediately send the whole directory to the landfill.
TEST setfattr -n glusterfs.dht.nuke -v trinity $M0/foo

# Make sure the directory's not visible on the mountpoint, and is visible in
# the brick's landfill.
TEST ! ls $M0/foo
TEST [ $(count_files $LANDFILL) = "1" ]

# Make sure the janitor thread cleans it up in a timely fashion.
EXPECT_WITHIN 20 "0" count_files $LANDFILL

cleanup