5bc9e87da1
I just saw in the trace output of a failure > grep -o 'CentOS-.[^>]*GenericCloud-.[^>]*.qcow2' > sort -r > head -1 sort: fflush failed: 'standard output': Broken pipe sort: write error i.e. the "head -1" has exited after reading one line, but "sort -r" still wants to write and thus has hit a pipe failure, and because we run with "-o pipefail" this has halted the script. This seems like it has been there more or less forever, maybe we just got lucky hitting it now? Anyway, we can work around this by using a process substitution and passing the output of this into head, this way we won't hit a pipe failure. I also updated the fedora path as it does the same thing. Change-Id: I44d97e5bb31702aacf396e0229329a2ef9c64f2f
54 lines
2 KiB
Bash
Executable file
54 lines
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
|
|
|
|
DIB_LOCAL_IMAGE=${DIB_LOCAL_IMAGE:-""}
|
|
|
|
if [ -n "$DIB_LOCAL_IMAGE" ]; then
|
|
IMAGE_LOCATION=$DIB_LOCAL_IMAGE
|
|
# No need to copy a local image into the cache directory, so just specify
|
|
# the cached path as the original path.
|
|
CACHED_IMAGE=$IMAGE_LOCATION
|
|
BASE_IMAGE_FILE=`basename $DIB_LOCAL_IMAGE`
|
|
BASE_IMAGE_TAR=$BASE_IMAGE_FILE.tgz
|
|
else
|
|
# note default DIB_RELEASE set in environment setup
|
|
case ${ARCH} in
|
|
x86_64|aarch64)
|
|
if [[ ${DIB_RELEASE} -ge 28 ]]; then
|
|
DIB_CLOUD_IMAGES=${DIB_CLOUD_IMAGES:-https://download.fedoraproject.org/pub/fedora/linux/releases/${DIB_RELEASE}/Cloud/${ARCH}/images}
|
|
else
|
|
DIB_CLOUD_IMAGES=${DIB_CLOUD_IMAGES:-https://download.fedoraproject.org/pub/fedora/linux/releases/${DIB_RELEASE}/CloudImages/${ARCH}/images}
|
|
fi
|
|
;;
|
|
ppc64|ppc64le)
|
|
if [[ ${DIB_RELEASE} -ge 28 ]]; then
|
|
DIB_CLOUD_IMAGES=${DIB_CLOUD_IMAGES:-https://dl.fedoraproject.org/pub/fedora-secondary/releases/${DIB_RELEASE}/Cloud/${ARCH}/images}
|
|
else
|
|
DIB_CLOUD_IMAGES=${DIB_CLOUD_IMAGES:-https://dl.fedoraproject.org/pub/fedora-secondary/releases/${DIB_RELEASE}/CloudImages/${ARCH}/images}
|
|
fi
|
|
;;
|
|
*)
|
|
echo "Error: unknown ARCH: ${ARCH}"
|
|
exit 1
|
|
;;
|
|
esac
|
|
SUBRELEASE=$(head -1 < <(curl -Ls $DIB_CLOUD_IMAGES/ | grep -o -P '(?<=Fedora-Cloud-Base-'${DIB_RELEASE}'-).*?(?=.'${ARCH}'.qcow2")' | sort -r))
|
|
BASE_IMAGE_FILE=${BASE_IMAGE_FILE:-Fedora-Cloud-Base-$DIB_RELEASE-$SUBRELEASE.$ARCH.qcow2}
|
|
BASE_IMAGE_TAR=Fedora-Cloud-Base-$DIB_RELEASE-$SUBRELEASE.$ARCH.tgz
|
|
IMAGE_LOCATION=$DIB_CLOUD_IMAGES/$BASE_IMAGE_FILE
|
|
CACHED_IMAGE=$DIB_IMAGE_CACHE/$BASE_IMAGE_FILE
|
|
fi
|
|
|
|
$TMP_HOOKS_PATH/bin/extract-image $BASE_IMAGE_FILE $BASE_IMAGE_TAR $IMAGE_LOCATION $CACHED_IMAGE
|