Feat!: Re-factor lf-activate-venv() to re-use venv 97/70597/8
authorAnil Belur <abelur@linuxfoundation.org>
Wed, 7 Sep 2022 12:20:28 +0000 (22:20 +1000)
committerAnil Belur <abelur@linuxfoundation.org>
Sat, 10 Sep 2022 00:28:04 +0000 (10:28 +1000)
Add new CLI option to set venv file.

Example:

lf-activate-venv --venv-file /tmp/.robot_venv \
robotframework

Modify lf-activate-venv() to allow creation of a venv file and re-use
the venv to improve job performance. When a dependency is already
installed, pip skips the package therefore reduces the time it takes
to create venv in every script.

Precedence for venv file.
  a. Re-use an existing venv file if one exists.
       1. Use venv file path from --venv-file
       2. Use default venv file path "/tmp/.os_lf_venv"
  b. Create new venv when 1. and 2. is absent

Note: The default file "/tmp/.os_lf_venv" is created by a pre-build
script (../shell/python-tools-install.sh).

In the situation where a fresh venv is required remove
"/tmp/.os_lf_venv" before calling lf-activate-venv().

Update all the required scripts that call lf-activate-venv().

Issue-ID: RELENG-4403
Change-Id: I559f759a8dba7eca0a62f8b73a360dc627699ed2
Signed-off-by: Anil Belur <abelur@linuxfoundation.org>
25 files changed:
jenkins-init-scripts/lf-env.sh
releasenotes/notes/refactor-lf-activate-venv-0bf51b617553ab93.yaml [new file with mode: 0644]
shell/deploy-maven-file.sh
shell/jenkins-configure-clouds.sh
shell/jenkins-configure-global-vars.sh
shell/jenkins-sandbox-cleanup.sh
shell/jjb-deploy-job.sh
shell/jjb-verify-job.sh
shell/maven-central.sh
shell/maven-deploy.sh
shell/maven-javadoc-publish.sh
shell/maven-stage.sh
shell/openstack-cleanup-old-images.sh
shell/openstack-cleanup-orphaned-k8s-clusters.sh
shell/openstack-cleanup-orphaned-ports.sh
shell/openstack-cleanup-orphaned-servers.sh
shell/openstack-cleanup-orphaned-stacks.sh
shell/openstack-cleanup-orphaned-volumes.sh
shell/openstack-kubernetes-create.sh
shell/openstack-protect-in-use-images.sh
shell/openstack-stack-copy-ssh-keys.sh
shell/openstack-stack-create.sh
shell/openstack-stack-delete.sh
shell/rtdv3.sh
shell/sigul-sign-dir.sh

index 114f0c1..bd9f780 100644 (file)
@@ -95,7 +95,7 @@ lf-boolean () {
 ################################################################################
 #
 # NAME
-#   lf-activate-venv [-p|--python python] [--no-path]
+#   lf-activate-venv [-p|--python python] [-v|--venv-file] [--no-path]
 #                    [--system-site-packages] [package]...
 #
 # SYNOPSIS
@@ -110,6 +110,8 @@ lf-boolean () {
 #   or
 #   lf-activate-venv --python python3.8 git-review
 #
+#   lf-activate-venv --python python3.8 --venv-file /tmp/.myvenv git-review
+#
 # DESCRIPTION
 #   This function will create a new Python Virtual Environment (venv) and
 #   install the specified packages in the new venv.  The venv will be installed
@@ -117,8 +119,19 @@ lf-boolean () {
 #   to the PATH.
 #
 #   The 'lf_venv' variable will be set so you can directly execute commands
-#   in the venv with: $lf_venv/bin/command. Beware that subsequent calls to
-#   lf-activate-venv() will overwrite 'lf_venv'.
+#   in the venv with: $lf_venv/bin/command. lf-activate-venv() will check for
+#   existing file '/tmp/.os_lf_venv' and set 'lf_venv' if the file exists.
+#
+#   The function provides a --venv-file path for saving the value of the 'lf_env'
+#   that can re-used later. By default '/tmp/.os_lf_venv' venv file is created
+#   when the --venv-file option is not specified.
+#
+#   Subsequent calls to lf-activate-venv() will re-use the existing venv
+#   throught and will NOT overwrite 'lf_venv', if the '/tmp/.os_lf_venv'
+#   already exists.
+#
+#   If a new venv is required delete the file '/tmp/.os_lf_venv' before
+#   calling lf-activate-venv() will create a fresh venv.
 #
 #   By default all packages are installed with '--upgrade-strategy eager'.
 #   The venv will always contain pip & virtualenv.
@@ -148,17 +161,20 @@ lf-boolean () {
 
 lf-activate-venv () {
     lf_venv=$(mktemp -d /tmp/venv-XXXX)
+    local venv_file="/tmp/.os_lf_venv"
     local python=python3
     local options
     local set_path=true
     local install_args=""
-    options=$(getopt -o 'n:p:' -l 'no-path,python:,system-site-packages' \
+    # set -x
+    options=$(getopt -o 'np:v:' -l 'no-path,system-site-packages,python:,venv-file:' \
                 -n "${FUNCNAME[0]}" -- "$@" )
     eval set -- "$options"
     while true; do
         case $1 in
             -n|--no-path) set_path=false ; shift   ;;
-            -p|--python)  python=$2      ; shift 2 ;;
+            -p|--python)  python="$2"      ; shift 2 ;;
+            -v|--venv-file) venv_file="$2" ; shift 2 ;;
             --system-site-packages) install_args="--system-site-packages" ;
                                     shift ;;
             --) shift; break ;;
