Skip to content

Commit e536b21

Browse files
Merge pull request #266 from yuki462-b/update-discovery-scripts-for-4.8.6
Updating backup restore scripts for WD 4.8.6.
2 parents 39b7526 + 6ad8e99 commit e536b21

File tree

7 files changed

+187
-64
lines changed

7 files changed

+187
-64
lines changed

discovery-data/latest/elastic-backup-restore.sh

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -82,9 +82,10 @@ if [ $(compare_version ${WD_VERSION} "4.7.0") -ge 0 ] ; then
8282
create_elastic_shared_pvc
8383
# Mount shared volume
8484
oc ${OC_ARGS} patch wd "${TENANT_NAME}" --type merge --patch "{\"spec\": {\"elasticsearch\": {\"sharedStoragePvc\": \"${ELASTIC_SHARED_PVC}\"}}}"
85+
ELASTIC_DATA_STS=$(oc ${OC_ARGS} get sts -l "icpdsupport/addOnId=discovery,icpdsupport/app=elastic,tenant=${TENANT_NAME},ibm-es-data=True" -o jsonpath='{.items[*].metadata.name}')
8586
while :
8687
do
87-
test -n "$(oc ${OC_ARGS} get sts ${TENANT_NAME}-ibm-elasticsearch-es-server-data -o jsonpath="{..volumes[?(@.persistentVolumeClaim.claimName==\"${ELASTIC_SHARED_PVC}\")]}")" && break
88+
test -n "$(oc ${OC_ARGS} get sts ${ELASTIC_DATA_STS} -o jsonpath="{..volumes[?(@.persistentVolumeClaim.claimName==\"${ELASTIC_SHARED_PVC}\")]}")" && break
8889
brlog "INFO" "Wait for ElasticSearch to mount shared PVC"
8990
sleep 30
9091
done
@@ -97,7 +98,7 @@ if [ $(compare_version ${WD_VERSION} "4.7.0") -ge 0 ] ; then
9798
sleep 30
9899
# Update configmap
99100
brlog "INFO" "Update ConfigMap for ElastisSearch configuration"
100-
oc ${OC_ARGS} rollout status sts "${TENANT_NAME}-ibm-elasticsearch-es-server-data"
101+
oc ${OC_ARGS} rollout status sts "${ELASTIC_DATA_STS}"
101102
for cm in $(oc ${OC_ARGS} get cm -l "icpdsupport/addOnId=discovery,icpdsupport/app=elastic,tenant=${TENANT_NAME}" -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}' | grep -v "cpdbr")
102103
do
103104
update_elastic_configmap "${cm}"
@@ -242,14 +243,14 @@ function clean_up(){
242243
done ' ${OC_ARGS} -c elasticsearch
243244
echo
244245

245-
if [ $(compare_version ${WD_VERSION} "5.0.0") -lt 0 ]; then
246+
if [ $(compare_version ${WD_VERSION} "4.8.6") -lt 0 ]; then
246247
run_cmd_in_pod ${ELASTIC_POD} 'export ELASTIC_ENDPOINT=https://localhost:9200 && \
247248
curl -XPUT -s -k -u ${ELASTIC_USER}:${ELASTIC_PASSWORD} "${ELASTIC_ENDPOINT}/_cluster/settings" -H "Content-Type: application/json" -d"{\"transient\": {\"discovery.zen.commit_timeout\": null, \"discovery.zen.publish_timeout\": null}}"' ${OC_ARGS} -c elasticsearch
248249
fi
249250

250251
if [ $(compare_version ${WD_VERSION} "4.7.0") -lt 0 ] ; then
251252
start_minio_port_forward
252-
${MC} "${MC_OPTS[@]}" rm --recursive --force --dangerous wdminio/${ELASTIC_BACKUP_BUCKET}/ > /dev/null
253+
"${MC}" "${MC_OPTS[@]}" rm --recursive --force --dangerous wdminio/${ELASTIC_BACKUP_BUCKET}/ > /dev/null
253254
stop_minio_port_forward
254255
echo
255256
else
@@ -272,11 +273,11 @@ function clean_up(){
272273
brlog "INFO" "Waiting for ElasticSearch pod start up"
273274
while :
274275
do
275-
oc ${OC_ARGS} get sts ${TENANT_NAME}-ibm-elasticsearch-es-server-data &> /dev/null && break
276+
oc ${OC_ARGS} get sts "${ELASTIC_DATA_STS}" &> /dev/null && break
276277
brlog "INFO" "Wait for ElasticSearch statefulset"
277278
sleep 30
278279
done
279-
oc ${OC_ARGS} rollout status sts "${TENANT_NAME}-ibm-elasticsearch-es-server-data"
280+
oc ${OC_ARGS} rollout status sts "${ELASTIC_DATA_STS}"
280281
fi
281282
fi
282283
}
@@ -294,9 +295,9 @@ if [ ${COMMAND} = 'backup' ] ; then
294295
if [ $(compare_version ${WD_VERSION} "4.7.0") -lt 0 ] ; then
295296
# Clean up MinIO
296297
start_minio_port_forward
297-
${MC} "${MC_OPTS[@]}" config host add wdminio ${S3_ENDPOINT_URL} ${S3_ACCESS_KEY} ${S3_SECRET_KEY} > /dev/null
298-
if [ -n "$(${MC} "${MC_OPTS[@]}" ls wdminio/${ELASTIC_BACKUP_BUCKET}/)" ] ; then
299-
${MC} "${MC_OPTS[@]}" rm --recursive --force --dangerous wdminio/${ELASTIC_BACKUP_BUCKET}/ > /dev/null
298+
"${MC}" "${MC_OPTS[@]}" config host add wdminio ${S3_ENDPOINT_URL} ${S3_ACCESS_KEY} ${S3_SECRET_KEY} > /dev/null
299+
if [ -n "$("${MC}" "${MC_OPTS[@]}" ls wdminio/${ELASTIC_BACKUP_BUCKET}/)" ] ; then
300+
"${MC}" "${MC_OPTS[@]}" rm --recursive --force --dangerous wdminio/${ELASTIC_BACKUP_BUCKET}/ > /dev/null
300301
fi
301302
stop_minio_port_forward
302303
else
@@ -319,12 +320,12 @@ if [ ${COMMAND} = 'backup' ] ; then
319320
brlog "INFO" "Transfering snapshot from MinIO"
320321
cat << EOF >> "${BACKUP_RESTORE_LOG_DIR}/${CURRENT_COMPONENT}.log"
321322
===================================================
322-
${MC} ${MC_OPTS[@]} mirror wdminio/${ELASTIC_BACKUP_BUCKET} ${TMP_WORK_DIR}/${ELASTIC_BACKUP_DIR}/${ELASTIC_BACKUP_BUCKET}"
323+
"${MC}" ${MC_OPTS[@]} mirror wdminio/${ELASTIC_BACKUP_BUCKET} ${TMP_WORK_DIR}/${ELASTIC_BACKUP_DIR}/${ELASTIC_BACKUP_BUCKET}"
323324
===================================================
324325
EOF
325326
set +e
326327
start_minio_port_forward
327-
${MC} "${MC_OPTS[@]}" mirror wdminio/${ELASTIC_BACKUP_BUCKET} ${TMP_WORK_DIR}/${ELASTIC_BACKUP_DIR}/${ELASTIC_BACKUP_BUCKET} &>> "${BACKUP_RESTORE_LOG_DIR}/${CURRENT_COMPONENT}.log"
328+
"${MC}" "${MC_OPTS[@]}" mirror wdminio/${ELASTIC_BACKUP_BUCKET} ${TMP_WORK_DIR}/${ELASTIC_BACKUP_DIR}/${ELASTIC_BACKUP_BUCKET} &>> "${BACKUP_RESTORE_LOG_DIR}/${CURRENT_COMPONENT}.log"
328329
RC=$?
329330
stop_minio_port_forward
330331
echo "RC=${RC}" >> "${BACKUP_RESTORE_LOG_DIR}/${CURRENT_COMPONENT}.log"
@@ -382,27 +383,27 @@ if [ "${COMMAND}" = 'restore' ] ; then
382383
tar "${ELASTIC_TAR_OPTIONS[@]}" -xf ${BACKUP_FILE} -C ${TMP_WORK_DIR}/${ELASTIC_BACKUP_DIR}/${ELASTIC_BACKUP_BUCKET}/${ELASTIC_SNAPSHOT_PATH}
383384
brlog "INFO" "Transferring data to MinIO..."
384385
start_minio_port_forward
385-
${MC} "${MC_OPTS[@]}" config host add wdminio ${S3_ENDPOINT_URL} ${S3_ACCESS_KEY} ${S3_SECRET_KEY} > /dev/null
386-
if [ -n "$(${MC} "${MC_OPTS[@]}" ls wdminio/${ELASTIC_BACKUP_BUCKET}/)" ] ; then
387-
${MC} "${MC_OPTS[@]}" rm --recursive --force --dangerous wdminio/${ELASTIC_BACKUP_BUCKET}/ > /dev/null
386+
"${MC}" "${MC_OPTS[@]}" config host add wdminio ${S3_ENDPOINT_URL} ${S3_ACCESS_KEY} ${S3_SECRET_KEY} > /dev/null
387+
if [ -n "$("${MC}" "${MC_OPTS[@]}" ls wdminio/${ELASTIC_BACKUP_BUCKET}/)" ] ; then
388+
"${MC}" "${MC_OPTS[@]}" rm --recursive --force --dangerous wdminio/${ELASTIC_BACKUP_BUCKET}/ > /dev/null
388389
fi
389390
stop_minio_port_forward
390391
set +e
391392
cat << EOF >> "${BACKUP_RESTORE_LOG_DIR}/${CURRENT_COMPONENT}.log"
392393
===================================================
393-
${MC} ${MC_OPTS[@]} mirror --debug ${TMP_WORK_DIR}/${ELASTIC_BACKUP_DIR}/${ELASTIC_BACKUP_BUCKET} wdminio/${ELASTIC_BACKUP_BUCKET}
394+
"${MC}" ${MC_OPTS[@]} mirror --debug ${TMP_WORK_DIR}/${ELASTIC_BACKUP_DIR}/${ELASTIC_BACKUP_BUCKET} wdminio/${ELASTIC_BACKUP_BUCKET}
394395
===================================================
395396
EOF
396397
start_minio_port_forward
397-
${MC} "${MC_OPTS[@]}" mirror ${TMP_WORK_DIR}/${ELASTIC_BACKUP_DIR}/${ELASTIC_BACKUP_BUCKET} wdminio/${ELASTIC_BACKUP_BUCKET} &>> "${BACKUP_RESTORE_LOG_DIR}/${CURRENT_COMPONENT}.log"
398+
"${MC}" "${MC_OPTS[@]}" mirror ${TMP_WORK_DIR}/${ELASTIC_BACKUP_DIR}/${ELASTIC_BACKUP_BUCKET} wdminio/${ELASTIC_BACKUP_BUCKET} &>> "${BACKUP_RESTORE_LOG_DIR}/${CURRENT_COMPONENT}.log"
398399
RC=$?
399400
stop_minio_port_forward
400401
echo "RC=${RC}" >> "${BACKUP_RESTORE_LOG_DIR}/${CURRENT_COMPONENT}.log"
401402
if [ $RC -ne 0 ] ; then
402403
brlog "ERROR" "Some files could not be transfered. Consider to use '--use-job' and '--pvc' option. Please see help (--help) for details."
403404
brlog "INFO" "Clean up"
404405
start_minio_port_forward
405-
${MC} "${MC_OPTS[@]}" rm --recursive --force --dangerous wdminio/${ELASTIC_BACKUP_BUCKET}/ > /dev/null
406+
"${MC}" "${MC_OPTS[@]}" rm --recursive --force --dangerous wdminio/${ELASTIC_BACKUP_BUCKET}/ > /dev/null
406407
stop_minio_port_forward
407408
exit 1
408409
fi
@@ -421,7 +422,7 @@ EOF
421422
curl -XPUT --fail -s -k -u ${ELASTIC_USER}:${ELASTIC_PASSWORD} "${ELASTIC_ENDPOINT}/_snapshot/'${ELASTIC_REPO}'?master_timeout='${ELASTIC_REQUEST_TIMEOUT}'" -H "Content-Type: application/json" '"${REPO_CONFIGURATION}"' && \
422423
curl -XPOST --fail -s -k -u ${ELASTIC_USER}:${ELASTIC_PASSWORD} "${ELASTIC_ENDPOINT}/_snapshot/'${ELASTIC_REPO}'/'${ELASTIC_SNAPSHOT}'/_restore?master_timeout='${ELASTIC_REQUEST_TIMEOUT}'" -H "Content-Type: application/json" -d"{\"indices\": \"*,-application_logs-*\", \"expand_wildcards\": \"all\", \"allow_no_indices\": \"true\"}" | grep accepted && echo ' ${OC_ARGS} -c elasticsearch
423424

424-
if [ $(compare_version ${WD_VERSION} "5.0.0") -lt 0 ]; then
425+
if [ $(compare_version ${WD_VERSION} "4.8.6") -lt 0 ]; then
425426
run_cmd_in_pod ${ELASTIC_POD} 'export ELASTIC_ENDPOINT=https://localhost:9200 && \
426427
curl -XPUT --fail -s -k -u ${ELASTIC_USER}:${ELASTIC_PASSWORD} "${ELASTIC_ENDPOINT}/_cluster/settings" -H "Content-Type: application/json" -d"{\"transient\": {\"discovery.zen.commit_timeout\": \"'${ELASTIC_REQUEST_TIMEOUT}'\", \"discovery.zen.publish_timeout\": \"'${ELASTIC_REQUEST_TIMEOUT}'\"}}" ' ${OC_ARGS} -c elasticsearch
427428
fi

discovery-data/latest/lib/function.bash

Lines changed: 79 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,17 @@ trap_add(){
4242
trap "${cmd}" 0 1 2 3 15
4343
}
4444

45-
trap_remove(){
46-
# Remove $1 command from 'trap_commands'.
47-
trap_commands=( "${trap_commands[@]/$1}" )
45+
trap_remove() {
46+
local element_to_remove="$1"
47+
48+
# Remove element_to_remove from trap_commands array.
49+
new_trap_commands=()
50+
for element in "${trap_commands[@]}"; do
51+
if [[ "$element" != "$element_to_remove" ]]; then
52+
new_trap_commands+=("$element")
53+
fi
54+
done
55+
trap_commands=("${new_trap_commands[@]}")
4856

4957
# NOTE: if 'trap_commands' is empty, "${trap_commands}" cause unbound variable error when set -u.
5058
if [[ -z "${trap_commands[@]}" ]]; then
@@ -142,6 +150,8 @@ get_version(){
142150
fi
143151
}
144152

153+
# Usage: compare_version VER_1 VER_2.
154+
# Output: return -1 if VER_1 < VER_2, 0 if VER_1 == VER_2, and +1 if VER_1 > VER_2.
145155
compare_version(){
146156
VER_1=(${1//./ })
147157
VER_2=(${2//./ })
@@ -397,6 +407,62 @@ get_mc(){
397407
fi
398408
}
399409

410+
# Compare two timestamps (i.e. 2024-06-12T14:34:03Z).
411+
# Return 1 if timestamp1 > timestamp2 else 0.
412+
compare_timestamps() {
413+
local timestamp1="$1"
414+
local timestamp2="$2"
415+
416+
# Convert timestamps to seconds since epoch
417+
local epoch1=$(date -d "$timestamp1" +%s)
418+
local epoch2=$(date -d "$timestamp2" +%s)
419+
420+
# Compare the two epoch values
421+
if [ "$epoch1" -gt "$epoch2" ]; then
422+
echo "1"
423+
else
424+
echo "0"
425+
fi
426+
}
427+
428+
# Extract timestamp from `mc --version` output.
429+
get_mc_version() {
430+
local version_output
431+
version_output=$("${MC}" --version 2>/dev/null)
432+
433+
local timestamp
434+
timestamp=$(echo "$version_output" | grep -oP '(?<=mc version RELEASE\.)[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}-[0-9]{2}-[0-9]{2}Z')
435+
436+
if [[ -z "$timestamp" ]]; then
437+
echo "Error extracting timestamp"
438+
return 1
439+
fi
440+
441+
# Correct format (replace hyphens with colons only in time part).
442+
timestamp=$(echo "$timestamp" | sed -E 's/(T[0-9]{2})-([0-9]{2})-([0-9]{2}Z)/\1:\2:\3/')
443+
echo "$timestamp"
444+
}
445+
446+
# Judge if the --retry option is available in mc mirror command.
447+
# If the option is available return 1 else 0.
448+
has_mc_mirror_retry() {
449+
local timestamp_current
450+
local timestamp_comparison="2023-10-24T05:18:28Z"
451+
452+
timestamp_current=$(get_mc_version)
453+
454+
if [[ $? -ne 0 ]]; then
455+
echo "Error extracting timestamp"
456+
return 1
457+
fi
458+
459+
if [ "$(compare_timestamps "$timestamp_current" "$timestamp_comparison")" -eq 1 ]; then
460+
echo "1"
461+
else
462+
echo "0"
463+
fi
464+
}
465+
400466
start_minio_port_forward(){
401467
touch ${TMP_WORK_DIR}/keep_minio_port_forward
402468
trap "rm -f ${TMP_WORK_DIR}/keep_minio_port_forward" 0 1 2 3 15
@@ -408,7 +474,7 @@ keep_minio_port_forward(){
408474
while [ -e ${TMP_WORK_DIR}/keep_minio_port_forward ]
409475
do
410476
if [ -n "${S3_NAMESPACE+UNDEF}" ] ; then
411-
oc ${OC_ARGS} -n "${S3_NAMESPACE}" port-forward svc/${S3_PORT_FORWARD_SVC} ${S3_FORWARD_PORT}:${S3_PORT} &>> "${BACKUP_RESTORE_LOG_DIR}/port-forward.log" &
477+
oc ${OC_ARGS} -n "${S3_NAMESPACE}" port-forward "svc/${S3_PORT_FORWARD_SVC}" "${S3_FORWARD_PORT}:${S3_PORT}" &>> "${BACKUP_RESTORE_LOG_DIR}/port-forward.log" &
412478
else
413479
oc ${OC_ARGS} port-forward svc/${S3_PORT_FORWARD_SVC} ${S3_FORWARD_PORT}:${S3_PORT} &>> "${BACKUP_RESTORE_LOG_DIR}/port-forward.log" &
414480
fi
@@ -488,7 +554,7 @@ Backup/Restore failed.
488554
You can restart ${COMMAND} with adding "--continue-from" option:
489555
ex) ./all-backup-restore.sh ${COMMAND} -f ${BACKUP_FILE} --continue-from ${CURRENT_COMPONENT} ${RETRY_ADDITIONAL_OPTION:-}
490556
You can unquiesce WatsonDiscovery by this command:
491-
oc patch wd wd --type merge --patch '{"spec": {"shared": {"quiesce": {"enabled": false}}}}'
557+
oc patch wd ${TENANT_NAME} --type merge --patch '{"spec": {"shared": {"quiesce": {"enabled": false}}}}'
492558
EOS
493559
)
494560
brlog "ERROR" "${message}"
@@ -577,10 +643,10 @@ get_migrator_image(){
577643
if [ $(compare_version "${wd_version}" "4.6.0") -le 0 ] ; then
578644
echo "$(get_migrator_repo):${MIGRATOR_TAG:-$(get_migrator_tag)}"
579645
else
580-
utils_repo="$(oc get watsondiscoveryapi wd -o jsonpath='{.spec.shared.dockerRegistryPrefix}')"
581-
utils_image="$(oc get watsondiscoveryapi wd -o jsonpath='{.spec.shared.initContainer.utils.image.name}')"
582-
utils_tag="$(oc get watsondiscoveryapi wd -o jsonpath='{.spec.shared.initContainer.utils.image.tag}')"
583-
utils_digest="$(oc get watsondiscoveryapi wd -o jsonpath='{.spec.shared.initContainer.utils.image.digest}')"
646+
utils_repo="$(oc get watsondiscoveryapi ${TENANT_NAME} -o jsonpath='{.spec.shared.dockerRegistryPrefix}')"
647+
utils_image="$(oc get watsondiscoveryapi ${TENANT_NAME} -o jsonpath='{.spec.shared.initContainer.utils.image.name}')"
648+
utils_tag="$(oc get watsondiscoveryapi ${TENANT_NAME} -o jsonpath='{.spec.shared.initContainer.utils.image.tag}')"
649+
utils_digest="$(oc get watsondiscoveryapi ${TENANT_NAME} -o jsonpath='{.spec.shared.initContainer.utils.image.digest}')"
584650
echo "${utils_repo}/${utils_image}:${utils_tag}@${utils_digest}"
585651
fi
586652
}
@@ -1351,7 +1417,7 @@ create_restore_instance_mappings(){
13511417
fi
13521418
done
13531419
else
1354-
brlog "INFO" "No Discovery instance exist. Create new one."
1420+
brlog "INFO" "No Discovery instance exist. Creating a new one."
13551421
local src_instances=( $(fetch_cmd_result ${ZEN_ACCESS_POD} "jq -r '.instance_mappings[].source_instance_id' /tmp/mapping.json") )
13561422
local display_names=( $(fetch_cmd_result ${ZEN_ACCESS_POD} "jq -r '.instance_mappings[].display_name' /tmp/mapping.json") )
13571423
for i in "${!src_instances[@]}"
@@ -1375,7 +1441,7 @@ create_restore_instance_mappings(){
13751441
}
13761442

13771443
check_instance_mappings(){
1378-
brlog "INFO" "Check instance mapping"
1444+
brlog "INFO" "Checking instance mapping"
13791445
if [ -z "${MAPPING_FILE:+UNDEF}" ] ; then
13801446
brlog "INFO" "Mapping file is not specified"
13811447
export MAPPING_FILE="${BACKUP_DIR}/instance_mapping.json"
@@ -1466,11 +1532,11 @@ create_service_instance(){
14661532
fi
14671533
fi
14681534
if [ -z "${ZEN_UID+UNDEF}" ] ; then
1469-
brlog "INFO" "Get CP4D user ID for ${ZEN_USER_NAME}" >&2
1535+
brlog "INFO" "Getting CP4D user ID for ${ZEN_USER_NAME}" >&2
14701536
token="$(fetch_cmd_result ${ZEN_ACCESS_POD} "curl -ks '${ZEN_CORE_API_ENDPOINT}/internal/v1/service_token?expiration_time=1000' -H 'secret: ${ZEN_CORE_TOKEN}' -H 'cache-control: no-cache' | jq -r .token")"
14711537
ZEN_UID="$(fetch_cmd_result ${ZEN_ACCESS_POD} "curl -ks '${ZEN_CORE_API_ENDPOINT}/openapi/v1/users/${ZEN_USER_NAME}' -H 'Authorization: Bearer ${token}' | jq -r '.UserInfo.uid'")"
14721538
fi
1473-
brlog "INFO" "Create Discovery instance as ${ZEN_USER_NAME}:${ZEN_UID}" >&2
1539+
brlog "INFO" "Creating Discovery instance as ${ZEN_USER_NAME}:${ZEN_UID}" >&2
14741540
local token=$(fetch_cmd_result ${ZEN_ACCESS_POD} "curl -ks '${ZEN_CORE_API_ENDPOINT}/internal/v1/service_token?uid=${ZEN_UID}&username=${ZEN_USER_NAME}&display_name=${ZEN_USER_NAME}' -H 'secret: ${ZEN_CORE_TOKEN}' -H 'cache-control: no-cache' | jq -r .token")
14751541
local instance_id=$(fetch_cmd_result ${ZEN_ACCESS_POD} "curl -ks -X POST '${WATSON_GATEWAY_ENDPOINT}/api/ibmcloud/resource-controller/resource_instances' -H 'Authorization: Bearer ${token}' -H 'Content-Type: application/json' -d@/tmp/request.json | jq -r 'if .zen_id == null or .zen_id == \"\" then \"null\" else .zen_id end'")
14761542
if [ "${instance_id}" != "null" ] ; then

discovery-data/latest/minio-backup-restore.sh

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -113,20 +113,30 @@ fi
113113
export MINIO_CONFIG_DIR="${PWD}/${TMP_WORK_DIR}/.mc"
114114
MC_OPTS=(--config-dir ${MINIO_CONFIG_DIR} --insecure)
115115

116+
# mc mirror command options.
117+
MIRROR_OPTS=(--quiet)
118+
# NOTE: --retry flag is currently a boolean flag and cannot specify the how many times to retry.
119+
if [ "$(has_mc_mirror_retry)" -eq 1 ]; then
120+
MIRROR_OPTS+=("--retry")
121+
fi
122+
if [[ -z "${LOG_LEVEL_NUM:+UNDEF}" ]] || [ "$LOG_LEVEL_NUM" -ge 3 ]; then
123+
MIRROR_OPTS+=("--debug")
124+
fi
125+
116126
BUCKET_SUFFIX="$(get_bucket_suffix)"
117127

118128
# backup
119129
if [ "${COMMAND}" = "backup" ] ; then
120130
brlog "INFO" "Start backup minio"
121131
brlog "INFO" "Backup data..."
122132
start_minio_port_forward
123-
${MC} "${MC_OPTS[@]}" --quiet config host add wdminio ${S3_ENDPOINT_URL} ${S3_ACCESS_KEY} ${S3_SECRET_KEY} > /dev/null
133+
"${MC}" "${MC_OPTS[@]}" --quiet config host add wdminio ${S3_ENDPOINT_URL} ${S3_ACCESS_KEY} ${S3_SECRET_KEY} > /dev/null
124134
EXCLUDE_OBJECTS=$(cat "${SCRIPT_DIR}/src/minio_exclude_paths")
125135
if [ $(compare_version "$(get_version)" "4.7.0") -ge 0 ] ; then
126136
EXCLUDE_OBJECTS+=$'\n'
127137
EXCLUDE_OBJECTS+="$(cat "${SCRIPT_DIR}/src/mcg_exclude_paths")"
128138
fi
129-
for bucket in $(${MC} "${MC_OPTS[@]}" ls wdminio | sed ${SED_REG_OPT} "s|.*[0-9]+B\ (.*)/.*|\1|g" | grep -v ${ELASTIC_BACKUP_BUCKET})
139+
for bucket in $("${MC}" "${MC_OPTS[@]}" ls wdminio | sed ${SED_REG_OPT} "s|.*[0-9]+B\ (.*)/.*|\1|g" | grep -v ${ELASTIC_BACKUP_BUCKET})
130140
do
131141
EXTRA_MC_MIRROR_COMMAND=()
132142
ORG_IFS=${IFS}
@@ -145,7 +155,7 @@ if [ "${COMMAND}" = "backup" ] ; then
145155
IFS=${ORG_IFS}
146156
cd ${TMP_WORK_DIR}
147157
set +e
148-
${MC} "${MC_OPTS[@]}" --quiet mirror "${EXTRA_MC_MIRROR_COMMAND[@]}" wdminio/${bucket} ${MINIO_BACKUP_DIR}/${bucket} &>> "${SCRIPT_DIR}/${BACKUP_RESTORE_LOG_DIR}/${CURRENT_COMPONENT}.log"
158+
"${MC}" "${MC_OPTS[@]}" mirror "${MIRROR_OPTS[@]}" "${EXTRA_MC_MIRROR_COMMAND[@]}" wdminio/${bucket} ${MINIO_BACKUP_DIR}/${bucket} &>> "${SCRIPT_DIR}/${BACKUP_RESTORE_LOG_DIR}/${CURRENT_COMPONENT}.log"
149159
RC=$?
150160
echo "RC=${RC}" >> "${SCRIPT_DIR}/${BACKUP_RESTORE_LOG_DIR}/${CURRENT_COMPONENT}.log"
151161
if [ $RC -ne 0 ] ; then
@@ -181,23 +191,24 @@ if [ "${COMMAND}" = "restore" ] ; then
181191
tar "${MINIO_TAR_OPTIONS[@]}" -xf ${BACKUP_FILE} -C ${TMP_WORK_DIR}/${MINIO_BACKUP_DIR}
182192
brlog "INFO" "Restoring data..."
183193
start_minio_port_forward
184-
${MC} "${MC_OPTS[@]}" --quiet config host add wdminio ${S3_ENDPOINT_URL} ${S3_ACCESS_KEY} ${S3_SECRET_KEY} > /dev/null
194+
"${MC}" "${MC_OPTS[@]}" --quiet config host add wdminio ${S3_ENDPOINT_URL} ${S3_ACCESS_KEY} ${S3_SECRET_KEY} > /dev/null
185195
for bucket_path in "${TMP_WORK_DIR}/${MINIO_BACKUP_DIR}"/*
186196
do
187197
bucket="$(basename "${bucket_path}")"
198+
brlog "DEBUG" "Restoring bucket '$bucket' ..."
188199
if [ -n "${BUCKET_SUFFIX}" ] && [[ "${bucket}" != *"${BUCKET_SUFFIX}" ]] ; then
189200
mv "${TMP_WORK_DIR}/${MINIO_BACKUP_DIR}/${bucket}" "${TMP_WORK_DIR}/${MINIO_BACKUP_DIR}/${bucket}${BUCKET_SUFFIX}"
190201
bucket="${bucket}${BUCKET_SUFFIX}"
191202
fi
192-
if ${MC} "${MC_OPTS[@]}" ls wdminio | grep ${bucket} > /dev/null ; then
193-
if [ -n "$(${MC} "${MC_OPTS[@]}" ls wdminio/${bucket}/)" ] ; then
194-
${MC} "${MC_OPTS[@]}" --quiet rm --recursive --force --dangerous "wdminio/${bucket}/" > /dev/null
203+
if "${MC}" "${MC_OPTS[@]}" ls wdminio | grep ${bucket} > /dev/null ; then
204+
if [ -n "$("${MC}" "${MC_OPTS[@]}" ls wdminio/${bucket}/)" ] ; then
205+
"${MC}" "${MC_OPTS[@]}" --quiet rm --recursive --force --dangerous "wdminio/${bucket}/" > /dev/null
195206
fi
196207
if [ "${bucket}" = "discovery-dfs" ] ; then
197208
continue
198209
fi
199210
set +e
200-
${MC} "${MC_OPTS[@]}" --quiet mirror ${TMP_WORK_DIR}/${MINIO_BACKUP_DIR}/${bucket} wdminio/${bucket} &>> "${BACKUP_RESTORE_LOG_DIR}/${CURRENT_COMPONENT}.log"
211+
"${MC}" "${MC_OPTS[@]}" mirror "${MIRROR_OPTS[@]}" ${TMP_WORK_DIR}/${MINIO_BACKUP_DIR}/${bucket} wdminio/${bucket} &>> "${BACKUP_RESTORE_LOG_DIR}/${CURRENT_COMPONENT}.log"
201212
RC=$?
202213
echo "RC=${RC}" >> "${BACKUP_RESTORE_LOG_DIR}/${CURRENT_COMPONENT}.log"
203214
if [ $RC -ne 0 ] ; then

0 commit comments

Comments
 (0)