summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMohammed Rafi KC <rkavunga@redhat.com>2015-11-24 13:45:20 +0530
committerRajesh Joseph <rjoseph@redhat.com>2015-11-26 03:41:36 -0800
commit5a52abb4af0d2d36e1b24e80cbfd349a9442a329 (patch)
tree8f7fe22a368c9a8529468d67450a3dd476fe9d09
parent748138bc3001de6d29be50c9e72ec1b32cb20625 (diff)
glusterd: copy snapshot object during duplication of volfile
Back port of > http://review.gluster.org/#/c/12734/ When creating duplicate volfile for hot/cold tier, we need to copy the snapshot object in to volfile as it requires to generate snapshot brick volfile. >Change-Id: I39ccfa20cd1c16ef2801901e3cd3a31c76f8995d >BUG: 1284789 >Signed-off-by: Mohammed Rafi KC <rkavunga@redhat.com> Change-Id: Ia0892dfc3af24ee428e0aa0a3e23063a91049a57 BUG: 1285629 Signed-off-by: Mohammed Rafi KC <rkavunga@redhat.com> Reviewed-on: http://review.gluster.org/12756 Tested-by: NetBSD Build System <jenkins@build.gluster.org> Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Avra Sengupta <asengupt@redhat.com> Reviewed-by: Rajesh Joseph <rjoseph@redhat.com>
-rw-r--r--tests/basic/tier/tier-snapshot.t48
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-utils.c2
2 files changed, 50 insertions, 0 deletions
diff --git a/tests/basic/tier/tier-snapshot.t b/tests/basic/tier/tier-snapshot.t
new file mode 100644
index 00000000000..b90d5606998
--- /dev/null
+++ b/tests/basic/tier/tier-snapshot.t
@@ -0,0 +1,48 @@
+#!/bin/bash
+. $(dirname $0)/../../include.rc
+. $(dirname $0)/../../volume.rc
+. $(dirname $0)/../../snapshot.rc
+
+cleanup;
+
+TEST init_n_bricks 4;
+TEST setup_lvm 4;
+
+TEST glusterd;
+
+TEST pidof glusterd;
+
+TEST $CLI volume create $V0 replica 2 $H0:$L1 $H0:$L2 ;
+
+TEST $CLI volume start $V0;
+
+TEST $CLI volume attach-tier $V0 replica 2 $H0:$L3 $H0:$L4 ;
+
+TEST $GFS --volfile-server=$H0 --volfile-id=$V0 $M0;
+
+for i in {1..10} ; do echo "file" > $M0/file$i ; done
+
+TEST $CLI snapshot config activate-on-create enable
+
+TEST $CLI snapshot create snap1 $V0 no-timestamp;
+
+for i in {11..20} ; do echo "file" > $M0/file$i ; done
+
+TEST $CLI snapshot create snap2 $V0 no-timestamp;
+
+mkdir $M0/dir1;
+mkdir $M0/dir2;
+
+for i in {1..10} ; do echo "foo" > $M0/dir1/foo$i ; done
+for i in {1..10} ; do echo "foo" > $M0/dir2/foo$i ; done
+
+TEST $CLI snapshot create snap3 $V0 no-timestamp;
+
+for i in {11..20} ; do echo "foo" > $M0/dir1/foo$i ; done
+for i in {11..20} ; do echo "foo" > $M0/dir2/foo$i ; done
+
+TEST $CLI snapshot create snap4 $V0 no-timestamp;
+
+TEST $CLI snapshot delete all;
+
+cleanup;
diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.c b/xlators/mgmt/glusterd/src/glusterd-utils.c
index ca07660b638..c29cbc92d7b 100644
--- a/xlators/mgmt/glusterd/src/glusterd-utils.c
+++ b/xlators/mgmt/glusterd/src/glusterd-utils.c
@@ -655,6 +655,8 @@ glusterd_create_sub_tier_volinfo (glusterd_volinfo_t *volinfo,
(*dup_volinfo)->is_snap_volume = volinfo->is_snap_volume;
(*dup_volinfo)->status = volinfo->status;
+ (*dup_volinfo)->snapshot = volinfo->snapshot;
+
memcpy (&(*dup_volinfo)->tier_info, &volinfo->tier_info,
sizeof (volinfo->tier_info));