Fix: Use lf-activate-venv to install openstack dep
[releng/global-jjb.git] / shell / openstack-protect-in-use-images.sh
index e229906..0729440 100644 (file)
@@ -19,20 +19,37 @@ set -eu -o pipefail
 echo "---> Protect in-use images"
 os_cloud="${OS_CLOUD:-vex}"
 
+# shellcheck disable=SC1090
+source ~/lf-env.sh
+
+# Check if openstack venv was previously created
+if [ -f "/tmp/.os_lf_venv" ]; then
+    os_lf_venv=$(cat "/tmp/.os_lf_venv")
+fi
+
+if [ -d "${os_lf_venv}" ] && [ -f "${os_lf_venv}/bin/openstack" ]; then
+    echo "Re-use existing venv: ${os_lf_venv}"
+    PATH=$os_lf_venv/bin:$PATH
+else
+    lf-activate-venv --python python3 \
+        python-heatclient \
+        python-openstackclient
+fi
+
 images=()
 while read -r -d $'\n' ; do
     images+=("$REPLY")
 done < <(grep -r IMAGE_NAME --include \*.cfg jenkins-config \
-         | awk -F'=' '{print $2}' \
-         | sort -u)
+            | awk -F'=' '{print $2}' \
+            | sort -u)
 
 jjbimages=()
 while read -r -d $'\n' ; do
     jjbimages+=("$REPLY")
 done < <(grep -r 'ZZCI - ' --include \*.yaml jjb \
-         | awk -F": " '{print $3}' \
-         | sed -e "s:'::;s:'$::;/^$/d" -e 's/^"//' -e 's/"$//' \
-         | sort -u)
+            | awk -F": " '{print $3}' \
+            | sed -e "s:'::;s:'$::;/^$/d" -e 's/^"//' -e 's/"$//' \
+            | sort -u)
 
 if ! [[ ${#images[@]} -eq 0 ]]; then
     echo "INFO: There are images to protect defined in jenkins-config."