From 14674941d0e504a942886d36749a0f64490e4ade Mon Sep 17 00:00:00 2001 From: "Stefan K. Berg" Date: Tue, 19 May 2015 10:14:43 +0200 Subject: Deployment corrections for Fuel The most important change is the introduction of support for a selectable temporary directory for ISO manipulations by setting the TMPDIR variable. Invoke deploy.sh as "sudo TMPDIR=/my/tmp/dir ./deploy.sh ..." to make use of this, otherwise the temporary directory defaults to that of the user running the script. Other improvements: - Added error check for when the patch-iso.sh gets an error from copying data with cpio (potentially indicating out of disk space) - Corrected typo in deploy.sh: error-exit -> error_exit JIRA Change-Id: I74966c3fe2bee0ac1923cfa9bd9ebfe1ca73a9da Signed-off-by: Stefan K. Berg --- fuel/prototypes/auto-deploy/deploy/deploy.sh | 23 ++++++++++++++++++---- .../auto-deploy/deploy/functions/patch-iso.sh | 21 +++++++++----------- 2 files changed, 28 insertions(+), 16 deletions(-) diff --git a/fuel/prototypes/auto-deploy/deploy/deploy.sh b/fuel/prototypes/auto-deploy/deploy/deploy.sh index 938efb6..f5aa634 100755 --- a/fuel/prototypes/auto-deploy/deploy/deploy.sh +++ b/fuel/prototypes/auto-deploy/deploy/deploy.sh @@ -13,7 +13,6 @@ topdir=$(dirname $(readlink -f $BASH_SOURCE)) exampledir=$(cd $topdir/../examples; pwd) functions=${topdir}/functions -tmpdir=$HOME/fueltmp # Define common functions . ${functions}/common.sh @@ -61,7 +60,23 @@ if [ $# -ne 3 ]; then exit 1 fi -# Setup tmpdir +# Setup tmpdir - if TMPDIR env variable is set, use that one +# else create in $HOME/fueltmp +if [ -n "${TMPDIR}" ]; then + if [ -d ${TMPDIR} ]; then + tmpdir=${TMPDIR}/fueltmp + echo "Using TMPDIR=${TMPDIR}, so tmpdir=${tmpdir}" + else + error_exit "No such directory for TMPDIR: ${TMPDIR}" + fi +else + tmpdir=${HOME}/fueltmp + echo "Default: tmpdir=$tmpdir" +fi + +# Umask must be changed so files created are readable by qemu +umask 0022 + if [ -d $tmpdir ]; then rm -Rf $tmpdir || error_exit "Could not remove tmpdir $tmpdir" fi @@ -74,9 +89,9 @@ dhafile=$(cd `dirname $3`; echo `pwd`/`basename $3`) if [ ! -f $isofile ]; then error_exit "Could not find ISO file $isofile" elif [ ! -f $deafile ]; then - error-exit "Could not find DEA file $deafile" + error_exit "Could not find DEA file $deafile" elif [ ! -f $dhafile ]; then - error-exit "Could not find DHA file $dhafile" + error_exit "Could not find DHA file $dhafile" fi # Connect adapter diff --git a/fuel/prototypes/auto-deploy/deploy/functions/patch-iso.sh b/fuel/prototypes/auto-deploy/deploy/functions/patch-iso.sh index 933281f..d27dcdf 100755 --- a/fuel/prototypes/auto-deploy/deploy/functions/patch-iso.sh +++ b/fuel/prototypes/auto-deploy/deploy/functions/patch-iso.sh @@ -9,13 +9,10 @@ # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## -# This is a temporary script - this should be rolled into a separate -# build target "make ci-iso" instead! - exit_handler() { rm -Rf $tmpnewdir fusermount -u $tmporigdir 2>/dev/null - test -d $tmporigdir && mdir $tmporigdir + test -d $tmporigdir && rmdir $tmporigdir } trap exit_handler exit @@ -39,8 +36,8 @@ fuelGateway=$6 fuelHostname=$7 fuelDns=$8 -tmporigdir=/${tmpdir}/origiso -tmpnewdir=/${tmpdir}/newiso +tmporigdir=${tmpdir}/origiso +tmpnewdir=${tmpdir}/newiso test -f $origiso || error_exit "Could not find origiso $origiso" test -d $tmpdir || error_exit "Could not find tmpdir $tmpdir" @@ -51,15 +48,15 @@ if [ "`whoami`" != "root" ]; then fi echo "Copying..." -rm -Rf $tmporigdir $tmpnewdir +rm -Rf $tmpnewdir || error_exit "Failed deleting old ISO copy dir" mkdir -p $tmporigdir $tmpnewdir -fuseiso $origiso $tmporigdir || error_exit "Failed fuseiso" +fuseiso $origiso $tmporigdir || error_exit "Failed to FUSE mount ISO" cd $tmporigdir -find . | cpio -pd $tmpnewdir +find . | cpio -pd $tmpnewdir || error_exit "Failed to copy FUSE ISO with cpio" cd $tmpnewdir -fusermount -u $tmporigdir -rmdir $tmporigdir -chmod -R 755 $tmpnewdir +fusermount -u $tmporigdir || error_exit "Failed to FUSE unmount ISO" +rmdir $tmporigdir || error_exit "Failed to delete original FUSE ISO directory" +chmod -R 755 $tmpnewdir || error_exit "Failed to set protection on new ISO dir" echo "Patching..." cd $tmpnewdir -- cgit 1.2.3-korg