Skip to content

Commit e2c5deb

Browse files
committed
Test ghe-restore restoring settings with -c or on unconfigured vms
1 parent 92fa994 commit e2c5deb

1 file changed

Lines changed: 80 additions & 1 deletion

File tree

test/test-ghe-restore.sh

Lines changed: 80 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ echo "fake ghe-export-settings data" > "$GHE_DATA_DIR/current/settings.json"
4545
echo "fake license data" > "$GHE_DATA_DIR/current/enterprise.ghl"
4646
echo "rsync" > "$GHE_DATA_DIR/current/strategy"
4747

48-
begin_test "ghe-restore"
48+
begin_test "ghe-restore into unconfigured vm"
4949
(
5050
set -e
5151
rm -rf "$GHE_REMOTE_DATA_DIR"
@@ -79,6 +79,85 @@ begin_test "ghe-restore"
7979
)
8080
end_test
8181

82+
begin_test "ghe-restore into configured vm"
83+
(
84+
set -e
85+
rm -rf "$GHE_REMOTE_DATA_DIR"
86+
setup_remote_metadata
87+
88+
# create settings file -- used to determine if instance has been configured.
89+
touch "$GHE_REMOTE_DATA_DIR/enterprise/dna.json"
90+
91+
# set restore host environ var
92+
GHE_RESTORE_HOST=127.0.0.1
93+
export GHE_RESTORE_HOST
94+
95+
# run ghe-restore and write output to file for asserting against
96+
ghe-restore -v > "$TRASHDIR/restore-out"
97+
cat "$TRASHDIR/restore-out"
98+
99+
# verify connect to right host
100+
grep -q "Connect 127.0.0.1 OK" "$TRASHDIR/restore-out"
101+
102+
# verify all import scripts were run
103+
grep -q "alice/index.html" "$TRASHDIR/restore-out"
104+
grep -q "fake ghe-export-mysql data" "$TRASHDIR/restore-out"
105+
grep -q "fake ghe-export-redis data" "$TRASHDIR/restore-out"
106+
grep -q "fake ghe-export-authorized-keys data" "$TRASHDIR/restore-out"
107+
grep -q "fake ghe-export-ssh-host-keys data" "$TRASHDIR/restore-out"
108+
grep -q "ghe-import-es-indices" "$TRASHDIR/restore-out"
109+
110+
# verify settings import was *not* run due to instance already being
111+
# configured.
112+
! grep -q "fake ghe-export-settings data" "$TRASHDIR/restore-out"
113+
114+
# verify all repository data was transferred to the restore location
115+
diff -ru "$GHE_DATA_DIR/current/repositories" "$GHE_REMOTE_DATA_USER_DIR/repositories"
116+
117+
# verify all pages data was transferred to the restore location
118+
diff -ru "$GHE_DATA_DIR/current/pages" "$GHE_REMOTE_DATA_USER_DIR/pages"
119+
)
120+
end_test
121+
122+
begin_test "ghe-restore -c into configured vm"
123+
(
124+
set -e
125+
rm -rf "$GHE_REMOTE_DATA_DIR"
126+
setup_remote_metadata
127+
128+
# create settings file -- used to determine if instance has been configured.
129+
touch "$GHE_REMOTE_DATA_DIR/enterprise/dna.json"
130+
131+
# set restore host environ var
132+
GHE_RESTORE_HOST=127.0.0.1
133+
export GHE_RESTORE_HOST
134+
135+
# run ghe-restore and write output to file for asserting against
136+
ghe-restore -v -c > "$TRASHDIR/restore-out"
137+
cat "$TRASHDIR/restore-out"
138+
139+
# verify connect to right host
140+
grep -q "Connect 127.0.0.1 OK" "$TRASHDIR/restore-out"
141+
142+
# verify all import scripts were run
143+
grep -q "alice/index.html" "$TRASHDIR/restore-out"
144+
grep -q "fake ghe-export-mysql data" "$TRASHDIR/restore-out"
145+
grep -q "fake ghe-export-redis data" "$TRASHDIR/restore-out"
146+
grep -q "fake ghe-export-authorized-keys data" "$TRASHDIR/restore-out"
147+
grep -q "fake ghe-export-ssh-host-keys data" "$TRASHDIR/restore-out"
148+
grep -q "ghe-import-es-indices" "$TRASHDIR/restore-out"
149+
150+
# verify settings were imported
151+
grep -q "fake ghe-export-settings data" "$TRASHDIR/restore-out"
152+
153+
# verify all repository data was transferred to the restore location
154+
diff -ru "$GHE_DATA_DIR/current/repositories" "$GHE_REMOTE_DATA_USER_DIR/repositories"
155+
156+
# verify all pages data was transferred to the restore location
157+
diff -ru "$GHE_DATA_DIR/current/pages" "$GHE_REMOTE_DATA_USER_DIR/pages"
158+
)
159+
end_test
160+
82161
begin_test "ghe-restore with host arg"
83162
(
84163
set -e

0 commit comments

Comments
 (0)