@@ -38,21 +38,27 @@ is_binary_backup_feature_on(){
38
38
ghe-ssh " $GHE_HOSTNAME " ghe-config --true " mysql.backup.binary"
39
39
}
40
40
41
- if ghe-ssh " $GHE_HOSTNAME " test -f /etc/github/cluster ; then
42
- ghe_mysql_master=$( ghe-ssh " $GHE_HOSTNAME " ghe-config " cluster.mysql-master" )
43
- if [ -z $ghe_mysql_master ]; then
44
- ghe_mysql_master=$GHE_HOSTNAME
45
- else
46
- port=$( ssh_port_part " $GHE_HOSTNAME " )
47
- ghe_mysql_master=$ghe_mysql_master ${port: +: $port }
48
- fi
49
- else
50
- ghe_mysql_master=$GHE_HOSTNAME
51
- fi
52
-
41
+ ssh_config_file_opt=
53
42
if is_binary_backup_feature_on; then
54
43
# Feature "mysql.backup.binary" is on, which means new backup scripts are available
55
44
if is_binary_backup; then
45
+ if $CLUSTER ; then
46
+ ghe_mysql_master=$( ghe-ssh " $GHE_HOSTNAME " ghe-config " cluster.mysql-master" )
47
+ if [ -z $ghe_mysql_master ]; then
48
+ echo " Something is wrong with configuration: cluster.mysql-master not found" >&2
49
+ exit 2
50
+ else
51
+ tempdir=$( mktemp -d -t backup-utils-restore-XXXXXX)
52
+ ssh_config_file=" $tempdir /ssh_config"
53
+ ssh_config_file_opt=" -F $ssh_config_file "
54
+ ghe-ssh-config " $GHE_HOSTNAME " " $ghe_mysql_master " > " $ssh_config_file "
55
+ port=$( ssh_port_part " $GHE_HOSTNAME " )
56
+ ghe_mysql_master=$ghe_mysql_master ${port: +: $port }
57
+ fi
58
+ else
59
+ ghe_mysql_master=$GHE_HOSTNAME
60
+ fi
61
+
56
62
# Check if the decompress needed by looking into the sentinel file
57
63
# In 2.19.5 we compress the binary backup twice
58
64
if [ " $( cat $snapshot_dir /mysql-binary-backup-sentinel) " = " NO_ADDITIONAL_COMPRESSION" ]; then
79
85
fi
80
86
81
87
cleanup () {
82
- ghe-ssh " $GHE_RESTORE_HOST " -- " sudo rm -rf $GHE_REMOTE_DATA_USER_DIR /tmp/mysql.sql.gz"
88
+ ghe-ssh $ssh_config_file_opt " $GHE_RESTORE_HOST " -- " sudo rm -rf $GHE_REMOTE_DATA_USER_DIR /tmp/mysql.sql.gz"
83
89
}
84
90
trap ' cleanup' INT TERM EXIT
85
91
86
- ghe-ssh " $GHE_RESTORE_HOST " -- " sudo mkdir -p '$GHE_REMOTE_DATA_USER_DIR /tmp'" 1>&3
92
+ ghe-ssh $ssh_config_file_opt " $GHE_RESTORE_HOST " -- " sudo mkdir -p '$GHE_REMOTE_DATA_USER_DIR /tmp'" 1>&3
87
93
88
94
# Transfer MySQL data from the snapshot to the GitHub instance.
89
- cat $snapshot_dir /mysql.sql.gz | ghe-ssh " $GHE_RESTORE_HOST " -- " sudo dd of=$GHE_REMOTE_DATA_USER_DIR /tmp/mysql.sql.gz >/dev/null 2>&1"
95
+ cat $snapshot_dir /mysql.sql.gz | ghe-ssh $ssh_config_file_opt " $GHE_RESTORE_HOST " -- " sudo dd of=$GHE_REMOTE_DATA_USER_DIR /tmp/mysql.sql.gz >/dev/null 2>&1"
90
96
91
97
# Import the database
92
- echo " cat $GHE_REMOTE_DATA_USER_DIR /tmp/mysql.sql.gz | $IMPORT_MYSQL " | ghe-ssh " $GHE_RESTORE_HOST " -- /bin/bash 1>&3
98
+ echo " cat $GHE_REMOTE_DATA_USER_DIR /tmp/mysql.sql.gz | $IMPORT_MYSQL " | ghe-ssh $ssh_config_file_opt " $GHE_RESTORE_HOST " -- /bin/bash 1>&3
93
99
94
100
bm_end " $( basename $0 ) "
0 commit comments