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:
parent
b36cf9f339
commit
a89e8d7afc
@ -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
|
||||
|
@ -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}"
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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"
|
||||
|
@ -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()
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user