Skip to content

Commit 79f83db

Browse files
committed
Fixed error handling in nasbackup.sh
1 parent 18dd883 commit 79f83db

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

scripts/vm/hypervisor/kvm/nasbackup.sh

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
## specific language governing permissions and limitations
1717
## under the License.
1818

19-
set -e
19+
set -eo pipefail
2020

2121
# CloudStack B&R NAS Backup and Recovery Tool for KVM
2222

@@ -108,9 +108,15 @@ backup_running_vm() {
108108
virsh -c qemu:///system domiflist $VM > $dest/domiflist.xml 2>/dev/null
109109
virsh -c qemu:///system domblklist $VM > $dest/domblklist.xml 2>/dev/null
110110

111-
until virsh -c qemu:///system domjobinfo $VM --completed --keep-completed 2>/dev/null | grep "Completed" > /dev/null; do
111+
while true; do
112+
status=$(virsh -c qemu:///system domjobinfo $VM --completed --keep-completed | awk '/Job type:/ {print $3}')
113+
case "$status" in
114+
Completed) break ;;
115+
Failed) log -ne "Virsh backup job failed"; exit 1 ;;
116+
esac
112117
sleep 5
113118
done
119+
114120
rm -f $dest/backup.xml
115121
sync
116122

@@ -163,7 +169,7 @@ mount_operation() {
163169
if [ ${NAS_TYPE} == "cifs" ]; then
164170
MOUNT_OPTS="${MOUNT_OPTS},nobrl"
165171
fi
166-
mount -t ${NAS_TYPE} ${NAS_ADDRESS} ${mount_point} $([[ ! -z "${MOUNT_OPTS}" ]] && echo -o ${MOUNT_OPTS}) | tee -a "$logFile"
172+
mount -t ${NAS_TYPE} ${NAS_ADDRESS} ${mount_point} $([[ ! -z "${MOUNT_OPTS}" ]] && echo -o ${MOUNT_OPTS}) 2>&1 | tee -a "$logFile"
167173
if [ $? -eq 0 ]; then
168174
log -ne "Successfully mounted ${NAS_TYPE} store"
169175
else

0 commit comments

Comments
 (0)