Skip to content

Commit

Permalink
ubuntu-cloud: Replace .tar.gz by .tar.xz and don't auto-generate miss…
Browse files Browse the repository at this point in the history
…ing tarballs

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
  • Loading branch information
stgraber committed Nov 6, 2015
1 parent cb4c206 commit d29d4ba
Showing 1 changed file with 4 additions and 42 deletions.
46 changes: 4 additions & 42 deletions templates/lxc-ubuntu-cloud.in
Expand Up @@ -299,7 +299,7 @@ else
[ "$stream" = "daily" ] || echo "You may try with '--stream=daily'"
exit
fi
url2=`echo $url1 | sed -e 's/.tar.gz/-root\0/'`
url2=`echo $url1 | sed -e 's/.tar.gz/-root\0/' -e 's/.tar.gz/.tar.xz/'`
fi

filename=`basename $url2`
Expand All @@ -309,44 +309,6 @@ wgetcleanup()
rm -f $filename
}

buildcleanup()
{
cd $rootfs
umount -l $cache/$xdir || true
rm -rf $cache
}

# if the release doesn't have a *-rootfs.tar.gz, then create one from the
# cloudimg.tar.gz by extracting the .img, mounting it loopback, and creating
# a tarball from the mounted image.
build_root_tgz()
{
url=$1
filename=$2

xdir=`mktemp -d -p .`
tarname=`basename $url`
imgname="$release-*-cloudimg-$arch.img"
trap buildcleanup EXIT SIGHUP SIGINT SIGTERM
if [ $flushcache -eq 1 -o ! -f $cache/$tarname ]; then
rm -f $tarname
echo "Downloading cloud image from $url"
wget $url || { echo "Couldn't find cloud image $url."; exit 1; }
fi
echo "Creating new cached cloud image rootfs"
tar --wildcards -zxf "$tarname" "$imgname"
mount -o loop $imgname $xdir
(cd $xdir; tar --numeric-owner -cpzf "../$filename" .)
umount $xdir
rm -f $tarname $imgname
rmdir $xdir
echo "New cloud image cache created"
trap EXIT
trap SIGHUP
trap SIGINT
trap SIGTERM
}

do_extract_rootfs() {

cd $cache
Expand All @@ -357,7 +319,7 @@ do_extract_rootfs() {

trap wgetcleanup EXIT SIGHUP SIGINT SIGTERM
if [ ! -f $filename ]; then
wget $url2 || build_root_tgz $url1 $filename
wget $url2
fi
trap EXIT
trap SIGHUP
Expand All @@ -368,10 +330,10 @@ do_extract_rootfs() {
mkdir -p $rootfs
cd $rootfs
if [ $in_userns -eq 1 ]; then
tar --anchored --exclude="dev/*" --numeric-owner -xpzf "$cache/$filename"
tar --anchored --exclude="dev/*" --numeric-owner -xpJf "$cache/$filename"
mkdir -p $rootfs/dev/pts/
else
tar --numeric-owner -xpzf "$cache/$filename"
tar --numeric-owner -xpJf "$cache/$filename"
fi
}

Expand Down

0 comments on commit d29d4ba

Please sign in to comment.