fuel: Store ISOs locally so we skip the download if they exist locally 03/9203/5
authorFatih Degirmenci <fatih.degirmenci@ericsson.com>
Wed, 3 Feb 2016 23:32:53 +0000 (00:32 +0100)
committerFatih Degirmenci <fatih.degirmenci@ericsson.com>
Thu, 4 Feb 2016 09:16:13 +0000 (10:16 +0100)
Change-Id: Ief7fcb819d33355a75b4e6c4dc5d8b4eadea61d7
Signed-off-by: Fatih Degirmenci <fatih.degirmenci@ericsson.com>
jjb/fuel/fuel-download-artifact.sh
jjb/fuel/fuel-upload-artifact.sh

index a3769b1..ceac859 100755 (executable)
@@ -8,7 +8,6 @@
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
 set -o errexit
-set -o nounset
 set -o pipefail
 
 if [[ "$JOB_NAME" =~ "merge" ]]; then
@@ -31,15 +30,22 @@ source latest.properties
 OPNFV_ARTIFACT=${OPNFV_ARTIFACT_URL/*\/}
 echo "Using $OPNFV_ARTIFACT for deployment"
 
-# check if we already have the ISO to avoid redownload
-# disabled for the timebeing - needs adjustments
-#ISO_STORE=$HOME/opnfv/iso_store/fuel
-#if [[ -f "$ISO_STORE/$OPNFV_ARTIFACT" ]]; then
-#    echo "ISO already exists. Skipping the download"
-#    ln -s $ISO_STORE/$OPNFV_ARTIFACT $WORKSPACE/opnfv.iso
-#    ls -al $WORKSPACE/opnfv.iso
-#    exit 0
-#fi
+# 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"
+        /bin/cp -f $ISOSTORE/$OPNFV_ARTIFACT $WORKSPACE/opnfv.iso
+        echo "--------------------------------------------------------"
+        echo
+        ls -al $WORKSPACE/opnfv.iso
+        echo
+        echo "--------------------------------------------------------"
+        echo "Done!"
+        exit 0
+    fi
+fi
 
 # log info to console
 echo "Downloading the $INSTALLER_TYPE artifact using URL http://$OPNFV_ARTIFACT_URL"
index cf74eb4..6dd5f34 100755 (executable)
@@ -7,7 +7,6 @@
 # which accompanies this distribution, and is available at
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
-set -o nounset
 set -o pipefail
 
 # check if we built something
@@ -17,14 +16,30 @@ if [ -f $WORKSPACE/.noupload ]; then
     exit 0
 fi
 
+# source the opnfv.properties to get ARTIFACT_VERSION
+source $WORKSPACE/opnfv.properties
+
+# storing ISOs for verify & merge jobs will be done once we get the disk array
+if [[ ! "$JOB_NAME" =~ (verify|merge) ]]; then
+    # store ISO locally on NFS first
+    ISOSTORE="/iso_mount/opnfv_ci/${GIT_BRANCH##*/}"
+    if [[ -d "$ISOSTORE" ]]; then
+        # remove all but most recent 5 ISOs first to keep iso_mount clean & tidy
+        cd $ISOSTORE
+        ls -tp | grep -v '/' | tail -n +6 | xargs -d '\n' /bin/rm -f --
+
+        # store ISO
+        echo "Storing $INSTALLER_TYPE artifact on NFS first"
+        /bin/cp -f $BUILD_DIRECTORY/opnfv-$OPNFV_ARTIFACT_VERSION.iso \
+            $ISOSTORE/opnfv-$OPNFV_ARTIFACT_VERSION.iso
+    fi
+fi
+
 # log info to console
 echo
-echo "Uploading the $INSTALLER_TYPE artifact. This could take some time..."
+echo "Uploading $INSTALLER_TYPE artifact. This could take some time..."
 echo
 
-# source the opnfv.properties to get ARTIFACT_VERSION
-source $WORKSPACE/opnfv.properties
-
 # upload artifact and additional files to google storage
 gsutil cp $BUILD_DIRECTORY/opnfv-$OPNFV_ARTIFACT_VERSION.iso \
     gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso > gsutil.iso.log 2>&1