summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosep Puigdemont <josep.puigdemont@enea.com>2016-05-13 10:26:02 +0200
committerJosep Puigdemont <josep.puigdemont@enea.com>2016-05-17 15:18:52 +0200
commit7b80125be0c9f43dfcc7d35fbba3ff1408713d56 (patch)
treee7c6e642eacb9194c41361d9805076b5b04e7e0e
parent137ef7912881dc6ebb3cf93ed6f2d6d3cd8fadfa (diff)
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 <josep.puigdemont@enea.com>
-rwxr-xr-xjjb/armband/armband-deploy.sh12
-rwxr-xr-xjjb/armband/armband-download-artifact.sh42
2 files changed, 28 insertions, 26 deletions
diff --git a/jjb/armband/armband-deploy.sh b/jjb/armband/armband-deploy.sh
index 97430c114..8b0af31e3 100755
--- a/jjb/armband/armband-deploy.sh
+++ b/jjb/armband/armband-deploy.sh
@@ -39,10 +39,10 @@ POD_NAME=${NODE_NAME/*-}
if [[ ! $LAB_NAME =~ (arm|enea) ]]; then
echo "Unsupported/unidentified lab $LAB_NAME. Cannot continue!"
exit 1
-else
- echo "Using configuration for $LAB_NAME"
fi
+echo "Using configuration for $LAB_NAME"
+
# create TMPDIR if it doesn't exist
mkdir -p $TMPDIR
@@ -52,8 +52,11 @@ if [[ $LAB_CONFIG_URL =~ ^git:// ]]; then
LAB_CONFIG_URL=file://${WORKSPACE}/lab-config
fi
+# releng wants us to use nothing else but opnfv.iso for now. We comply.
+ISO_FILE=$WORKSPACE/opnfv.iso
+
# construct the command
-DEPLOY_COMMAND="$WORKSPACE/ci/deploy.sh -b ${LAB_CONFIG_URL} -l $LAB_NAME -p $POD_NAME -s $DEPLOY_SCENARIO -i file://$WORKSPACE/opnfv.iso -H -B $BRIDGE -S $TMPDIR"
+DEPLOY_COMMAND="$WORKSPACE/ci/deploy.sh -l $LAB_NAME -p $POD_NAME -b ${LAB_CONFIG_URL} -s $DEPLOY_SCENARIO -i file://${ISO_FILE} -H -B $BRIDGE -S $TMPDIR"
# log info to console
echo "Deployment parameters"
@@ -72,9 +75,6 @@ echo "Issuing command"
echo "$DEPLOY_COMMAND"
echo
-# FIXME
-export TARGET_LAB=${LAB_NAME}
-export TARGET_POD=${POD_NAME}
$DEPLOY_COMMAND
echo
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!"