1
0
mirror of synced 2026-01-19 17:18:39 +00:00

2007-02-25 19:07:47 by steve

Rollback image creation upon failure.
This commit is contained in:
steve 2007-02-25 19:07:48 +00:00
parent 5ba1eb00e9
commit 02503c6b6c
2 changed files with 34 additions and 3 deletions

View File

@ -50,6 +50,8 @@ xen-create-image - Easily create new Xen instances with networking and OpenSSH.
--initrd Specify the initial ramdisk
If an image is specified it must exist.
--keep Don't delete our images if installation fails.
--kernel Set the path to the kernel to use for domU.
If a kernel is specified it must exist.
@ -498,7 +500,7 @@ Install an X11 server, using VNC and XDM
--
http://www.steve.org.uk/
$Id: xen-create-image,v 1.130 2007-02-25 12:45:13 steve Exp $
$Id: xen-create-image,v 1.131 2007-02-25 19:07:48 steve Exp $
=cut
@ -542,6 +544,14 @@ my %CONFIG;
my $MOUNT_POINT = undef;
#
# This flag is set upon failure, after images have been created.
#
# It is used so that we can automatically "rollback" upon failure.
#
my $FAIL = 0;
#
# Release number.
@ -682,6 +692,7 @@ else
# Can't happen we didn't get an installation type.
logprint( "Error: No recognised installation type.\n" );
logprint( "Please specify either a directory, lvm, or evms volume to use.\n");
$FAIL = 1;
exit;
}
@ -720,6 +731,7 @@ if ( ! $CONFIG{'no-install'} )
if ( ! -x $MOUNT_POINT . "/bin/ls" )
{
logprint( "System installation failed. Aborting\n");
$FAIL = 1;
exit;
}
@ -1111,7 +1123,7 @@ sub parseCommandLineArguments
if ( $VERSION )
{
my $REVISION = '$Revision: 1.130 $';
my $REVISION = '$Revision: 1.131 $';
if ( $REVISION =~ /1.([0-9.]+) / )
{
$REVISION = $1;
@ -2130,6 +2142,7 @@ sub mountImage
{
logprint( "I don't know what to mount!\n" );
logprint( "Please specify '--dir' or '--lvm' or '--evms'\n" );
$FAIL = 1;
exit;
}
@ -2407,6 +2420,7 @@ sub runXenConfigCreation
logprint( "The Xen configuration file $file exists\n" );
logprint( "Specify --force to force overwriting it.\n" );
logprint( "Aborting\n" );
$FAIL = 1;
exit;
}
}
@ -2564,6 +2578,7 @@ sub runCommand
{
logprint( "Running command '$cmd' failed.\n" );
logprint( "Aborting\n" );
$FAIL = 1;
exit;
}
@ -2661,4 +2676,18 @@ sub END
print "\n\nLogfile produced at:\n";
print "\t /var/log/xen-tools/$CONFIG{'hostname'}.log\n";
}
#
# Did we fail? If so then we should remove the broken installation,
# unless "--keep" was specified.
#
if ( $FAILED && ( ! $CONFIG{'keep'} ) )
{
#
# Run the command
#
$CONFIG{'verbose'} && logprint( "Removing failed install: $CONFIG{'hostname'}\n" );
system( "xen-delete-image --hostname=$CONFIG{'hostname'}" );
}
}

4
debian/changelog vendored
View File

@ -11,7 +11,9 @@ xen-tools (3.2-1) unstable; urgency=low
image. (Close: #401206)
* Setup correct security sources for apt-get.
(Closes: #407543)
* Automatically cleanup if installation fails.
(Closes: #383029)
-- Steve Kemp <skx@debian.org> Fri, 23 Feb 2007 13:36:28 +0000
xen-tools (3.1-1) unstable; urgency=low