c7ac6ee0cb
Use openSUSE 15.0 as default, which is the latest released stable openSUSE release. Switch to https for accessing download.o.org as encrypted transfers should be used by default. Remove leftovers for definitely unmaintained openSUSE 13.x images and split into old/new leap style versioning scheme for clarity. Change-Id: Iab129eeee2b1a2563f0f0d2cb17bbad57c068e38
64 lines
2.2 KiB
Bash
Executable file
64 lines
2.2 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
if [ ${DIB_DEBUG_TRACE:-0} -gt 0 ]; then
|
|
set -x
|
|
fi
|
|
set -eu
|
|
set -o pipefail
|
|
|
|
[ -n "$ARCH" ]
|
|
[ -n "$TARGET_ROOT" ]
|
|
|
|
if [ 'amd64' = "$ARCH" ] ; then
|
|
ARCH="x86_64"
|
|
fi
|
|
|
|
if ! [ 'x86_64' = "$ARCH" ] ; then
|
|
echo "Only x86_64 images are currently available but ARCH is set to $ARCH."
|
|
exit 1
|
|
fi
|
|
|
|
# Set some image defaults
|
|
case ${DIB_RELEASE} in
|
|
# Old Leap releases
|
|
42*)
|
|
OPENSUSE_IMAGE_BASEDIR=Leap
|
|
OPENSUSE_IMAGE_FILE=openSUSE-Leap-${DIB_RELEASE}-OpenStack
|
|
OPENSUSE_IMAGE_EXT=tbz
|
|
;;
|
|
# New Leap releases
|
|
15*)
|
|
OPENSUSE_IMAGE_BASEDIR=Leap
|
|
OPENSUSE_IMAGE_FILE=openSUSE-Leap-${DIB_RELEASE}-OpenStack
|
|
OPENSUSE_IMAGE_EXT=tar.xz
|
|
;;
|
|
# We handle unknown cases in environment.d/10-opensuse-distro-name.bash
|
|
esac
|
|
# NOTE(toabctl): if something changes here on the buildservice side, please
|
|
# first ask in #opensuse-cloud on freenode before you change the format here!
|
|
DIB_CLOUD_IMAGES=${DIB_CLOUD_IMAGES:-https://download.opensuse.org/repositories/Cloud:/Images:/${OPENSUSE_IMAGE_BASEDIR}_${DIB_RELEASE}/images/}
|
|
BASE_IMAGE_FILE=${BASE_IMAGE_FILE:-${OPENSUSE_IMAGE_FILE}-rootfs.${ARCH}.${OPENSUSE_IMAGE_EXT}}
|
|
SHA256SUMS_FILE=${SHA256SUMS_FILE:-${BASE_IMAGE_FILE}.sha256}
|
|
|
|
CACHED_FILE=$DIB_IMAGE_CACHE/$BASE_IMAGE_FILE
|
|
CACHED_SHA256SUMS_FILE=$DIB_IMAGE_CACHE/SHA256SUMS.$BASE_IMAGE_FILE
|
|
|
|
# FIXME: either check the checksums into git or verify the signature
|
|
# on the checksums. We should not be trusting checksums we download
|
|
# over HTTP
|
|
if [ -n "$DIB_OFFLINE" -a -f "$CACHED_FILE" ] ; then
|
|
echo "Not checking freshness of cached $CACHED_FILE."
|
|
else
|
|
echo "Fetching Base Image"
|
|
$TMP_HOOKS_PATH/bin/cache-url $DIB_CLOUD_IMAGES/$SHA256SUMS_FILE $CACHED_SHA256SUMS_FILE
|
|
$TMP_HOOKS_PATH/bin/cache-url $DIB_CLOUD_IMAGES/$BASE_IMAGE_FILE $CACHED_FILE
|
|
pushd $DIB_IMAGE_CACHE
|
|
# Calculate sha256sum of downloaded image and check against content from sha256 file
|
|
SHA256SUM=$(sha256sum ${BASE_IMAGE_FILE} | cut -d " " -f1)
|
|
grep -q $SHA256SUM SHA256SUMS.$BASE_IMAGE_FILE
|
|
popd
|
|
fi
|
|
|
|
# Extract the base image (use --numeric-owner to avoid UID/GID mismatch between
|
|
# image tarball and host OS)
|
|
sudo tar -C $TARGET_ROOT --numeric-owner -xf $CACHED_FILE
|