--- trunk/vz-clone.pl 2009/02/27 20:05:02 65 +++ trunk/vz-clone.pl 2009/02/27 20:49:06 66 @@ -34,19 +34,26 @@ } -if ( $action =~ m/(create|umount|destroy)/ ) { +if ( $action =~ m{(create|umount|destroy)} ) { my $clone; + my $snap; open(my $m, '-|', 'mount') || die "can't open mount: $!"; while(<$m>) { my @v = split(/\s+/,$_); - if ( $v[2] =~ m{/(private|root)/$CVEID$} && $v[5] =~ m/bind/ ) { + if ( $v[2] =~ m{/(private|root)/($VEID|$CVEID)$} && $v[5] =~ m{bind} ) { umount( $v[2] ); } elsif ( $v[2] =~ m{vz-clone-$CVEID$} ) { $clone = $v[2]; + } elsif ( $v[2] =~ m{-snap} ) { + $snap = $v[0]; + umount( $snap ); } } umount( $clone ) if $clone; - lvremove( '-f', $clone ); + if ( $action eq 'destroy' && -e $snap ) { + lvremove( '-f', $snap ); + exit; + } exit if $action eq 'umount'; } @@ -192,3 +199,4 @@ print $n qq{DISK_QUOTA="no"\n} if $use_snapshot; # don't wait for quota rebuild on startup print "\nPlease review config file: $conf/$CVEID.conf\nAdd NAT for new VE with: iptables -t nat -A POSTROUTING -s $ve_clone_ip -o eth0 -j MASQUERADE\nStart clone of $VEID with: vzctl start $CVEID\n" +