summaryrefslogtreecommitdiffstats
path: root/tests/00-geo-rep/georep-upgrade.t
blob: 1084be482c4cc672d63f95f1eee8534ea655966a (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
#!/bin/bash

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

SCRIPT_TIMEOUT=500

###############################################################################################
#Before upgrade
###############################################################################################
brick=/bricks/brick1
epoch1=$(date '+%s')
sleep 1
epoch2=$(date '+%s')
mkdir -p /bricks/brick1/.glusterfs/changelogs/htime
mkdir -p /bricks/brick1/.glusterfs/changelogs

#multiple htime files(changelog enable/disable scenario)
TEST touch /bricks/brick1/.glusterfs/changelogs/htime/HTIME.$epoch1
TEST touch /bricks/brick1/.glusterfs/changelogs/htime/HTIME.$epoch2

#changelog files
TEST touch /bricks/brick1/.glusterfs/changelogs/CHANGELOG.$epoch1
TEST touch /bricks/brick1/.glusterfs/changelogs/CHANGELOG.$epoch2

htime_file1=/bricks/brick1/.glusterfs/changelogs/htime/HTIME.$epoch1
htime_file2=/bricks/brick1/.glusterfs/changelogs/htime/HTIME.$epoch2

#data inside htime files before upgrade
data1=/bricks/brick1/.glusterfs/changelogs/CHANGELOG.$epoch1
data2=/bricks/brick1/.glusterfs/changelogs/CHANGELOG.$epoch2

#data inside htime files after upgrade
updated_data1=/bricks/brick1/.glusterfs/changelogs/`echo $(date '+%Y/%m/%d')`/CHANGELOG.$epoch1
updated_data2=/bricks/brick1/.glusterfs/changelogs/`echo $(date '+%Y/%m/%d')`/CHANGELOG.$epoch2

echo -n $data1>$htime_file1
echo -n $data2>$htime_file2

echo "Before upgrade:"
EXPECT '1' echo $(grep $data1 $htime_file1 | wc -l)
EXPECT '1' echo $(grep $data2 $htime_file2 | wc -l)

EXPECT '1' echo $(ls /bricks/brick1/.glusterfs/changelogs/CHANGELOG.$epoch1 | wc -l)
EXPECT '1' echo $(ls /bricks/brick1/.glusterfs/changelogs/htime/HTIME.$epoch1 | wc -l)
EXPECT '1' echo $(ls /bricks/brick1/.glusterfs/changelogs/CHANGELOG.$epoch2 | wc -l)
EXPECT '1' echo $(ls /bricks/brick1/.glusterfs/changelogs/htime/HTIME.$epoch2 | wc -l)
###############################################################################################
#Upgrade
###############################################################################################
TEST upgrade_script=$(find / -type f -name glusterfs-georep-upgrade.py)
TEST python3 $upgrade_script $brick

###############################################################################################
#After upgrade
###############################################################################################
echo "After upgrade:"
EXPECT '1' echo $(grep $updated_data1 $htime_file1 | wc -l)
EXPECT '1' echo $(grep $updated_data2 $htime_file2 | wc -l)

#Check directory structure inside changelogs
TEST ! ls /bricks/brick1/.glusterfs/changelogs/CHANGELOG.$epoch1
EXPECT '1' echo $(ls /bricks/brick1/.glusterfs/changelogs/htime/HTIME.$epoch1 | wc -l)
EXPECT '1' echo $(ls /bricks/brick1/.glusterfs/changelogs/htime/HTIME.$epoch1.bak | wc -l)
EXPECT '1' echo $(ls /bricks/brick1/.glusterfs/changelogs/`echo $(date '+%Y')` | wc -l)
EXPECT '1' echo $(ls /bricks/brick1/.glusterfs/changelogs/`echo $(date '+%Y/%m')` | wc -l)
EXPECT '2' echo $(ls /bricks/brick1/.glusterfs/changelogs/`echo $(date '+%Y/%m/%d')` | wc -l)
EXPECT '1' echo $(ls /bricks/brick1/.glusterfs/changelogs/`echo $(date '+%Y/%m/%d')`/CHANGELOG.$epoch1 | wc -l)

TEST ! ls /bricks/brick1/.glusterfs/changelogs/CHANGELOG.$epoch2
EXPECT '1' echo $(ls /bricks/brick1/.glusterfs/changelogs/htime/HTIME.$epoch2 | wc -l)
EXPECT '1' echo $(ls /bricks/brick1/.glusterfs/changelogs/htime/HTIME.$epoch2.bak | wc -l)
EXPECT '1' echo $(ls /bricks/brick1/.glusterfs/changelogs/`echo $(date '+%Y')` | wc -l)
EXPECT '1' echo $(ls /bricks/brick1/.glusterfs/changelogs/`echo $(date '+%Y/%m')`| wc -l)
EXPECT '1' echo $(ls /bricks/brick1/.glusterfs/changelogs/`echo $(date '+%Y/%m/%d')`/CHANGELOG.$epoch2 | wc -l)

TEST rm -rf /bricks