@@ -11,13 +11,12 @@ OC_ARGS="${OC_ARGS:-}"
1111MINIO_BACKUP=" minio_backup.tar.gz"
1212MINIO_BACKUP_DIR=" ${MINIO_BACKUP_DIR:- minio_backup} "
1313TMP_WORK_DIR=" tmp/minio_workspace"
14- MINIO_JOB_FILE=" ${SCRIPT_DIR} /src/minio-backup-restore-job.yml"
1514BACKUP_RESTORE_IN_POD=${BACKUP_RESTORE_IN_POD-false}
1615CURRENT_COMPONENT=" minio"
1716MINIO_ELASTIC_BACKUP=${MINIO_ELASTIC_BACKUP:- false}
1817DISABLE_MC_MULTIPART=${DISABLE_MC_MULTIPART:- true}
1918ELASTIC_BACKUP_BUCKET=" elastic-backup"
20- SED_REG_OPT=" ` get_sed_reg_opt` "
19+ SED_REG_OPT=" $( get_sed_reg_opt) "
2120SCRIPT_DIR=${SCRIPT_DIR}
2221
2322printUsage () {
4443brlog " INFO" " MinIO:"
4544brlog " INFO" " Tenant name: $TENANT_NAME "
4645
47- BACKUP_FILE=${BACKUP_FILE:- " minio_` date " +%Y%m%d_%H%M%S" ` .tar.gz" }
46+ BACKUP_FILE=${BACKUP_FILE:- " minio_$( date " +%Y%m%d_%H%M%S" ) .tar.gz" }
4847
4948MINIO_ARCHIVE_OPTION=" ${MINIO_ARCHIVE_OPTION-$DATASTORE_ARCHIVE_OPTION } "
5049if [ -n " ${MINIO_ARCHIVE_OPTION} " ] ; then
5554VERIFY_ARCHIVE=${VERIFY_ARCHIVE:- true}
5655VERIFY_DATASTORE_ARCHIVE=${VERIFY_DATASTORE_ARCHIVE:- $VERIFY_ARCHIVE }
5756
58- setup_minio_env
57+ setup_s3_env
5958
6059rm -rf ${TMP_WORK_DIR}
6160
@@ -64,7 +63,7 @@ mkdir -p "${BACKUP_RESTORE_LOG_DIR}"
6463
6564if " ${BACKUP_RESTORE_IN_POD} " ; then
6665 BACKUP_RESTORE_DIR_IN_POD=" /tmp/backup-restore-workspace"
67- launch_minio_pod
66+ launch_s3_pod
6867 _oc_cp " ${SCRIPT_DIR} /src" ${POD} :${BACKUP_RESTORE_DIR_IN_POD} / ${OC_ARGS}
6968 _oc_cp " ${SCRIPT_DIR} /lib" ${POD} :${BACKUP_RESTORE_DIR_IN_POD} / ${OC_ARGS}
7069 _oc_cp " ${SCRIPT_DIR} /src/minio-backup-restore-in-pod.sh" " ${POD} :${BACKUP_RESTORE_DIR_IN_POD} /run.sh" ${OC_ARGS}
@@ -89,14 +88,14 @@ if "${BACKUP_RESTORE_IN_POD}" ; then
8988 if [ " ${COMMAND} " = " backup" ] ; then
9089 brlog " INFO" " Transferring backup data"
9190 kube_cp_to_local ${POD} " ${BACKUP_FILE} " " ${BACKUP_RESTORE_DIR_IN_POD} /${MINIO_BACKUP} " ${OC_ARGS}
92- if " ${VERIFY_DATASTORE_ARCHIVE} " && brlog " INFO" " Verifying backup archive" && ! tar ${MINIO_TAR_OPTIONS[@]} -tf ${BACKUP_FILE} & > /dev/null ; then
91+ if " ${VERIFY_DATASTORE_ARCHIVE} " && brlog " INFO" " Verifying backup archive" && ! tar " ${MINIO_TAR_OPTIONS[@]} " -tf ${BACKUP_FILE} & > /dev/null ; then
9392 brlog " ERROR" " Backup file is broken, or does not exist."
9493 oc ${OC_ARGS} exec ${POD} -- bash -c " cd ${BACKUP_RESTORE_DIR_IN_POD} ; ls | xargs rm -rf"
9594 exit 1
9695 fi
9796 fi
9897 oc ${OC_ARGS} exec ${POD} -- bash -c " cd ${BACKUP_RESTORE_DIR_IN_POD} ; ls | xargs rm -rf"
99- oc ${OC_ARGS} delete -f " ${MINIO_JOB_FILE } "
98+ oc ${OC_ARGS} delete -f " ${S3_JOB_FILE } "
10099 rm -rf ${TMP_WORK_DIR}
101100 if [ -z " $( ls tmp) " ] ; then
102101 rm -rf tmp
114113export MINIO_CONFIG_DIR=" ${PWD} /${TMP_WORK_DIR} /.mc"
115114MC_OPTS=(--config-dir ${MINIO_CONFIG_DIR} --insecure)
116115
116+ BUCKET_SUFFIX=" $( get_bucket_suffix) "
117+
117118# backup
118119if [ " ${COMMAND} " = " backup" ] ; then
119120 brlog " INFO" " Start backup minio"
120121 brlog " INFO" " Backup data..."
121122 start_minio_port_forward
122- ${MC} ${MC_OPTS[@]} --quiet config host add wdminio ${MINIO_ENDPOINT_URL } ${MINIO_ACCESS_KEY } ${MINIO_SECRET_KEY } > /dev/null
123- EXCLUDE_OBJECTS=` cat " ${SCRIPT_DIR} /src/minio_exclude_paths" `
124- for bucket in ` $ {MC} ${MC_OPTS[@]} ls wdminio | sed ${SED_REG_OPT} " s|.*[0-9]+B\ (.*)/.*|\1|g" | grep -v ${ELASTIC_BACKUP_BUCKET} `
123+ ${MC} " ${MC_OPTS[@]} " --quiet config host add wdminio ${S3_ENDPOINT_URL } ${S3_ACCESS_KEY } ${S3_SECRET_KEY } > /dev/null
124+ EXCLUDE_OBJECTS=$( cat " ${SCRIPT_DIR} /src/minio_exclude_paths" )
125+ for bucket in $( $ {MC} " ${MC_OPTS[@]} " ls wdminio | sed ${SED_REG_OPT} " s|.*[0-9]+B\ (.*)/.*|\1|g" | grep -v ${ELASTIC_BACKUP_BUCKET} )
125126 do
126127 EXTRA_MC_MIRROR_COMMAND=" "
127128 ORG_IFS=${IFS}
128129 IFS=$' \n '
129130 for line in ${EXCLUDE_OBJECTS}
130131 do
131- if [[ ${line} == ${bucket} * ]] ; then
132- if [ " ${line# $bucket } " = " *" ] ; then
132+ base_bucket_name=${bucket% " ${BUCKET_SUFFIX} " }
133+ if [[ ${line} == ${base_bucket_name} * ]] ; then
134+ if [ " ${line# " $base_bucket_name " } " = " *" ] ; then
133135 brlog " DEBUG" " SKIP ${bucket} "
134136 continue 2
135137 fi
136- EXTRA_MC_MIRROR_COMMAND=" --exclude ${line# $bucket } ${EXTRA_MC_MIRROR_COMMAND} "
138+ EXTRA_MC_MIRROR_COMMAND=" --exclude ${line# " ${base_bucket_name} " } ${EXTRA_MC_MIRROR_COMMAND} "
137139 fi
138140 done
139141 IFS=${ORG_IFS}
140142 cd ${TMP_WORK_DIR}
141143 set +e
142- ${MC} ${MC_OPTS[@]} --quiet mirror ${EXTRA_MC_MIRROR_COMMAND} wdminio/${bucket} ${MINIO_BACKUP_DIR} /${bucket} & >> " ${SCRIPT_DIR} /${BACKUP_RESTORE_LOG_DIR} /${CURRENT_COMPONENT} .log"
144+ ${MC} " ${MC_OPTS[@]} " --quiet mirror ${EXTRA_MC_MIRROR_COMMAND} wdminio/${bucket} ${MINIO_BACKUP_DIR} /${bucket} & >> " ${SCRIPT_DIR} /${BACKUP_RESTORE_LOG_DIR} /${CURRENT_COMPONENT} .log"
143145 RC=$?
144146 echo " RC=${RC} " >> " ${SCRIPT_DIR} /${BACKUP_RESTORE_LOG_DIR} /${CURRENT_COMPONENT} .log"
145147 if [ $RC -ne 0 ] ; then
@@ -151,8 +153,8 @@ if [ "${COMMAND}" = "backup" ] ; then
151153 done
152154 stop_minio_port_forward
153155 brlog " INFO" " Archiving data..."
154- tar ${MINIO_TAR_OPTIONS[@]} -cf ${BACKUP_FILE} -C ${TMP_WORK_DIR} /${MINIO_BACKUP_DIR} .
155- if " ${VERIFY_DATASTORE_ARCHIVE} " && brlog " INFO" " Verifying backup archive" && ! tar ${MINIO_TAR_OPTIONS[@]} -tf ${BACKUP_FILE} & > /dev/null ; then
156+ tar " ${MINIO_TAR_OPTIONS[@]} " -cf ${BACKUP_FILE} -C ${TMP_WORK_DIR} /${MINIO_BACKUP_DIR} .
157+ if " ${VERIFY_DATASTORE_ARCHIVE} " && brlog " INFO" " Verifying backup archive" && ! tar " ${MINIO_TAR_OPTIONS[@]} " -tf ${BACKUP_FILE} & > /dev/null ; then
156158 brlog " ERROR" " Backup file is broken, or does not exist."
157159 exit 1
158160 fi
@@ -172,21 +174,26 @@ if [ "${COMMAND}" = "restore" ] ; then
172174 fi
173175 brlog " INFO" " Start restore minio: ${BACKUP_FILE} "
174176 brlog " INFO" " Extracting archive..."
175- tar ${MINIO_TAR_OPTIONS[@]} -xf ${BACKUP_FILE} -C ${TMP_WORK_DIR} /${MINIO_BACKUP_DIR}
177+ tar " ${MINIO_TAR_OPTIONS[@]} " -xf ${BACKUP_FILE} -C ${TMP_WORK_DIR} /${MINIO_BACKUP_DIR}
176178 brlog " INFO" " Restoring data..."
177179 start_minio_port_forward
178- ${MC} ${MC_OPTS[@]} --quiet config host add wdminio ${MINIO_ENDPOINT_URL } ${MINIO_ACCESS_KEY } ${MINIO_SECRET_KEY } > /dev/null
179- for bucket in ` ls ${TMP_WORK_DIR} /${MINIO_BACKUP_DIR} `
180+ ${MC} " ${MC_OPTS[@]} " --quiet config host add wdminio ${S3_ENDPOINT_URL } ${S3_ACCESS_KEY } ${S3_SECRET_KEY } > /dev/null
181+ for bucket_path in " ${TMP_WORK_DIR} /${MINIO_BACKUP_DIR} " / *
180182 do
181- if ${MC} ${MC_OPTS[@]} ls wdminio | grep ${bucket} > /dev/null ; then
182- if [ -n " ` ${MC} ${MC_OPTS[@]} ls wdminio/${bucket} /` " ] ; then
183- ${MC} ${MC_OPTS[@]} --quiet rm --recursive --force --dangerous " wdminio/${bucket} /" > /dev/null
183+ bucket=" $( basename " ${bucket_path} " ) "
184+ if [ -n " ${BUCKET_SUFFIX} " ] && [[ " ${bucket} " != * " ${BUCKET_SUFFIX} " ]] ; then
185+ mv " ${TMP_WORK_DIR} /${MINIO_BACKUP_DIR} /${bucket} " " ${TMP_WORK_DIR} /${MINIO_BACKUP_DIR} /${bucket}${BUCKET_SUFFIX} "
186+ bucket=" ${bucket}${BUCKET_SUFFIX} "
187+ fi
188+ if ${MC} " ${MC_OPTS[@]} " ls wdminio | grep ${bucket} > /dev/null ; then
189+ if [ -n " $( ${MC} " ${MC_OPTS[@]} " ls wdminio/${bucket} /) " ] ; then
190+ ${MC} " ${MC_OPTS[@]} " --quiet rm --recursive --force --dangerous " wdminio/${bucket} /" > /dev/null
184191 fi
185192 if [ " ${bucket} " = " discovery-dfs" ] ; then
186193 continue
187194 fi
188195 set +e
189- ${MC} ${MC_OPTS[@]} --quiet mirror ${TMP_WORK_DIR} /${MINIO_BACKUP_DIR} /${bucket} wdminio/${bucket} & >> " ${BACKUP_RESTORE_LOG_DIR} /${CURRENT_COMPONENT} .log"
196+ ${MC} " ${MC_OPTS[@]} " --quiet mirror ${TMP_WORK_DIR} /${MINIO_BACKUP_DIR} /${bucket} wdminio/${bucket} & >> " ${BACKUP_RESTORE_LOG_DIR} /${CURRENT_COMPONENT} .log"
190197 RC=$?
191198 echo " RC=${RC} " >> " ${BACKUP_RESTORE_LOG_DIR} /${CURRENT_COMPONENT} .log"
192199 if [ $RC -ne 0 ] ; then
@@ -198,6 +205,8 @@ if [ "${COMMAND}" = "restore" ] ; then
198205 done
199206 stop_minio_port_forward
200207 brlog " INFO" " Done"
208+ brlog " INFO" " Restart setup jobs"
209+ restart_job " enrichment-model-copy orchestrator-setup"
201210 brlog " INFO" " Applying updates"
202211 . ./lib/restore-updates.bash
203212 minio_updates
0 commit comments