Skip to content

Commit 3d794a8

Browse files
committed
Commence work on restore scripts
1 parent aaf6309 commit 3d794a8

File tree

2 files changed

+82
-14
lines changed

2 files changed

+82
-14
lines changed

install/assets/functions/10-db-backup

Lines changed: 73 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -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,63 @@ 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+
transform_file_var \
251+
DEFAULT_AUTH \
252+
DEFAULT_TYPE \
253+
DEFAULT_HOST \
254+
DEFAULT_PORT \
255+
DEFAULT_NAME \
256+
DEFAULT_USER \
257+
DEFAULT_PASS \
258+
DEFAULT_ENCRYPT_PASSPHRASE \
259+
DEFAULT_ENCRYPT_PUBKEY \
260+
DEFAULT_MONGO_CUSTOM_URI \
261+
DEFAULT_MYSQL_TLS_CA_FILE \
262+
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}"
288+
289+
if [ -n "${DB_DUMP_TARGET}" ]; then
290+
print_warn "Deprecated and unsupported variable 'DB_DUMP_TARGET' detected - Please upgrade your variables as they will be removed in version 4.3.0"
291+
sed -i "/DEFAULT_FILESYSTEM_PATH=/d" "${restore_vars}"
292+
echo "DEFAULT_FILESYSTEM_PATH=${DB_DUMP_TARGET}" >> "${restore_vars}"
293+
fi
294+
295+
if [ -n "${DB_DUMP_TARGET_ARCHIVE}" ]; then
296+
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"
297+
sed -i "/DEFAULT_FILESYSTEM_ARCHIVE_PATH=/d" "${restore_vars}"
298+
echo "DEFAULT_FILESYSTEM_ARCHIVE_PATH=${DB_DUMP_TARGET_ARCHIVE}" >> "${restore_vars}"
299+
fi
255300
}
256301

257302
parse_variables() {
@@ -368,9 +413,24 @@ bootstrap_variables() {
368413
if var_true "${backup_job_resource_optimized}" ; then play_fair="nice -19 ionice -c2" ; fi
369414
}
370415

416+
upgrade_lonely_variables() {
417+
upgrade_lonely_variables_tmp=$(mktemp)
418+
set -o posix; set | grep "^$1" | grep -v "^$1[0-9]._" > "${upgrade_lonely_variables_tmp}"
419+
while read -r exist_var ; do
420+
if [ ! -v "${1}"01_"$(echo "${exist_var}" | cut -d = -f1 | cut -d _ -f2)" ] ; then
421+
export "${1}"01_"$(echo "${exist_var}" | cut -d = -f1 | cut -d _ -f2-9)"="$(echo "${exist_var}" | cut -d = -f2)"
422+
else
423+
print_error "Variable ${1}01_$(echo "${exist_var}" | cut -d = -f1 | cut -d _ -f2) already exists, fix your variables and start again.."
424+
exit 1
425+
fi
426+
done < "${upgrade_lonely_variables_tmp}"
427+
rm -rf "${upgrade_lonely_variables_tmp}"
428+
}
429+
371430
case "${1}" in
372431
backup_init ) backup_init "$2" ;;
373432
parse_variables) parse_variables "$2" ;;
433+
restore_init) restore_init ;;
374434
upgrade ) upgrade_lonely_variables "$2" ;;
375435
esac
376436

install/usr/local/bin/restore

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,10 +74,16 @@ EOF
7474
esac
7575
fi
7676

77+
control_c() {
78+
if [ -f "${restore_vars}" ] ; then rm -rf "${restore_vars}" ; fi
79+
print_warn "User aborted"
80+
exit
81+
}
82+
7783
get_filename() {
7884
COLUMNS=12
7985
prompt="Please select a file to restore:"
80-
options=( $(find "${DEFAULT_BACKUP_PATH}" -type f -maxdepth 2 -not -name '*.md5' -not -name '*.sha1' -print0 | sort -z | xargs -0) )
86+
options=( $(find "${DEFAULT_FILESYSTEM_PATH}" -type f -maxdepth 2 -not -name '*.md5' -not -name '*.sha1' -print0 | sort -z | xargs -0) )
8187
PS3="$prompt "
8288
select opt in "${options[@]}" "Custom" "Quit" ; do
8389
if (( REPLY == 2 + ${#options[@]} )) ; then
@@ -810,6 +816,8 @@ EOF
810816
}
811817

812818
#### SCRIPT START
819+
trap ontrol_c INT
820+
813821
cat << EOF
814822

815823
## ${IMAGE_NAME} Restore Script

0 commit comments

Comments
 (0)