Skip to content

Commit 6dd7975

Browse files
committed
Restore enterprise-manage password hash files
1 parent 56ca857 commit 6dd7975

3 files changed

Lines changed: 23 additions & 2 deletions

File tree

bin/ghe-restore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,13 @@ if $clean_restore; then
9494
echo "Restoring license ..."
9595
ghe-ssh "$host" -- 'ghe-import-license' < "$GHE_RESTORE_SNAPSHOT_PATH/enterprise.ghl" 1>&3
9696

97+
if [ -f "$GHE_RESTORE_SNAPSHOT_PATH/manage-password" ]; then
98+
echo "Restoring management console password ..."
99+
cat "$GHE_RESTORE_SNAPSHOT_PATH/manage-password" |
100+
ghe-ssh "$host" -- \
101+
"sudo -u git dd of='$GHE_REMOTE_DATA_USER_DIR/common/manage-password' 2>&1"
102+
fi
103+
97104
echo "
98105
sudo ghe-service-ensure-mysql &&
99106
sudo ghe-service-ensure-elasticsearch

test/test-ghe-restore.sh

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ echo "fake ghe-export-ssh-host-keys data" > "$GHE_DATA_DIR/current/ssh-host-keys
4343
echo "fake ghe-export-repositories data" > "$GHE_DATA_DIR/current/repositories.tar"
4444
echo "fake ghe-export-settings data" > "$GHE_DATA_DIR/current/settings.json"
4545
echo "fake license data" > "$GHE_DATA_DIR/current/enterprise.ghl"
46+
echo "fake manage password hash data" > "$GHE_DATA_DIR/current/manage-password"
4647
echo "rsync" > "$GHE_DATA_DIR/current/strategy"
4748

4849
begin_test "ghe-restore into unconfigured vm"
@@ -56,8 +57,10 @@ begin_test "ghe-restore into unconfigured vm"
5657
export GHE_RESTORE_HOST
5758

5859
# run ghe-restore and write output to file for asserting against
59-
ghe-restore -v > "$TRASHDIR/restore-out" 2>&1
60-
cat "$TRASHDIR/restore-out"
60+
if ! ghe-restore -v > "$TRASHDIR/restore-out" 2>&1; then
61+
cat "$TRASHDIR/restore-out"
62+
false
63+
fi
6164

6265
# verify connect to right host
6366
grep -q "Connect 127.0.0.1 OK" "$TRASHDIR/restore-out"
@@ -78,6 +81,12 @@ begin_test "ghe-restore into unconfigured vm"
7881
test -d "$GHE_REMOTE_DATA_USER_DIR/elasticsearch-legacy"
7982
fi
8083

84+
# verify manage password was restored under v2.x or greater VMs
85+
if [ "$GHE_VERSION_MAJOR" -ge 2 ]; then
86+
test -f "$GHE_REMOTE_DATA_USER_DIR/common/manage-password"
87+
[ "$(cat "$GHE_REMOTE_DATA_USER_DIR/common/manage-password")" = "fake manage password hash data" ]
88+
fi
89+
8190
# verify service-ensure scripts were run under versions >= v2.x
8291
if [ "$GHE_VERSION_MAJOR" -ge 2 ]; then
8392
grep -q "ghe-service-ensure-mysql OK" "$TRASHDIR/restore-out"

test/testlib.sh

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,11 @@ cd "$TRASHDIR"
7777
setup_remote_metadata () {
7878
mkdir -p "$GHE_REMOTE_DATA_DIR" "$GHE_REMOTE_DATA_USER_DIR"
7979
mkdir -p "$(dirname "$GHE_REMOTE_METADATA_FILE")"
80+
81+
if [ "$GHE_VERSION_MAJOR" -ge 2 ]; then
82+
mkdir -p "$GHE_REMOTE_DATA_USER_DIR/common"
83+
fi
84+
8085
echo '
8186
{
8287
"timestamp": "Wed Jul 30 13:48:52 +0000 2014",

0 commit comments

Comments
 (0)