Skip to content

Commit 8fafdeb

Browse files
committed
Restore - Support multiple DB Hosts
1 parent d2acfc4 commit 8fafdeb

File tree

2 files changed

+438
-358
lines changed

2 files changed

+438
-358
lines changed

install/assets/functions/10-db-backup

Lines changed: 40 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -247,44 +247,52 @@ bootstrap_variables() {
247247
unset "$(echo "${restore_var}" | cut -d = -f 1)"
248248
done < "${restore_vars}"
249249

250+
if [ -n "${DB_NAME}" ] && [ -z "${DB01_NAME}" ] ; then export DB01_NAME="${DB_NAME}" ; unset DB_NAME ; fi
251+
if [ -n "${DB_USER}" ] && [ -z "${DB01_USER}" ] ; then export DB01_USER="${DB_USER}" ; unset DB_USER ; fi
252+
if [ -n "${DB_PASS}" ] && [ -z "${DB01_PASS}" ] ; then export DB01_PASS="${DB_PASS}" ; unset DB_PASS ; fi
253+
if [ -n "${DB_TYPE}" ] && [ -z "${DB01_TYPE}" ] ; then export DB01_TYPE="${DB_TYPE}" ; unset DB_TYPE ; fi
254+
if [ -n "${DB_PORT}" ] && [ -z "${DB01_PORT}" ] ; then export DB01_PORT="${DB_PORT}" ; unset DB_PORT ; fi
255+
if [ -n "${DB_HOST}" ] && [ -z "${DB01_HOST}" ] ; then export DB01_HOST="${DB_HOST}" ; unset DB_HOST ; fi
256+
if [ -n "${DB_AUTH}" ] && [ -z "${DB01_AUTH}" ] ; then export DB01_AUTH="${DB_AUTH}" ; unset DB_AUTH ; fi
257+
if [ -n "${MONGO_CUSTOM_URI}" ] && [ -z "${DB01_MONGO_CUSTOM_URI}" ] ; then export DB01_MONGO_CUSTOM_URI="${DB_MONGO_CUSTOM_URI}" ; unset MONGO_CUSTOM_URI ; fi
258+
if [ -n "${MYSQL_TLS_CA_FILE}" ] && [ -z "${DB01_MYSQL_TLS_CA_FILE}" ] ; then export DB01_MYSQL_TLS_CA_FILE="${MYSQL_TLS_CA_FILE}" ; unset MYSQL_TLS_CA_FILE ; fi
259+
if [ -n "${MYSQL_TLS_CERT_FILE}" ] && [ -z "${DB01_MYSQL_TLS_CERT_FILE}" ] ; then export DB01_MYSQL_TLS_CERT_FILE="${MYSQL_TLS_CERT_FILE}" ; unset MYSQL_TLS_CERT_FILE ; fi
260+
if [ -n "${MYSQL_TLS_KEY_FILE}" ] && [ -z "${DB01_MYSQL_TLS_KEY_FILE}" ] ; then export DB01_MYSQL_TLS_KEY_FILE="${MYSQL_TLS_KEY_FILE}" ; unset MYSQL_TLS_KEY_FILE ; fi
261+
250262
transform_file_var \
251263
DEFAULT_AUTH \
252-
DEFAULT_TYPE \
253264
DEFAULT_HOST \
254-
DEFAULT_PORT \
255265
DEFAULT_NAME \
256-
DEFAULT_USER \
257266
DEFAULT_PASS \
258-
DEFAULT_ENCRYPT_PASSPHRASE \
259-
DEFAULT_ENCRYPT_PUBKEY \
267+
DEFAULT_PORT \
268+
DEFAULT_TYPE \
269+
DEFAULT_USER \
260270
DEFAULT_MONGO_CUSTOM_URI \
261271
DEFAULT_MYSQL_TLS_CA_FILE \
262272
DEFAULT_MYSQL_TLS_CERT_FILE \
263-
DEFAULT_MYSQL_TLS_KEY_FILE \
264-
DB"${backup_instance_number}"_AUTH \
265-
DB"${backup_instance_number}"_TYPE \
266-
DB"${backup_instance_number}"_HOST \
267-
DB"${backup_instance_number}"_PORT \
268-
DB"${backup_instance_number}"_NAME \
269-
DB"${backup_instance_number}"_NAME_EXCLUDE \
270-
DB"${backup_instance_number}"_USER \
271-
DB"${backup_instance_number}"_PASS \
272-
DB"${backup_instance_number}"_MONGO_CUSTOM_URI \
273-
DB"${backup_instance_number}"_MYSQL_TLS_CA_FILE \
274-
DB"${backup_instance_number}"_MYSQL_TLS_CERT_FILE \
275-
DB"${backup_instance_number}"_MYSQL_TLS_KEY_FILE \
276-
DB_AUTH \
277-
DB_HOST \
278-
DB_NAME \
279-
DB_PORT \
280-
DB_USER \
281-
DB_PASS \
282-
MONGO_CUSTOM_URI \
283-
MYSQL_TLS_CA_FILE \
284-
MYSQL_TLS_CERT_FILE
285-
286-
287-
set -o posix ; set | grep -E "^DB${restore_instance_number}_|^DEFAULT_|^DB_|^MYSQL_" > "${restore_vars}"
273+
DEFAULT_MYSQL_TLS_KEY_FILE
274+
275+
set -o posix ; set | grep -E "^DEFAULT_" > "${restore_vars}"
276+
277+
restore_instances=$(printenv | sort | grep -c '^DB.*_HOST')
278+
279+
for (( restore_instance_number = 01; restore_instance_number <= restore_instances; restore_instance_number++ )) ; do
280+
restore_instance_number=$(printf "%02d" $restore_instance_number)
281+
transform_file_var \
282+
DB"${restore_instance_number}"_AUTH \
283+
DB"${restore_instance_number}"_HOST \
284+
DB"${restore_instance_number}"_NAME \
285+
DB"${restore_instance_number}"_PASS \
286+
DB"${restore_instance_number}"_PORT \
287+
DB"${restore_instance_number}"_TYPE \
288+
DB"${restore_instance_number}"_USER \
289+
DB"${restore_instance_number}"_MONGO_CUSTOM_URI \
290+
DB"${restore_instance_number}"_MYSQL_TLS_CA_FILE \
291+
DB"${restore_instance_number}"_MYSQL_TLS_CERT_FILE \
292+
DB"${restore_instance_number}"_MYSQL_TLS_KEY_FILE
293+
294+
set -o posix ; set | grep -E "^DB${restore_instance_number}_" >> "${restore_vars}"
295+
done
288296

289297
if [ -n "${DB_DUMP_TARGET}" ]; then
290298
print_warn "Deprecated and unsupported variable 'DB_DUMP_TARGET' detected - Please upgrade your variables as they will be removed in version 4.3.0"
@@ -297,6 +305,8 @@ bootstrap_variables() {
297305
sed -i "/DEFAULT_FILESYSTEM_ARCHIVE_PATH=/d" "${restore_vars}"
298306
echo "DEFAULT_FILESYSTEM_ARCHIVE_PATH=${DB_DUMP_TARGET_ARCHIVE}" >> "${restore_vars}"
299307
fi
308+
309+
echo "RESTORE_VARS is ${restore_vars}"
300310
}
301311

302312
parse_variables() {

0 commit comments

Comments
 (0)