[Lxc-users] [PATCH 3/3] if after freezing the container the snapshot/rsync fails, unfreeze before exiting

InformatiQ rhanna at informatiq.org
Tue Aug 30 09:14:58 UTC 2011


Signed-off-by: InformatiQ <rhanna at informatiq.org>
---
 src/lxc/lxc-clone.in |   14 ++++++++++++--
 1 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/src/lxc/lxc-clone.in b/src/lxc/lxc-clone.in
index bc1af60..6cca6c0 100755
--- a/src/lxc/lxc-clone.in
+++ b/src/lxc/lxc-clone.in
@@ -198,10 +198,15 @@ if [ -b $oldroot ]; then
         if [ $container_running == "True" ]; then
             lxc-freeze -n $lxc_orig
         fi
-	lvcreate -s -L $lxc_size -n ${lxc_lv_prefix}${lxc_new}_snapshot $oldroot || exit 1
+	lvcreate -s -L $lxc_size -n ${lxc_lv_prefix}${lxc_new}_snapshot $oldroot
+        RETVAL=$?
         if [ $container_running == "True" ]; then
             lxc-unfreeze -n $lxc_orig
         fi
+        if [ $RETVAL -ne 0 ]; then
+            echo "snapshot creation failed"
+            exit 1
+        fi
         if [ $snapshot == "no" ]; then
             #mount snapshot
             mkdir -p ${rootfs}_snapshot
@@ -231,10 +236,15 @@ else
         if [ $container_running == True ];then
             lxc-freeze -n $lxc_orig
         fi
-	rsync -ax $lxc_path/$lxc_orig/rootfs $lxc_path/$lxc_new/rootfs || return 1
+	rsync -ax $lxc_path/$lxc_orig/rootfs $lxc_path/$lxc_new/rootfs
+        RETVAL=$?
         if [ $container_running == True ];then
             lxc-unfreeze -n $lxc_orig
         fi
+        if [ RETVAL -ne 0 ]; then
+            echo "copying rootfs failed"
+            exit 1
+        fi
 	echo "lxc.rootfs = $rootfs" >> $lxc_path/$lxc_new/config
 fi
 
-- 
1.7.6





More information about the lxc-users mailing list