Fix jenkins-verify-images.sh crash on grep 16/62416/3
authorBengt Thuree <bthuree@linuxfoundation.org>
Wed, 27 Nov 2019 13:24:10 +0000 (00:24 +1100)
committerAric Gardner <agardner@linuxfoundation.org>
Wed, 27 Nov 2019 16:07:51 +0000 (11:07 -0500)
This statement triggers the pipefail
    grep ^OS_CLOUD= jenkins-config/clouds/openstack/cattle/cloud.cfg
    $ echo $?
    1

ISSUE-ID: IT-18352

Signed-off-by: Bengt Thuree <bthuree@linuxfoundation.org>
Change-Id: Id71b3b664f5dca98bc4d784b86e8d68cec7fca9e

releasenotes/notes/grep_OS_CLOUD_failure-2c81e313686816c7.yaml [new file with mode: 0644]
shell/jenkins-verify-images.sh

diff --git a/releasenotes/notes/grep_OS_CLOUD_failure-2c81e313686816c7.yaml b/releasenotes/notes/grep_OS_CLOUD_failure-2c81e313686816c7.yaml
new file mode 100644 (file)
index 0000000..6d8a52b
--- /dev/null
@@ -0,0 +1,4 @@
+---
+fixes:
+  - |
+    Fix grep OS_CLOUD terminates jenkins-verify-images.sh if not found.
index e4e9e70..a27efd8 100755 (executable)
@@ -39,16 +39,14 @@ verify_images()
   done
 }
 
+echo "Verifying that cloud has a master configuration file"
 for cloud in jenkins-config/clouds/openstack/*; do
-  echo "Verifying that cloud has a master configuration file"
-  # Verify that we have a cloud config file
-  if [ -f "$cloud/cloud.cfg" ]; then
-    # Get the OS_CLOUD variable from cloud config and export it
-    os_cloud=$(grep ^OS_CLOUD= "$cloud/cloud.cfg" | cut -d'=' -f2)
-    OS_CLOUD="${os_cloud:-vex}"
-    export OS_CLOUD
-
-    verify_images "$cloud"
+  if [[ -f $cloud/cloud.cfg ]]; then
+    # Get the OS_CLOUD variable from cloud config
+    if ! os_cloud=$(egrep "^OS_CLOUD=" "$cloud/cloud.cfg" | cut -d'=' -f2); then
+      os_cloud="vex"
+    fi
+    OS_CLOUD=$os_cloud verify_images "$cloud"
   else
     echo "ERROR: No cloud.cfg for $cloud"
     error=true