@@ -51,7 +51,7 @@ bootstrap_variables() {
5151 DEFAULT_ENCRYPT_PUBKEY \
5252 DEFAULT_MONGO_CUSTOM_URI \
5353 DEFAULT_MYSQL_TLS_CA_FILE \
54- DEFAULT_MYSQL_TLS_backup_job_filenameCERT_FILE \
54+ DEFAULT_MYSQL_TLS_CERT_FILE \
5555 DEFAULT_MYSQL_TLS_KEY_FILE \
5656 DEFAULT_S3_BUCKET \
5757 DEFAULT_S3_KEY_ID \
@@ -240,18 +240,73 @@ bootstrap_variables() {
240240 rm -rf "${backup_instance_vars}"
241241 }
242242
243- upgrade_lonely_variables() {
244- upgrade_lonely_variables_tmp=$(mktemp)
245- set -o posix; set | grep "^$1" | grep -v "^$1[0-9]._" > "${upgrade_lonely_variables_tmp}"
246- while read -r exist_var ; do
247- if [ ! -v "${1}"01_"$(echo "${exist_var}" | cut -d = -f1 | cut -d _ -f2)" ] ; then
248- export "${1}"01_"$(echo "${exist_var}" | cut -d = -f1 | cut -d _ -f2-9)"="$(echo "${exist_var}" | cut -d = -f2)"
249- else
250- print_error "Variable ${1}01_$(echo "${exist_var}" | cut -d = -f1 | cut -d _ -f2) already exists, fix your variables and start again.."
251- exit 1
252- fi
253- done < "${upgrade_lonely_variables_tmp}"
254- rm -rf "${upgrade_lonely_variables_tmp}"
243+ restore_init() {
244+ restore_vars=$(mktemp)
245+ set -o posix ; set | grep -oE "^restore_job_.*=" | grep -oE ".*=" | sed "/--/d" > "${restore_vars}"
246+ while read -r restore_var ; do
247+ unset "$(echo "${restore_var}" | cut -d = -f 1)"
248+ done < "${restore_vars}"
249+
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+
262+ transform_file_var \
263+ DEFAULT_AUTH \
264+ DEFAULT_HOST \
265+ DEFAULT_NAME \
266+ DEFAULT_PASS \
267+ DEFAULT_PORT \
268+ DEFAULT_TYPE \
269+ DEFAULT_USER \
270+ DEFAULT_MONGO_CUSTOM_URI \
271+ DEFAULT_MYSQL_TLS_CA_FILE \
272+ DEFAULT_MYSQL_TLS_CERT_FILE \
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
296+
297+ if [ -n "${DB_DUMP_TARGET}" ]; then
298+ print_warn "Deprecated and unsupported variable 'DB_DUMP_TARGET' detected - Please upgrade your variables as they will be removed in version 4.3.0"
299+ sed -i "/DEFAULT_FILESYSTEM_PATH=/d" "${restore_vars}"
300+ echo "DEFAULT_FILESYSTEM_PATH=${DB_DUMP_TARGET}" >> "${restore_vars}"
301+ fi
302+
303+ if [ -n "${DB_DUMP_TARGET_ARCHIVE}" ]; then
304+ print_warn "Deprecated and unsupported variable 'DB_DUMP_TARGET_ACRHIVE' detected - Please upgrade your variables as they will be removed in version 4.3.0"
305+ sed -i "/DEFAULT_FILESYSTEM_ARCHIVE_PATH=/d" "${restore_vars}"
306+ echo "DEFAULT_FILESYSTEM_ARCHIVE_PATH=${DB_DUMP_TARGET_ARCHIVE}" >> "${restore_vars}"
307+ fi
308+
309+ echo "RESTORE_VARS is ${restore_vars}"
255310 }
256311
257312 parse_variables() {
@@ -368,9 +423,24 @@ bootstrap_variables() {
368423 if var_true "${backup_job_resource_optimized}" ; then play_fair="nice -19 ionice -c2" ; fi
369424 }
370425
426+ upgrade_lonely_variables() {
427+ upgrade_lonely_variables_tmp=$(mktemp)
428+ set -o posix; set | grep "^$1" | grep -v "^$1[0-9]._" > "${upgrade_lonely_variables_tmp}"
429+ while read -r exist_var ; do
430+ if [ ! -v "${1}"01_"$(echo "${exist_var}" | cut -d = -f1 | cut -d _ -f2)" ] ; then
431+ export "${1}"01_"$(echo "${exist_var}" | cut -d = -f1 | cut -d _ -f2-9)"="$(echo "${exist_var}" | cut -d = -f2)"
432+ else
433+ print_error "Variable ${1}01_$(echo "${exist_var}" | cut -d = -f1 | cut -d _ -f2) already exists, fix your variables and start again.."
434+ exit 1
435+ fi
436+ done < "${upgrade_lonely_variables_tmp}"
437+ rm -rf "${upgrade_lonely_variables_tmp}"
438+ }
439+
371440 case "${1}" in
372441 backup_init ) backup_init "$2" ;;
373442 parse_variables) parse_variables "$2" ;;
443+ restore_init) restore_init ;;
374444 upgrade ) upgrade_lonely_variables "$2" ;;
375445 esac
376446
0 commit comments