1
0
mirror of https://github.com/OpenNebula/one.git synced 2025-03-23 22:50:09 +03:00

M #-: Use bash traps only on EXIT (#710)

This commit is contained in:
Vlastimil Holer 2021-01-25 22:52:15 +01:00 committed by GitHub
parent b36cf9f339
commit a89e8d7afc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 17 additions and 17 deletions

View File

@ -112,9 +112,9 @@ fi
COPY_CMD=$(cat <<EOF
if virsh -c $LIBVIRT_URI domfsfreeze $DEPLOY_ID ; then
trap "virsh -c $LIBVIRT_URI domfsthaw $DEPLOY_ID" EXIT TERM INT HUP
trap "virsh -c $LIBVIRT_URI domfsthaw $DEPLOY_ID" EXIT
elif virsh -c $LIBVIRT_URI suspend $DEPLOY_ID; then
trap "virsh -c $LIBVIRT_URI resume $DEPLOY_ID" EXIT TERM INT HUP
trap "virsh -c $LIBVIRT_URI resume $DEPLOY_ID" EXIT
else
echo "Could not domfsfreeze or suspend domain" >&2
exit 1

View File

@ -108,7 +108,7 @@ SNAP_CREATE_CMD=$(cat <<EOF
set -e -o pipefail
if virsh -c $LIBVIRT_URI domfsfreeze $DEPLOY_ID ; then
trap "virsh -c $LIBVIRT_URI domfsthaw $DEPLOY_ID" EXIT TERM INT HUP
trap "virsh -c $LIBVIRT_URI domfsthaw $DEPLOY_ID" EXIT
fi
RBD="${RBD}"

View File

@ -98,9 +98,9 @@ if [ "${LCM_STATE}" = '26' ] && [ "${SNAP_ID}" = '-1' ]; then
touch ${DST_PATH}
if ! virsh -c ${LIBVIRT_URI} blockcopy ${DEPLOY_ID} ${DISK_TARGET} ${DST_PATH} --wait --finish; then
if virsh -c ${LIBVIRT_URI} domfsfreeze ${DEPLOY_ID}; then
trap "virsh -c ${LIBVIRT_URI} domfsthaw ${DEPLOY_ID}" EXIT TERM INT HUP
trap "virsh -c ${LIBVIRT_URI} domfsthaw ${DEPLOY_ID}" EXIT
elif virsh -c ${LIBVIRT_URI} suspend ${DEPLOY_ID}; then
trap "virsh -c ${LIBVIRT_URI} resume ${DEPLOY_ID}" EXIT TERM INT HUP
trap "virsh -c ${LIBVIRT_URI} resume ${DEPLOY_ID}" EXIT
else
echo "Could not domfsfreeze or suspend domain" >&2
exit 1

View File

@ -93,9 +93,9 @@ if [ "${LCM_STATE}" = '26' ] && [ "${SNAP_ID}" = '-1' ]; then
touch ${DST_PATH}
if ! virsh -c ${LIBVIRT_URI} blockcopy ${DEPLOY_ID} ${DISK_TARGET} ${DST_PATH} --wait --finish; then
if virsh -c ${LIBVIRT_URI} domfsfreeze ${DEPLOY_ID}; then
trap "virsh -c ${LIBVIRT_URI} domfsthaw ${DEPLOY_ID}" EXIT TERM INT HUP
trap "virsh -c ${LIBVIRT_URI} domfsthaw ${DEPLOY_ID}" EXIT
elif virsh -c ${LIBVIRT_URI} suspend ${DEPLOY_ID}; then
trap "virsh -c ${LIBVIRT_URI} resume ${DEPLOY_ID}" EXIT TERM INT HUP
trap "virsh -c ${LIBVIRT_URI} resume ${DEPLOY_ID}" EXIT
else
echo "Could not domfsfreeze or suspend domain" >&2
exit 1

View File

@ -136,9 +136,9 @@ FILENAME="/tmp/snapshot-$VMID-$DISK_ID-$SNAP_ID"
echo "$DOC" > \$FILENAME
if virsh -c $LIBVIRT_URI domfsfreeze $DEPLOY_ID ; then
trap "virsh -c $LIBVIRT_URI domfsthaw $DEPLOY_ID" EXIT TERM INT HUP
trap "virsh -c $LIBVIRT_URI domfsthaw $DEPLOY_ID" EXIT
elif virsh -c $LIBVIRT_URI suspend $DEPLOY_ID; then
trap "virsh -c $LIBVIRT_URI resume $DEPLOY_ID" EXIT TERM INT HUP
trap "virsh -c $LIBVIRT_URI resume $DEPLOY_ID" EXIT
else
echo "Could not domfsfreeze or suspend domain" >&2
exit 1

View File

@ -126,9 +126,9 @@ FILENAME="/tmp/snapshot-$VMID-$DISK_ID-$SNAP_ID"
echo "$DOC" > \$FILENAME
if virsh -c $LIBVIRT_URI domfsfreeze $DEPLOY_ID ; then
trap "virsh -c $LIBVIRT_URI domfsthaw $DEPLOY_ID" EXIT TERM INT HUP
trap "virsh -c $LIBVIRT_URI domfsthaw $DEPLOY_ID" EXIT
elif virsh -c $LIBVIRT_URI suspend $DEPLOY_ID; then
trap "virsh -c $LIBVIRT_URI resume $DEPLOY_ID" EXIT TERM INT HUP
trap "virsh -c $LIBVIRT_URI resume $DEPLOY_ID" EXIT
else
echo "Could not domfsfreeze or suspend domain" >&2
exit 1

View File

@ -107,10 +107,10 @@ if ! retry_if "active block job" 3 5 virsh -c ${LIBVIRT_URI} blockcopy ${DEPLOY_
set -e -o pipefail
if virsh -c ${LIBVIRT_URI} domfsfreeze ${DEPLOY_ID}; then
trap "virsh -c ${LIBVIRT_URI} domfsthaw ${DEPLOY_ID}" EXIT TERM INT HUP
trap "virsh -c ${LIBVIRT_URI} domfsthaw ${DEPLOY_ID}" EXIT
$CP $SRC_PATH $SRC_TEMP_PATH
elif virsh -c ${LIBVIRT_URI} suspend ${DEPLOY_ID}; then
trap "virsh -c ${LIBVIRT_URI} resume ${DEPLOY_ID}" EXIT TERM INT HUP
trap "virsh -c ${LIBVIRT_URI} resume ${DEPLOY_ID}" EXIT
$CP $SRC_PATH $SRC_TEMP_PATH
else
echo "Could not domfsfreeze or suspend domain" >&2

View File

@ -78,7 +78,7 @@ MONITOR=$(ssh_monitor_and_log "$SRC_HOST" "$MONITOR_CMD" 'Get .monitor')
ssh_make_path "$DST_HOST" "$DST_PATH" "$MONITOR"
RANDOM_FILE=$(ssh "$DST_HOST" "mktemp -p \"$DST_DIR\"")
trap "ssh $DST_HOST \"rm -f $RANDOM_FILE\"" EXIT TERM INT HUP
trap "ssh $DST_HOST \"rm -f $RANDOM_FILE\"" EXIT
if ssh "$SRC_HOST" "test -f $RANDOM_FILE"; then
log "Not moving $SRC to $DST, they are the same path"
exit 0

View File

@ -177,12 +177,12 @@ else
if [ -n "$RAW_DISKS" ]; then
if virsh --connect $LIBVIRT_URI domfsfreeze $DEPLOY_ID; then
# local domfsthaw for the case migration fails
trap "virsh --connect $LIBVIRT_URI domfsthaw $DEPLOY_ID" EXIT TERM INT HUP
trap "virsh --connect $LIBVIRT_URI domfsthaw $DEPLOY_ID" EXIT
FREEZE="yes"
else
if virsh --connect $LIBVIRT_URI suspend $DEPLOY_ID; then
# local resume for the case migration fails
trap "virsh --connect $LIBVIRT_URI resume $DEPLOY_ID" EXIT TERM INT HUP
trap "virsh --connect $LIBVIRT_URI resume $DEPLOY_ID" EXIT
SUSPEND="yes"
else
error_message "Could not freeze or suspend the domain"

View File

@ -31,7 +31,7 @@ NEW_DISK=$(mktemp "${DISK_SRC}.XXXXXX")
NEW_DBFS=$(mktemp "${DISK_SRC}.XXXXXX")
chmod go-rwx "${NEW_EXTR}" "${NEW_DISK}" "${NEW_DBFS}"
trap 'rm -rf "${NEW_EXTR}" "${NEW_DISK}" "${NEW_DBFS}"' EXIT TERM INT HUP
trap 'rm -rf "${NEW_EXTR}" "${NEW_DISK}" "${NEW_DBFS}"' EXIT
debugfs_do()
{