@@ -168,8 +184,6 @@ lf-activate-venv () {
         esac
     done
 
-    echo "${FUNCNAME[0]}(): INFO: Creating $python venv at $lf_venv"
-
     case $python in
     python2*)
         local pkg_list="$*"
@@ -189,7 +203,6 @@ lf-activate-venv () {
         local pkg_list=""
         # Use pyenv for selecting the python version
         if [[ -d "/opt/pyenv" ]]; then
-            # set_python_version = pyver "${python//[a-zA-Z]/}"
             echo "Setup pyenv:"
             export PYENV_ROOT="/opt/pyenv"
             export PATH="$PYENV_ROOT/bin:$PATH"
@@ -199,6 +212,7 @@ lf-activate-venv () {
                 pyenv local $(lf-pyver "${python}")
             fi
         fi
+
         # Add version specifier for some packages
         for arg in "$@"; do
             case $arg in
@@ -207,7 +221,23 @@ lf-activate-venv () {
                 *)                   pkg_list+="$arg " ;;
             esac
         done
-        $python -m venv "$install_args" "$lf_venv" || return 1
+
+        # Precedence:
+        # - Re-use venv:
+        #     1. --venv-file <path/to/file> as lf_venv
+        #     2. default: "/tmp/.os_lf_venv"
+        # - Create new venv when 1. and 2. is absent
+        if [ -f "$venv_file" ]; then
+            lf_venv=$(cat "$venv_file")
+            echo "${FUNCNAME[0]}(): INFO: Reuse venv:$lf_venv from" \
+                "file:$venv_file"
+        elif [ ! -f "$venv_file" ]; then
+            $python -m venv "$install_args" "$lf_venv" || return 1
+            echo "${FUNCNAME[0]}(): INFO: Creating $python venv at $lf_venv"
+            echo "$lf_venv" > "$venv_file"
+            echo "${FUNCNAME[0]}(): INFO: Save venv in file: $venv_file"
+        fi
+
         "$lf_venv/bin/pip" install --upgrade --quiet pip virtualenv || return 1
         if [[ -z $pkg_list ]]; then
             echo "${FUNCNAME[0]}(): WARNING: No packages to install"
diff --git a/releasenotes/notes/refactor-lf-activate-venv-0bf51b617553ab93.yaml b/releasenotes/notes/refactor-lf-activate-venv-0bf51b617553ab93.yaml
new file mode 100644 (file)
index 0000000..e8316e6
--- /dev/null
@@ -0,0 +1,29 @@
+---
+features:
+  - |
+    Add support for a new option to set venv file.
+
+    lf-activate-venv --venv-file /tmp/.robot_venv robotframework
+
+    Modify lf-activate-venv() to allow creation of a venv file and re-use the
+    venv to improve job performance. When a dependency is already installed, pip
+    skips the package therefore reduces the time it takes to create
+    venv in every script.
+
+    Precedence for venv file.
+      a. Re-use an existing venv file if one exists.
+           1. Use venv file path from --venv-file
+           2. Use default venv file path "/tmp/.os_lf_venv"
+      b. Create new venv when 1. and 2. is absent
+
+    Note: The default file "/tmp/.os_lf_venv" is created by a pre-build
+    script (../shell/python-tools-install.sh).
+
+    In the situation where a fresh venv is required remove "/tmp/.os_lf_venv"
+    before calling lf-activate-venv().
+
+    Update all the required scripts that call lf-activate-venv().
+fixes:
+  - |
+    Clean up conditions introduce in the shell scripts, while these checks
+    are performed within lf-activate-venv().
index e4559ab..a057fe1 100644 (file)
@@ -31,6 +31,11 @@ echo "---> deploy-maven-file.sh"
 set -e -o pipefail
 set +u
 
+# shellcheck disable=SC1090
+. ~/lf-env.sh
+
+lf-activate-venv --python python3 lftools
+
 export MAVEN_OPTIONS
 export MAVEN_PARAMS
 
index 18589c0..06cb4a3 100644 (file)
@@ -292,6 +292,10 @@ get_template_cfg() {
     echo ")"
 }
 
+# shellcheck disable=SC1090
+. ~/lf-env.sh
+
+lf-activate-venv --python python3 lftools
 
 mapfile -t clouds < <(ls -d1 "$OS_CLOUD_DIR"/*/)
 
index 86b1bcd..873e0b3 100644 (file)
@@ -24,6 +24,11 @@ silos="${jenkins_silos:-jenkins}"
 
 set -eu -o pipefail
 
+# shellcheck disable=SC1090
+. ~/lf-env.sh
+
+lf-activate-venv --python python3 lftools
+
 for silo in $silos; do
     if [ ! -f "$WORKSPACE/jenkins-config/global-vars-$silo.sh" ]; then
         echo "WARN: jenkins-config/global-vars-$silo.sh does not exist. Skipping cloud management..."
index 90dbb68..1dd520a 100644 (file)
@@ -14,9 +14,9 @@ echo "---> jenkins-sandbox-cleanup.sh"
 set -euf -o pipefail
 
 # shellcheck disable=SC1090
-source ~/lf-env.sh
+. ~/lf-env.sh
 
-lf-activate-venv jenkins-job-builder
+lf-activate-venv --python python3 --venv-file /tmp/.jjb_venv jenkins-job-builder
 
 # jenkins-jobs does not always open 'stdin' which may cause 'yes' to fail
 (yes || true) | jenkins-jobs -s sandbox delete-all
index 152a02e..08e64aa 100644 (file)
@@ -20,7 +20,7 @@ set -uef -o pipefail
 source ~/lf-env.sh
 
 # Version controlled by JJB_VERSION
-lf-activate-venv jenkins-job-builder
+lf-activate-venv --python python3 --venv-file /tmp/.jjb_venv jenkins-job-builder
 
 # Fetch patch if gerrit project matches the jjb-deploy project
 if [ "${GERRIT_PROJECT}" == "${PROJECT}" ]; then
index 7d679bd..fc63884 100644 (file)
@@ -18,7 +18,7 @@ source ~/lf-env.sh
 lf-git-validate-jira-urls
 lf-jjb-check-ascii
 
-lf-activate-venv jenkins-job-builder
+lf-activate-venv --python python3 --venv-file /tmp/.jjb_venv jenkins-job-builder
 
 jenkins-jobs test --recursive -o archives/job-configs --config-xml jjb/
 
index 88c3bc1..829c4dd 100644 (file)
@@ -15,6 +15,11 @@ profile_id="${OSSRH_PROFILE_ID:-}"
 # Ensure we fail the job if any steps fail.
 set -eux -o pipefail
 
+# shellcheck disable=SC1090
+. ~/lf-env.sh
+
+lf-activate-venv --python python3 lftools
+
 MC_TMP_FILE="$(mktemp)"
 echo "Staging in OSSRH for Maven Central"
 lftools deploy nexus-stage "https://oss.sonatype.org" "$profile_id" "$WORKSPACE/m2repo" | tee "$MC_TMP_FILE"
index f9e2889..5da6158 100644 (file)
@@ -41,8 +41,9 @@ find "$m2repo_dir" -type d -empty -delete
 
 echo "-----> Install lftools"
 # shellcheck disable=SC1090
-source ~/lf-env.sh
-lf-activate-venv lftools
+. ~/lf-env.sh
+
+lf-activate-venv --python python3 lftools
 
 echo "-----> Upload files to Nexus"
 lftools deploy nexus -s "$nexus_repo_url" "$m2repo_dir"
index a3838ca..97d57bf 100644 (file)
@@ -16,6 +16,11 @@ echo "---> maven-javadoc-publish.sh"
 set -e -o pipefail
 set +u
 
+# shellcheck disable=SC1090
+. ~/lf-env.sh
+
+lf-activate-venv --python python3 lftools
+
 JAVADOC_DIR="$WORKSPACE/archives/javadoc"
 
 pushd "$JAVADOC_DIR"
index fa89047..a976312 100644 (file)
@@ -18,6 +18,11 @@ echo "---> maven-stage.sh"
 # Ensure we fail the job if any steps fail.
 set -xeu -o pipefail
 
+# shellcheck disable=SC1090
+. ~/lf-env.sh
+
+lf-activate-venv --python python3 lftools
+
 TMP_FILE="$(mktemp)"
 lftools deploy nexus-stage "$NEXUS_URL" "$STAGING_PROFILE_ID" "$WORKSPACE/m2repo" | tee "$TMP_FILE"
 staging_repo=$(sed -n -e 's/Staging repository \(.*\) created\./\1/p' "$TMP_FILE")
index 8d1ddd5..79eee27 100644 (file)
@@ -14,27 +14,16 @@ echo "---> Cleanup old images"
 # shellcheck disable=SC1090
 source ~/lf-env.sh
 
-set -x
-# 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 "cryptography<3.4" \
-        "lftools[openstack]" \
-        kubernetes \
-        "niet~=1.4.2" \
-        python-heatclient \
-        python-openstackclient \
-        python-magnumclient \
-        setuptools \
-        "openstacksdk<0.99" \
-        yq
-fi
+# TODO: "openstacksdk<0.99" AttributeError: 'Image' object has no
+# attribute 'protected'
+lf-activate-venv --python python3 "lftools[openstack]" \
+    kubernetes \
+    niet \
+    "openstacksdk<0.99" \
+    python-heatclient \
+    python-openstackclient \
+    python-magnumclient \
+    yq
 
 os_cloud="${OS_CLOUD:-vex}"
 os_image_cleanup_age="${OS_IMAGE_CLEANUP_AGE:-30}"
index 33fcaa6..0e5f392 100644 (file)
@@ -60,21 +60,12 @@ cluster_in_jenkins() {
 
 # 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 \
-        kubernetes \
-        python-heatclient \
-        python-openstackclient \
-        python-magnumclient
-fi
+lf-activate-venv --python python3 \
+    kubernetes \
+    python-heatclient \
+    python-openstackclient \
+    python-magnumclient
 
 #########################
 ## FETCH ACTIVE BUILDS ##
index e1f8436..c25ba59 100644 (file)
@@ -16,19 +16,9 @@ source ~/lf-env.sh
 
 os_cloud="${OS_CLOUD:-vex}"
 
-# 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
+lf-activate-venv --python python3 \
+    python-heatclient \
+    python-openstackclient
 
 set -eux -o pipefail
 
index 4dad6ed..ddbf1c6 100644 (file)
@@ -50,26 +50,14 @@ minion_in_jenkins() {
 # 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 "cryptography<3.4" \
-        "lftools[openstack]" \
-        kubernetes \
-        "niet~=1.4.2" \
-        python-heatclient \
-        python-openstackclient \
-        python-magnumclient \
-        setuptools \
-        "openstacksdk<0.99" \
-        yq
-fi
+lf-activate-venv --python python3 "lftools[openstack]" \
+    kubernetes \
+    niet \
+    python-heatclient \
+    python-openstackclient \
+    python-magnumclient \
+    yq
+
 ##########################
 ## FETCH ACTIVE MINIONS ##
 ##########################
index 187a83d..e9299b5 100644 (file)
@@ -60,26 +60,13 @@ stack_in_jenkins() {
 # 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 "cryptography<3.4" \
-        "lftools[openstack]" \
-        kubernetes \
-        "niet~=1.4.2" \
-        python-heatclient \
-        python-openstackclient \
-        python-magnumclient \
-        setuptools \
-        "openstacksdk<0.99" \
-        yq
-fi
+lf-activate-venv --python python3 "lftools[openstack]" \
+    kubernetes \
+    niet \
+    python-heatclient \
+    python-openstackclient \
+    python-magnumclient \
+    yq
 
 set -x
 #########################
index c5cc0b2..f6d7534 100644 (file)
@@ -17,26 +17,15 @@ set -eux -o pipefail
 
 # 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 "cryptography<3.4" \
-        "lftools[openstack]" \
-        kubernetes \
-        "niet~=1.4.2" \
-        python-heatclient \
-        python-openstackclient \
-        python-magnumclient \
-        setuptools \
-        "openstacksdk<0.99" \
-        yq
-fi
+lf-activate-venv --python python3 "lftools[openstack]" \
+    kubernetes \
+    niet \
+    python-heatclient \
+    python-openstackclient \
+    python-magnumclient \
+    yq
+
 mapfile -t os_volumes < <(openstack --os-cloud "$os_cloud" volume list -f value -c ID --status Available)
 
 if [ ${#os_volumes[@]} -eq 0 ]; then
index 5aef45d..b4054c3 100755 (executable)
@@ -16,26 +16,13 @@ set -eux -o pipefail
 # 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 "cryptography<3.4" \
-        "lftools[openstack]" \
-        kubernetes \
-        "niet~=1.4.2" \
-        python-heatclient \
-        python-openstackclient \
-        python-magnumclient \
-        setuptools \
-        "openstacksdk<0.99" \
-        yq
-fi
+lf-activate-venv --python python3 "lftools[openstack]" \
+    kubernetes \
+    niet \
+    python-heatclient \
+    python-openstackclient \
+    python-magnumclient \
+    yq
 
 os_cloud="${OS_CLOUD:-vex}"
 fixed_network="${FIXED_NETWORK}"
index 0729440..0d1624c 100644 (file)
@@ -22,19 +22,10 @@ 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
+lf-activate-venv --python python3 "lftools[openstack]" \
+    kubernetes \
+    python-heatclient \
+    python-openstackclient
 
 images=()
 while read -r -d $'\n' ; do
index 0509bb8..f20e1d9 100644 (file)
@@ -53,19 +53,10 @@ copy_ssh_keys () {
 # 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
+lf-activate-venv --python python3 "lftools[openstack]" \
+    kubernetes \
+    python-heatclient \
+    python-openstackclient
 
 # IP Addresses are returned as a space separated list so word splitting is ok
 # shellcheck disable=SC2207
index 0a2dc9f..d4ce787 100644 (file)
@@ -21,26 +21,14 @@ set -eux -o pipefail
 # 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
+lf-activate-venv --python python3 "lftools[openstack]" \
+    kubernetes \
+    niet \
+    python-heatclient \
+    python-openstackclient \
+    python-magnumclient \
+    yq
 
-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 "cryptography<3.4" \
-        "lftools[openstack]" \
-        kubernetes \
-        "niet~=1.4.2" \
-        python-heatclient \
-        python-openstackclient \
-        python-magnumclient \
-        setuptools \
-        "openstacksdk<0.99" \
-        yq
-fi
 openstack --os-cloud "$os_cloud" limits show --absolute
 
 pushd "$stack_template_dir" || exit 1
index 512ea99..09e1ed5 100644 (file)
@@ -15,19 +15,10 @@ set -eufo pipefail
 # 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 lftools[openstack] \
-        python-heatclient \
-        python-openstackclient
-fi
+lf-activate-venv --python python3 "lftools[openstack]" \
+    kubernetes \
+    python-heatclient \
+    python-openstackclient
 
 echo "INFO: Retrieving stack cost for: $OS_STACK_NAME"
 if ! lftools openstack --os-cloud "$OS_CLOUD" stack cost "$OS_STACK_NAME" > stack-cost; then
index e4e0b3c..66a6a76 100644 (file)
 echo "---> rtdv3.sh"
 set -euo pipefail
 
+# shellcheck disable=SC1090
+. ~/lf-env.sh
+
+lf-activate-venv --python python3 lftools
+
 watchbuild(){
     echo "INFO: Running build against branch $1"
     local buildid
index f708d37..724f190 100644 (file)
@@ -13,6 +13,11 @@ echo "---> sigul-sign-dir.sh"
 # Ensure we fail the job if any steps fail.
 set -e -o pipefail
 
+# shellcheck disable=SC1090
+. ~/lf-env.sh
+
+lf-activate-venv --python python3 lftools
+
 OS=$(facter operatingsystem | tr '[:upper:]' '[:lower:]')
 OS_RELEASE=$(facter lsbdistrelease | tr '[:upper:]' '[:lower:]')
 if [[ "$OS_RELEASE" == "8" && "$OS" == 'centos' ]]; then