From 7b80125be0c9f43dfcc7d35fbba3ff1408713d56 Mon Sep 17 00:00:00 2001 From: Josep Puigdemont Date: Fri, 13 May 2016 10:26:02 +0200 Subject: download/deploy scripts: several updates The download script will now use gsutils if they are available, or fall back to curl as before. In general, use curl -f, which will exit with an error code if the server gave an error, instead of writing a file with the HTML error page. Change-Id: Ib24e7803ec38b20a8879cd1509a0cb7b512fee61 Signed-off-by: Josep Puigdemont --- jjb/armband/armband-download-artifact.sh | 42 +++++++++++++++++--------------- 1 file changed, 22 insertions(+), 20 deletions(-) (limited to 'jjb/armband/armband-download-artifact.sh') diff --git a/jjb/armband/armband-download-artifact.sh b/jjb/armband/armband-download-artifact.sh index 15ad67d6e..18b55d7a7 100755 --- a/jjb/armband/armband-download-artifact.sh +++ b/jjb/armband/armband-download-artifact.sh @@ -13,35 +13,33 @@ set -o pipefail if [[ "$JOB_NAME" =~ "merge" ]]; then echo "Downloading http://$GS_URL/opnfv-gerrit-$GERRIT_CHANGE_NUMBER.properties" # get the properties file for the Armband Fuel ISO built for a merged change - curl -s -o $WORKSPACE/latest.properties http://$GS_URL/opnfv-gerrit-$GERRIT_CHANGE_NUMBER.properties + curl -f -s -o $WORKSPACE/latest.properties http://$GS_URL/opnfv-gerrit-$GERRIT_CHANGE_NUMBER.properties else # get the latest.properties file in order to get info regarding latest artifact echo "Downloading http://$GS_URL/latest.properties" - curl -s -o $WORKSPACE/latest.properties http://$GS_URL/latest.properties + curl -f -s -o $WORKSPACE/latest.properties http://$GS_URL/latest.properties fi -# check if we got the file -# FIXME: the file is created even if it didn't exist on the host -# We should check that the contents are sane -[[ -f latest.properties ]] || exit 1 - -# source the file so we get artifact metadata +# source the file so we get artifact metadata, it will exit if it doesn't exist source latest.properties # echo the info about artifact that is used during the deployment OPNFV_ARTIFACT=${OPNFV_ARTIFACT_URL/*\/} echo "Using $OPNFV_ARTIFACT for deployment" +# Releng doesn't want us to use anything but opnfv.iso for now. We comply. +ISO_FILE=${WORKSPACE}/opnfv.iso + # using ISOs for verify & merge jobs from local storage will be enabled later if [[ ! "$JOB_NAME" =~ (verify|merge) ]]; then # check if we already have the ISO to avoid redownload ISOSTORE="/iso_mount/opnfv_ci/${GIT_BRANCH##*/}" if [[ -f "$ISOSTORE/$OPNFV_ARTIFACT" ]]; then echo "ISO exists locally. Skipping the download and using the file from ISO store" - ln -s $ISOSTORE/$OPNFV_ARTIFACT $WORKSPACE/opnfv.iso + ln -s $ISOSTORE/$OPNFV_ARTIFACT ${ISO_FILE} echo "--------------------------------------------------------" echo - ls -al $WORKSPACE/opnfv.iso + ls -al ${ISO_FILE} echo echo "--------------------------------------------------------" echo "Done!" @@ -49,18 +47,22 @@ if [[ ! "$JOB_NAME" =~ (verify|merge) ]]; then fi fi +# Use gsutils if available +if $(which gsutil &>/dev/null); then + DOWNLOAD_URL="gs://$OPNFV_ARTIFACT_URL" + CMD="gsutil cp ${DOWNLOAD_URL} ${ISO_FILE}" +else + # download image + # -f returns error if the file was not found or on server error + DOWNLOAD_URL="http://$OPNFV_ARTIFACT_URL" + CMD="curl -f -s -o ${ISO_FILE} ${DOWNLOAD_URL}" +fi + # log info to console -echo "Downloading the $INSTALLER_TYPE artifact using URL http://$OPNFV_ARTIFACT_URL" +echo "Downloading the $INSTALLER_TYPE artifact using URL $DOWNLOAD_URL" echo "This could take some time..." echo "--------------------------------------------------------" -echo - -# download the file -curl -s -o $WORKSPACE/opnfv.iso http://$OPNFV_ARTIFACT_URL - -# The file is always created, check that it is in fact an ISO image -[[ $(file $WORKSPACE/opnfv.iso) =~ ISO ]] - -echo +echo "$CMD" +$CMD echo "--------------------------------------------------------" echo "Done!" -- cgit 1.2.3-korg