@@ -45,7 +45,7 @@ echo "fake ghe-export-settings data" > "$GHE_DATA_DIR/current/settings.json"
4545echo " fake license data" > " $GHE_DATA_DIR /current/enterprise.ghl"
4646echo " 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)
8080end_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+
82161begin_test " ghe-restore with host arg"
83162(
84163 set -e
0 commit comments