File tree Expand file tree Collapse file tree 4 files changed +24
-21
lines changed Expand file tree Collapse file tree 4 files changed +24
-21
lines changed Original file line number Diff line number Diff line change @@ -91,6 +91,17 @@ if [ -z "$version" ]; then
91
91
exit 2
92
92
fi
93
93
94
+ # Block restoring snapshots to older releases of GitHub Enterprise
95
+ if [ -n " $GHE_RESTORE_SNAPSHOT_PATH " ]; then
96
+ snapshot_version=$( cat $GHE_RESTORE_SNAPSHOT_PATH /version)
97
+ # shellcheck disable=SC2046 # Word splitting is required to populate the variables
98
+ read -r snapshot_version_major snapshot_version_minor _ <<< $( ghe_parse_version $snapshot_version )
99
+ if [ " $( version $GHE_REMOTE_VERSION ) " -lt " $( version $snapshot_version_major .$snapshot_version_minor .0) " ]; then
100
+ echo " Error: Snapshot can not be restored to an older release of GitHub Enterprise." >&2
101
+ exit 1
102
+ fi
103
+ fi
104
+
94
105
if [ -z " $GHE_ALLOW_REPLICA_BACKUP " ]; then
95
106
if [ " $( ghe-ssh $host -- cat $GHE_REMOTE_ROOT_DIR /etc/github/repl-state 2> /dev/null || true) " = " replica" ]; then
96
107
echo " Error: high availability replica detected." 1>&2
Original file line number Diff line number Diff line change @@ -106,15 +106,6 @@ GHE_BACKUP_STRATEGY=$(cat "$GHE_RESTORE_SNAPSHOT_PATH/strategy")
106
106
# Perform a host-check and establish the remote version in GHE_REMOTE_VERSION.
107
107
ghe_remote_version_required " $GHE_HOSTNAME "
108
108
109
- # Block restoring snapshots to older releases of GitHub Enterprise
110
- snapshot_version=$( cat $GHE_RESTORE_SNAPSHOT_PATH /version)
111
- # shellcheck disable=SC2046 # Word splitting is required to populate the variables
112
- read -r snapshot_version_major snapshot_version_minor _ <<< $( ghe_parse_version $snapshot_version )
113
- if [ " $( version $GHE_REMOTE_VERSION ) " -lt " $( version $snapshot_version_major .$snapshot_version_minor .0) " ]; then
114
- echo " Error: Snapshot can not be restored to an older release of GitHub Enterprise." >&2
115
- exit 1
116
- fi
117
-
118
109
# Figure out if this instance has been configured or is entirely new.
119
110
instance_configured=false
120
111
if ghe-ssh " $GHE_HOSTNAME " -- " [ -f '$GHE_REMOTE_ROOT_DIR /etc/github/configured' ]" ; then
Original file line number Diff line number Diff line change @@ -78,3 +78,16 @@ begin_test "ghe-host-check detects high availability replica"
78
78
GHE_ALLOW_REPLICA_BACKUP=yes ghe-host-check
79
79
)
80
80
end_test
81
+
82
+ begin_test " ghe-host-check blocks restore to old release"
83
+ (
84
+ set -e
85
+
86
+ mkdir -p " $GHE_DATA_DIR /current/"
87
+ echo " $GHE_TEST_REMOTE_VERSION " > " $GHE_DATA_DIR /current/version"
88
+
89
+ # shellcheck disable=SC2046 # Word splitting is required to populate the variables
90
+ read -r bu_version_major bu_version_minor bu_version_patch <<< $( ghe_parse_version $GHE_TEST_REMOTE_VERSION )
91
+ ! GHE_TEST_REMOTE_VERSION=$bu_version_major .$(( bu_version_minor- 1 )) .$bu_version_patch ghe-restore -v
92
+ )
93
+ end_test
Original file line number Diff line number Diff line change @@ -398,18 +398,6 @@ begin_test "ghe-restore exits early on unsupported version"
398
398
)
399
399
end_test
400
400
401
- begin_test " ghe-restore exits early when restoring to older release"
402
- (
403
- set -e
404
- GHE_RESTORE_HOST=127.0.0.1
405
- export GHE_RESTORE_HOST
406
-
407
- # shellcheck disable=SC2046 # Word splitting is required to populate the variables
408
- read -r bu_version_major bu_version_minor bu_version_patch <<< $( ghe_parse_version $GHE_TEST_REMOTE_VERSION )
409
- ! GHE_TEST_REMOTE_VERSION=$bu_version_major .$(( bu_version_minor- 1 )) .$bu_version_patch ghe-restore -v
410
- )
411
- end_test
412
-
413
401
# Reset data for sub-subsequent tests
414
402
rm -rf " $GHE_DATA_DIR /1"
415
403
setup_test_data " $GHE_DATA_DIR /1"
You can’t perform that action at this time.
0 commit comments