Make lftools version configurable 69/5869/7
authorThanh Ha <thanh.ha@linuxfoundation.org>
Fri, 11 Aug 2017 16:40:04 +0000 (12:40 -0400)
committerThanh Ha <thanh.ha@linuxfoundation.org>
Fri, 11 Aug 2017 19:26:55 +0000 (15:26 -0400)
Add a new global default variable 'lftools-version' which can be used to
specify a version of lftools to install.

Issue: RELENG-391
Change-Id: I165c8309d4aaded6830f21eea10bc5a64cad2dff
Signed-off-by: Thanh Ha <thanh.ha@linuxfoundation.org>
27 files changed:
README.md
jjb-test/defaults.yaml
jjb-test/expected-xml/gerrit-ciman-jjb-merge
jjb-test/expected-xml/gerrit-ciman-jjb-verify
jjb-test/expected-xml/gerrit-ciman-packer-merge-centos-java-builder
jjb-test/expected-xml/gerrit-ciman-packer-merge-centos-mininet
jjb-test/expected-xml/gerrit-ciman-packer-merge-ubuntu1604-java-builder
jjb-test/expected-xml/gerrit-ciman-packer-merge-ubuntu1604-mininet
jjb-test/expected-xml/gerrit-ciman-packer-verify
jjb-test/expected-xml/gerrit-maven-maven-clm-master
jjb-test/expected-xml/gerrit-maven-maven-release-master
jjb-test/expected-xml/gerrit-python-tox-verify-master
jjb-test/expected-xml/github-ciman-jjb-merge
jjb-test/expected-xml/github-ciman-jjb-verify
jjb-test/expected-xml/github-ciman-packer-merge-centos-java-builder
jjb-test/expected-xml/github-ciman-packer-merge-centos-mininet
jjb-test/expected-xml/github-ciman-packer-merge-ubuntu1604-java-builder
jjb-test/expected-xml/github-ciman-packer-merge-ubuntu1604-mininet
jjb-test/expected-xml/github-ciman-packer-verify
jjb-test/expected-xml/github-maven-maven-clm-master
jjb-test/expected-xml/github-maven-maven-release-master
jjb-test/expected-xml/github-python-tox-verify-master
jjb/lf-ci-jobs.yaml
jjb/lf-macros.yaml
jjb/lf-maven-jobs.yaml
jjb/lf-python-jobs.yaml
shell/lftools-install.sh

index c1522bc..00f1279 100644 (file)
--- a/README.md
+++ b/README.md
@@ -105,6 +105,10 @@ trigger any job that uses the `lf-infra-github-pr-trigger` macro.
 privileges on any job using the `lf-infra-github-pr-trigger`
 macro.
 
+**lftools-version**: Version of lftools to install. Can be a specific version
+like '0.6.1' or a PEP-440 definition. <https://www.python.org/dev/peps/pep-0440/>
+For example `<1.0.0` or `>=1.0.0,<2.0.0`.
+
 defaults.yaml:
 
 ```
@@ -121,6 +125,7 @@ defaults.yaml:
       - zxiiro
     github_pr_admin_list:
       - tykeal
+    lftools-version: '<1.0.0'
 ```
 
 ## Config File Management
index 95a951c..319f257 100644 (file)
@@ -19,6 +19,8 @@
     github_pr_admin_list:
       - tykeal
 
+    lftools-version: '<1.0.0'
+
     # Common test config
     project: releng/ciman
     stream: latest
index 5432cdf..9f8081e 100644 (file)
@@ -64,6 +64,15 @@ job is triggered by Gerrit.
 </description>
           <defaultValue/>
         </hudson.model.StringParameterDefinition>
+        <hudson.model.StringParameterDefinition>
+          <name>LFTOOLS_VERSION</name>
+          <description>Version of lftools to install. Can be a specific version like
+'0.6.0' or a PEP-440 definition.
+https://www.python.org/dev/peps/pep-0440/
+For example '&lt;1.0.0' or '&gt;=1.0.0,&lt;2.0.0'.
+</description>
+          <defaultValue>&lt;1.0.0</defaultValue>
+        </hudson.model.StringParameterDefinition>
         <hudson.model.StringParameterDefinition>
           <name>JJB_VERSION</name>
           <description>Jenkins Job Builder version to download and install.</description>
@@ -334,6 +343,18 @@ echo &quot;machine $machine login $user password $pass&quot; &gt; ~/.netrc
 ##############################################################################
 echo &quot;---&gt; lftools-install.sh&quot;
 
+# Script to install lftools via a version passed in via lf-infra-parameters
+#
+# Required parameters:
+#
+#     LFTOOLS_VERSION: Passed in via lf-infra-parameters configuration. Can be
+#                      set to a strict version number like '1.2.3' or using
+#                      PEP-440 definitions.
+#
+#                      Examples:
+#                          &lt;1.0.0
+#                          &gt;=1.0.0,&lt;2.0.0
+#
 # By default a released version of lftools should always be used.
 # The purpose of the 2 variables below is so that lftools devs can test
 # unreleased versions of lftools. There are 2 methods to install a dev version
@@ -380,10 +401,16 @@ case $LFTOOLS_MODE in
         ;;
 
     release)
-        pip install --quiet --upgrade &quot;lftools&lt;1.0.0&quot;
+        if [[ $LFTOOLS_VERSION =~ ^[0-9] ]]; then
+            LFTOOLS_VERSION=&quot;==$LFTOOLS_VERSION&quot;
+        fi
+
+        pip install --quiet --upgrade &quot;lftools${LFTOOLS_VERSION}&quot;
         ;;
 esac
 
+lftools --version
+
 # pipdeptree prints out a lot of information because lftools pulls in many
 # dependencies. Let's only print it if we want to debug.
 # echo &quot;----&gt; Pip Dependency Tree&quot;
index 40cbc68..d5580b3 100644 (file)
@@ -64,6 +64,15 @@ job is triggered by Gerrit.
 </description>
           <defaultValue/>
         </hudson.model.StringParameterDefinition>
+        <hudson.model.StringParameterDefinition>
+          <name>LFTOOLS_VERSION</name>
+          <description>Version of lftools to install. Can be a specific version like
+'0.6.0' or a PEP-440 definition.
+https://www.python.org/dev/peps/pep-0440/
+For example '&lt;1.0.0' or '&gt;=1.0.0,&lt;2.0.0'.
+</description>
+          <defaultValue>&lt;1.0.0</defaultValue>
+        </hudson.model.StringParameterDefinition>
         <hudson.model.StringParameterDefinition>
           <name>JJB_VERSION</name>
           <description>Jenkins Job Builder version to download and install.</description>
@@ -427,6 +436,18 @@ echo &quot;machine $machine login $user password $pass&quot; &gt; ~/.netrc
 ##############################################################################
 echo &quot;---&gt; lftools-install.sh&quot;
 
+# Script to install lftools via a version passed in via lf-infra-parameters
+#
+# Required parameters:
+#
+#     LFTOOLS_VERSION: Passed in via lf-infra-parameters configuration. Can be
+#                      set to a strict version number like '1.2.3' or using
+#                      PEP-440 definitions.
+#
+#                      Examples:
+#                          &lt;1.0.0
+#                          &gt;=1.0.0,&lt;2.0.0
+#
 # By default a released version of lftools should always be used.
 # The purpose of the 2 variables below is so that lftools devs can test
 # unreleased versions of lftools. There are 2 methods to install a dev version
@@ -473,10 +494,16 @@ case $LFTOOLS_MODE in
         ;;
 
     release)
-        pip install --quiet --upgrade &quot;lftools&lt;1.0.0&quot;
+        if [[ $LFTOOLS_VERSION =~ ^[0-9] ]]; then
+            LFTOOLS_VERSION=&quot;==$LFTOOLS_VERSION&quot;
+        fi
+
+        pip install --quiet --upgrade &quot;lftools${LFTOOLS_VERSION}&quot;
         ;;
 esac
 
+lftools --version
+
 # pipdeptree prints out a lot of information because lftools pulls in many
 # dependencies. Let's only print it if we want to debug.
 # echo &quot;----&gt; Pip Dependency Tree&quot;
index cef730b..87b5ec9 100644 (file)
@@ -64,6 +64,15 @@ job is triggered by Gerrit.
 </description>
           <defaultValue/>
         </hudson.model.StringParameterDefinition>
+        <hudson.model.StringParameterDefinition>
+          <name>LFTOOLS_VERSION</name>
+          <description>Version of lftools to install. Can be a specific version like
+'0.6.0' or a PEP-440 definition.
+https://www.python.org/dev/peps/pep-0440/
+For example '&lt;1.0.0' or '&gt;=1.0.0,&lt;2.0.0'.
+</description>
+          <defaultValue>&lt;1.0.0</defaultValue>
+        </hudson.model.StringParameterDefinition>
         <hudson.model.StringParameterDefinition>
           <name>PACKER_VERSION</name>
           <description>Packer version to download and install.</description>
@@ -515,6 +524,18 @@ echo &quot;machine $machine login $user password $pass&quot; &gt; ~/.netrc
 ##############################################################################
 echo &quot;---&gt; lftools-install.sh&quot;
 
+# Script to install lftools via a version passed in via lf-infra-parameters
+#
+# Required parameters:
+#
+#     LFTOOLS_VERSION: Passed in via lf-infra-parameters configuration. Can be
+#                      set to a strict version number like '1.2.3' or using
+#                      PEP-440 definitions.
+#
+#                      Examples:
+#                          &lt;1.0.0
+#                          &gt;=1.0.0,&lt;2.0.0
+#
 # By default a released version of lftools should always be used.
 # The purpose of the 2 variables below is so that lftools devs can test
 # unreleased versions of lftools. There are 2 methods to install a dev version
@@ -561,10 +582,16 @@ case $LFTOOLS_MODE in
         ;;
 
     release)
-        pip install --quiet --upgrade &quot;lftools&lt;1.0.0&quot;
+        if [[ $LFTOOLS_VERSION =~ ^[0-9] ]]; then
+            LFTOOLS_VERSION=&quot;==$LFTOOLS_VERSION&quot;
+        fi
+
+        pip install --quiet --upgrade &quot;lftools${LFTOOLS_VERSION}&quot;
         ;;
 esac
 
+lftools --version
+
 # pipdeptree prints out a lot of information because lftools pulls in many
 # dependencies. Let's only print it if we want to debug.
 # echo &quot;----&gt; Pip Dependency Tree&quot;
index ed8e5e5..1a7fde3 100644 (file)
@@ -64,6 +64,15 @@ job is triggered by Gerrit.
 </description>
           <defaultValue/>
         </hudson.model.StringParameterDefinition>
+        <hudson.model.StringParameterDefinition>
+          <name>LFTOOLS_VERSION</name>
+          <description>Version of lftools to install. Can be a specific version like
+'0.6.0' or a PEP-440 definition.
+https://www.python.org/dev/peps/pep-0440/
+For example '&lt;1.0.0' or '&gt;=1.0.0,&lt;2.0.0'.
+</description>
+          <defaultValue>&lt;1.0.0</defaultValue>
+        </hudson.model.StringParameterDefinition>
         <hudson.model.StringParameterDefinition>
           <name>PACKER_VERSION</name>
           <description>Packer version to download and install.</description>
@@ -515,6 +524,18 @@ echo &quot;machine $machine login $user password $pass&quot; &gt; ~/.netrc
 ##############################################################################
 echo &quot;---&gt; lftools-install.sh&quot;
 
+# Script to install lftools via a version passed in via lf-infra-parameters
+#
+# Required parameters:
+#
+#     LFTOOLS_VERSION: Passed in via lf-infra-parameters configuration. Can be
+#                      set to a strict version number like '1.2.3' or using
+#                      PEP-440 definitions.
+#
+#                      Examples:
+#                          &lt;1.0.0
+#                          &gt;=1.0.0,&lt;2.0.0
+#
 # By default a released version of lftools should always be used.
 # The purpose of the 2 variables below is so that lftools devs can test
 # unreleased versions of lftools. There are 2 methods to install a dev version
@@ -561,10 +582,16 @@ case $LFTOOLS_MODE in
         ;;
 
     release)
-        pip install --quiet --upgrade &quot;lftools&lt;1.0.0&quot;
+        if [[ $LFTOOLS_VERSION =~ ^[0-9] ]]; then
+            LFTOOLS_VERSION=&quot;==$LFTOOLS_VERSION&quot;
+        fi
+
+        pip install --quiet --upgrade &quot;lftools${LFTOOLS_VERSION}&quot;
         ;;
 esac
 
+lftools --version
+
 # pipdeptree prints out a lot of information because lftools pulls in many
 # dependencies. Let's only print it if we want to debug.
 # echo &quot;----&gt; Pip Dependency Tree&quot;
index 412173d..0a54424 100644 (file)
@@ -64,6 +64,15 @@ job is triggered by Gerrit.
 </description>
           <defaultValue/>
         </hudson.model.StringParameterDefinition>
+        <hudson.model.StringParameterDefinition>
+          <name>LFTOOLS_VERSION</name>
+          <description>Version of lftools to install. Can be a specific version like
+'0.6.0' or a PEP-440 definition.
+https://www.python.org/dev/peps/pep-0440/
+For example '&lt;1.0.0' or '&gt;=1.0.0,&lt;2.0.0'.
+</description>
+          <defaultValue>&lt;1.0.0</defaultValue>
+        </hudson.model.StringParameterDefinition>
         <hudson.model.StringParameterDefinition>
           <name>PACKER_VERSION</name>
           <description>Packer version to download and install.</description>
@@ -515,6 +524,18 @@ echo &quot;machine $machine login $user password $pass&quot; &gt; ~/.netrc
 ##############################################################################
 echo &quot;---&gt; lftools-install.sh&quot;
 
+# Script to install lftools via a version passed in via lf-infra-parameters
+#
+# Required parameters:
+#
+#     LFTOOLS_VERSION: Passed in via lf-infra-parameters configuration. Can be
+#                      set to a strict version number like '1.2.3' or using
+#                      PEP-440 definitions.
+#
+#                      Examples:
+#                          &lt;1.0.0
+#                          &gt;=1.0.0,&lt;2.0.0
+#
 # By default a released version of lftools should always be used.
 # The purpose of the 2 variables below is so that lftools devs can test
 # unreleased versions of lftools. There are 2 methods to install a dev version
@@ -561,10 +582,16 @@ case $LFTOOLS_MODE in
         ;;
 
     release)
-        pip install --quiet --upgrade &quot;lftools&lt;1.0.0&quot;
+        if [[ $LFTOOLS_VERSION =~ ^[0-9] ]]; then
+            LFTOOLS_VERSION=&quot;==$LFTOOLS_VERSION&quot;
+        fi
+
+        pip install --quiet --upgrade &quot;lftools${LFTOOLS_VERSION}&quot;
         ;;
 esac
 
+lftools --version
+
 # pipdeptree prints out a lot of information because lftools pulls in many
 # dependencies. Let's only print it if we want to debug.
 # echo &quot;----&gt; Pip Dependency Tree&quot;
index dda58d9..62c6857 100644 (file)
@@ -64,6 +64,15 @@ job is triggered by Gerrit.
 </description>
           <defaultValue/>
         </hudson.model.StringParameterDefinition>
+        <hudson.model.StringParameterDefinition>
+          <name>LFTOOLS_VERSION</name>
+          <description>Version of lftools to install. Can be a specific version like
+'0.6.0' or a PEP-440 definition.
+https://www.python.org/dev/peps/pep-0440/
+For example '&lt;1.0.0' or '&gt;=1.0.0,&lt;2.0.0'.
+</description>
+          <defaultValue>&lt;1.0.0</defaultValue>
+        </hudson.model.StringParameterDefinition>
         <hudson.model.StringParameterDefinition>
           <name>PACKER_VERSION</name>
           <description>Packer version to download and install.</description>
@@ -515,6 +524,18 @@ echo &quot;machine $machine login $user password $pass&quot; &gt; ~/.netrc
 ##############################################################################
 echo &quot;---&gt; lftools-install.sh&quot;
 
+# Script to install lftools via a version passed in via lf-infra-parameters
+#
+# Required parameters:
+#
+#     LFTOOLS_VERSION: Passed in via lf-infra-parameters configuration. Can be
+#                      set to a strict version number like '1.2.3' or using
+#                      PEP-440 definitions.
+#
+#                      Examples:
+#                          &lt;1.0.0
+#                          &gt;=1.0.0,&lt;2.0.0
+#
 # By default a released version of lftools should always be used.
 # The purpose of the 2 variables below is so that lftools devs can test
 # unreleased versions of lftools. There are 2 methods to install a dev version
@@ -561,10 +582,16 @@ case $LFTOOLS_MODE in
         ;;
 
     release)
-        pip install --quiet --upgrade &quot;lftools&lt;1.0.0&quot;
+        if [[ $LFTOOLS_VERSION =~ ^[0-9] ]]; then
+            LFTOOLS_VERSION=&quot;==$LFTOOLS_VERSION&quot;
+        fi
+
+        pip install --quiet --upgrade &quot;lftools${LFTOOLS_VERSION}&quot;
         ;;
 esac
 
+lftools --version
+
 # pipdeptree prints out a lot of information because lftools pulls in many
 # dependencies. Let's only print it if we want to debug.
 # echo &quot;----&gt; Pip Dependency Tree&quot;
index ad38091..5c963ff 100644 (file)
@@ -64,6 +64,15 @@ job is triggered by Gerrit.
 </description>
           <defaultValue/>
         </hudson.model.StringParameterDefinition>
+        <hudson.model.StringParameterDefinition>
+          <name>LFTOOLS_VERSION</name>
+          <description>Version of lftools to install. Can be a specific version like
+'0.6.0' or a PEP-440 definition.
+https://www.python.org/dev/peps/pep-0440/
+For example '&lt;1.0.0' or '&gt;=1.0.0,&lt;2.0.0'.
+</description>
+          <defaultValue>&lt;1.0.0</defaultValue>
+        </hudson.model.StringParameterDefinition>
         <hudson.model.StringParameterDefinition>
           <name>PACKER_VERSION</name>
           <description>Packer version to download and install.</description>
@@ -403,6 +412,18 @@ echo &quot;machine $machine login $user password $pass&quot; &gt; ~/.netrc
 ##############################################################################
 echo &quot;---&gt; lftools-install.sh&quot;
 
+# Script to install lftools via a version passed in via lf-infra-parameters
+#
+# Required parameters:
+#
+#     LFTOOLS_VERSION: Passed in via lf-infra-parameters configuration. Can be
+#                      set to a strict version number like '1.2.3' or using
+#                      PEP-440 definitions.
+#
+#                      Examples:
+#                          &lt;1.0.0
+#                          &gt;=1.0.0,&lt;2.0.0
+#
 # By default a released version of lftools should always be used.
 # The purpose of the 2 variables below is so that lftools devs can test
 # unreleased versions of lftools. There are 2 methods to install a dev version
@@ -449,10 +470,16 @@ case $LFTOOLS_MODE in
         ;;
 
     release)
-        pip install --quiet --upgrade &quot;lftools&lt;1.0.0&quot;
+        if [[ $LFTOOLS_VERSION =~ ^[0-9] ]]; then
+            LFTOOLS_VERSION=&quot;==$LFTOOLS_VERSION&quot;
+        fi
+
+        pip install --quiet --upgrade &quot;lftools${LFTOOLS_VERSION}&quot;
         ;;
 esac
 
+lftools --version
+
 # pipdeptree prints out a lot of information because lftools pulls in many
 # dependencies. Let's only print it if we want to debug.
 # echo &quot;----&gt; Pip Dependency Tree&quot;
index 79af60e..8d5c7a3 100644 (file)
@@ -65,6 +65,15 @@ job is triggered by Gerrit.
 </description>
           <defaultValue/>
         </hudson.model.StringParameterDefinition>
+        <hudson.model.StringParameterDefinition>
+          <name>LFTOOLS_VERSION</name>
+          <description>Version of lftools to install. Can be a specific version like
+'0.6.0' or a PEP-440 definition.
+https://www.python.org/dev/peps/pep-0440/
+For example '&lt;1.0.0' or '&gt;=1.0.0,&lt;2.0.0'.
+</description>
+          <defaultValue>&lt;1.0.0</defaultValue>
+        </hudson.model.StringParameterDefinition>
         <hudson.model.StringParameterDefinition>
           <name>MAVEN_OPTS</name>
           <description>Maven Java opts. Example: -Xmx1024m -XX:MaxPermSize=256m
@@ -361,6 +370,18 @@ echo &quot;machine $machine login $user password $pass&quot; &gt; ~/.netrc
 ##############################################################################
 echo &quot;---&gt; lftools-install.sh&quot;
 
+# Script to install lftools via a version passed in via lf-infra-parameters
+#
+# Required parameters:
+#
+#     LFTOOLS_VERSION: Passed in via lf-infra-parameters configuration. Can be
+#                      set to a strict version number like '1.2.3' or using
+#                      PEP-440 definitions.
+#
+#                      Examples:
+#                          &lt;1.0.0
+#                          &gt;=1.0.0,&lt;2.0.0
+#
 # By default a released version of lftools should always be used.
 # The purpose of the 2 variables below is so that lftools devs can test
 # unreleased versions of lftools. There are 2 methods to install a dev version
@@ -407,10 +428,16 @@ case $LFTOOLS_MODE in
         ;;
 
     release)
-        pip install --quiet --upgrade &quot;lftools&lt;1.0.0&quot;
+        if [[ $LFTOOLS_VERSION =~ ^[0-9] ]]; then
+            LFTOOLS_VERSION=&quot;==$LFTOOLS_VERSION&quot;
+        fi
+
+        pip install --quiet --upgrade &quot;lftools${LFTOOLS_VERSION}&quot;
         ;;
 esac
 
+lftools --version
+
 # pipdeptree prints out a lot of information because lftools pulls in many
 # dependencies. Let's only print it if we want to debug.
 # echo &quot;----&gt; Pip Dependency Tree&quot;
index f045b17..b391637 100644 (file)
@@ -65,6 +65,15 @@ job is triggered by Gerrit.
 </description>
           <defaultValue/>
         </hudson.model.StringParameterDefinition>
+        <hudson.model.StringParameterDefinition>
+          <name>LFTOOLS_VERSION</name>
+          <description>Version of lftools to install. Can be a specific version like
+'0.6.0' or a PEP-440 definition.
+https://www.python.org/dev/peps/pep-0440/
+For example '&lt;1.0.0' or '&gt;=1.0.0,&lt;2.0.0'.
+</description>
+          <defaultValue>&lt;1.0.0</defaultValue>
+        </hudson.model.StringParameterDefinition>
         <hudson.model.StringParameterDefinition>
           <name>MAVEN_OPTS</name>
           <description>Maven Java opts. Example: -Xmx1024m -XX:MaxPermSize=256m
@@ -213,6 +222,18 @@ echo &quot;machine $machine login $user password $pass&quot; &gt; ~/.netrc
 ##############################################################################
 echo &quot;---&gt; lftools-install.sh&quot;
 
+# Script to install lftools via a version passed in via lf-infra-parameters
+#
+# Required parameters:
+#
+#     LFTOOLS_VERSION: Passed in via lf-infra-parameters configuration. Can be
+#                      set to a strict version number like '1.2.3' or using
+#                      PEP-440 definitions.
+#
+#                      Examples:
+#                          &lt;1.0.0
+#                          &gt;=1.0.0,&lt;2.0.0
+#
 # By default a released version of lftools should always be used.
 # The purpose of the 2 variables below is so that lftools devs can test
 # unreleased versions of lftools. There are 2 methods to install a dev version
@@ -259,10 +280,16 @@ case $LFTOOLS_MODE in
         ;;
 
     release)
-        pip install --quiet --upgrade &quot;lftools&lt;1.0.0&quot;
+        if [[ $LFTOOLS_VERSION =~ ^[0-9] ]]; then
+            LFTOOLS_VERSION=&quot;==$LFTOOLS_VERSION&quot;
+        fi
+
+        pip install --quiet --upgrade &quot;lftools${LFTOOLS_VERSION}&quot;
         ;;
 esac
 
+lftools --version
+
 # pipdeptree prints out a lot of information because lftools pulls in many
 # dependencies. Let's only print it if we want to debug.
 # echo &quot;----&gt; Pip Dependency Tree&quot;
@@ -502,6 +529,18 @@ echo &quot;machine $machine login $user password $pass&quot; &gt; ~/.netrc
 ##############################################################################
 echo &quot;---&gt; lftools-install.sh&quot;
 
+# Script to install lftools via a version passed in via lf-infra-parameters
+#
+# Required parameters:
+#
+#     LFTOOLS_VERSION: Passed in via lf-infra-parameters configuration. Can be
+#                      set to a strict version number like '1.2.3' or using
+#                      PEP-440 definitions.
+#
+#                      Examples:
+#                          &lt;1.0.0
+#                          &gt;=1.0.0,&lt;2.0.0
+#
 # By default a released version of lftools should always be used.
 # The purpose of the 2 variables below is so that lftools devs can test
 # unreleased versions of lftools. There are 2 methods to install a dev version
@@ -548,10 +587,16 @@ case $LFTOOLS_MODE in
         ;;
 
     release)
-        pip install --quiet --upgrade &quot;lftools&lt;1.0.0&quot;
+        if [[ $LFTOOLS_VERSION =~ ^[0-9] ]]; then
+            LFTOOLS_VERSION=&quot;==$LFTOOLS_VERSION&quot;
+        fi
+
+        pip install --quiet --upgrade &quot;lftools${LFTOOLS_VERSION}&quot;
         ;;
 esac
 
+lftools --version
+
 # pipdeptree prints out a lot of information because lftools pulls in many
 # dependencies. Let's only print it if we want to debug.
 # echo &quot;----&gt; Pip Dependency Tree&quot;
index 971c6cd..6908475 100644 (file)
@@ -64,6 +64,15 @@ job is triggered by Gerrit.
 </description>
           <defaultValue/>
         </hudson.model.StringParameterDefinition>
+        <hudson.model.StringParameterDefinition>
+          <name>LFTOOLS_VERSION</name>
+          <description>Version of lftools to install. Can be a specific version like
+'0.6.0' or a PEP-440 definition.
+https://www.python.org/dev/peps/pep-0440/
+For example '&lt;1.0.0' or '&gt;=1.0.0,&lt;2.0.0'.
+</description>
+          <defaultValue>&lt;1.0.0</defaultValue>
+        </hudson.model.StringParameterDefinition>
         <hudson.model.StringParameterDefinition>
           <name>TOX_DIR</name>
           <description>Path to directory containing tox.ini file.
@@ -190,6 +199,18 @@ Example: docs,py2,py3
 ##############################################################################
 echo &quot;---&gt; lftools-install.sh&quot;
 
+# Script to install lftools via a version passed in via lf-infra-parameters
+#
+# Required parameters:
+#
+#     LFTOOLS_VERSION: Passed in via lf-infra-parameters configuration. Can be
+#                      set to a strict version number like '1.2.3' or using
+#                      PEP-440 definitions.
+#
+#                      Examples:
+#                          &lt;1.0.0
+#                          &gt;=1.0.0,&lt;2.0.0
+#
 # By default a released version of lftools should always be used.
 # The purpose of the 2 variables below is so that lftools devs can test
 # unreleased versions of lftools. There are 2 methods to install a dev version
@@ -236,10 +257,16 @@ case $LFTOOLS_MODE in
         ;;
 
     release)
-        pip install --quiet --upgrade &quot;lftools&lt;1.0.0&quot;
+        if [[ $LFTOOLS_VERSION =~ ^[0-9] ]]; then
+            LFTOOLS_VERSION=&quot;==$LFTOOLS_VERSION&quot;
+        fi
+
+        pip install --quiet --upgrade &quot;lftools${LFTOOLS_VERSION}&quot;
         ;;
 esac
 
+lftools --version
+
 # pipdeptree prints out a lot of information because lftools pulls in many
 # dependencies. Let's only print it if we want to debug.
 # echo &quot;----&gt; Pip Dependency Tree&quot;
@@ -406,6 +433,18 @@ echo &quot;machine $machine login $user password $pass&quot; &gt; ~/.netrc
 ##############################################################################
 echo &quot;---&gt; lftools-install.sh&quot;
 
+# Script to install lftools via a version passed in via lf-infra-parameters
+#
+# Required parameters:
+#
+#     LFTOOLS_VERSION: Passed in via lf-infra-parameters configuration. Can be
+#                      set to a strict version number like '1.2.3' or using
+#                      PEP-440 definitions.
+#
+#                      Examples:
+#                          &lt;1.0.0
+#                          &gt;=1.0.0,&lt;2.0.0
+#
 # By default a released version of lftools should always be used.
 # The purpose of the 2 variables below is so that lftools devs can test
 # unreleased versions of lftools. There are 2 methods to install a dev version
@@ -452,10 +491,16 @@ case $LFTOOLS_MODE in
         ;;
 
     release)
-        pip install --quiet --upgrade &quot;lftools&lt;1.0.0&quot;
+        if [[ $LFTOOLS_VERSION =~ ^[0-9] ]]; then
+            LFTOOLS_VERSION=&quot;==$LFTOOLS_VERSION&quot;
+        fi
+
+        pip install --quiet --upgrade &quot;lftools${LFTOOLS_VERSION}&quot;
         ;;
 esac
 
+lftools --version
+
 # pipdeptree prints out a lot of information because lftools pulls in many
 # dependencies. Let's only print it if we want to debug.
 # echo &quot;----&gt; Pip Dependency Tree&quot;
index e17ba60..ad689da 100644 (file)
@@ -59,6 +59,15 @@ job is triggered by Gerrit.
 </description>
           <defaultValue/>
         </hudson.model.StringParameterDefinition>
+        <hudson.model.StringParameterDefinition>
+          <name>LFTOOLS_VERSION</name>
+          <description>Version of lftools to install. Can be a specific version like
+'0.6.0' or a PEP-440 definition.
+https://www.python.org/dev/peps/pep-0440/
+For example '&lt;1.0.0' or '&gt;=1.0.0,&lt;2.0.0'.
+</description>
+          <defaultValue>&lt;1.0.0</defaultValue>
+        </hudson.model.StringParameterDefinition>
         <hudson.model.StringParameterDefinition>
           <name>JJB_VERSION</name>
           <description>Jenkins Job Builder version to download and install.</description>
@@ -300,6 +309,18 @@ echo &quot;machine $machine login $user password $pass&quot; &gt; ~/.netrc
 ##############################################################################
 echo &quot;---&gt; lftools-install.sh&quot;
 
+# Script to install lftools via a version passed in via lf-infra-parameters
+#
+# Required parameters:
+#
+#     LFTOOLS_VERSION: Passed in via lf-infra-parameters configuration. Can be
+#                      set to a strict version number like '1.2.3' or using
+#                      PEP-440 definitions.
+#
+#                      Examples:
+#                          &lt;1.0.0
+#                          &gt;=1.0.0,&lt;2.0.0
+#
 # By default a released version of lftools should always be used.
 # The purpose of the 2 variables below is so that lftools devs can test
 # unreleased versions of lftools. There are 2 methods to install a dev version
@@ -346,10 +367,16 @@ case $LFTOOLS_MODE in
         ;;
 
     release)
-        pip install --quiet --upgrade &quot;lftools&lt;1.0.0&quot;
+        if [[ $LFTOOLS_VERSION =~ ^[0-9] ]]; then
+            LFTOOLS_VERSION=&quot;==$LFTOOLS_VERSION&quot;
+        fi
+
+        pip install --quiet --upgrade &quot;lftools${LFTOOLS_VERSION}&quot;
         ;;
 esac
 
+lftools --version
+
 # pipdeptree prints out a lot of information because lftools pulls in many
 # dependencies. Let's only print it if we want to debug.
 # echo &quot;----&gt; Pip Dependency Tree&quot;
index fdf4cc4..83cd7fd 100644 (file)
@@ -59,6 +59,15 @@ job is triggered by Gerrit.
 </description>
           <defaultValue/>
         </hudson.model.StringParameterDefinition>
+        <hudson.model.StringParameterDefinition>
+          <name>LFTOOLS_VERSION</name>
+          <description>Version of lftools to install. Can be a specific version like
+'0.6.0' or a PEP-440 definition.
+https://www.python.org/dev/peps/pep-0440/
+For example '&lt;1.0.0' or '&gt;=1.0.0,&lt;2.0.0'.
+</description>
+          <defaultValue>&lt;1.0.0</defaultValue>
+        </hudson.model.StringParameterDefinition>
         <hudson.model.StringParameterDefinition>
           <name>JJB_VERSION</name>
           <description>Jenkins Job Builder version to download and install.</description>
@@ -379,6 +388,18 @@ echo &quot;machine $machine login $user password $pass&quot; &gt; ~/.netrc
 ##############################################################################
 echo &quot;---&gt; lftools-install.sh&quot;
 
+# Script to install lftools via a version passed in via lf-infra-parameters
+#
+# Required parameters:
+#
+#     LFTOOLS_VERSION: Passed in via lf-infra-parameters configuration. Can be
+#                      set to a strict version number like '1.2.3' or using
+#                      PEP-440 definitions.
+#
+#                      Examples:
+#                          &lt;1.0.0
+#                          &gt;=1.0.0,&lt;2.0.0
+#
 # By default a released version of lftools should always be used.
 # The purpose of the 2 variables below is so that lftools devs can test
 # unreleased versions of lftools. There are 2 methods to install a dev version
@@ -425,10 +446,16 @@ case $LFTOOLS_MODE in
         ;;
 
     release)
-        pip install --quiet --upgrade &quot;lftools&lt;1.0.0&quot;
+        if [[ $LFTOOLS_VERSION =~ ^[0-9] ]]; then
+            LFTOOLS_VERSION=&quot;==$LFTOOLS_VERSION&quot;
+        fi
+
+        pip install --quiet --upgrade &quot;lftools${LFTOOLS_VERSION}&quot;
         ;;
 esac
 
+lftools --version
+
 # pipdeptree prints out a lot of information because lftools pulls in many
 # dependencies. Let's only print it if we want to debug.
 # echo &quot;----&gt; Pip Dependency Tree&quot;
index 6a05c9e..1f75c0c 100644 (file)
@@ -59,6 +59,15 @@ job is triggered by Gerrit.
 </description>
           <defaultValue/>
         </hudson.model.StringParameterDefinition>
+        <hudson.model.StringParameterDefinition>
+          <name>LFTOOLS_VERSION</name>
+          <description>Version of lftools to install. Can be a specific version like
+'0.6.0' or a PEP-440 definition.
+https://www.python.org/dev/peps/pep-0440/
+For example '&lt;1.0.0' or '&gt;=1.0.0,&lt;2.0.0'.
+</description>
+          <defaultValue>&lt;1.0.0</defaultValue>
+        </hudson.model.StringParameterDefinition>
         <hudson.model.StringParameterDefinition>
           <name>PACKER_VERSION</name>
           <description>Packer version to download and install.</description>
@@ -473,6 +482,18 @@ echo &quot;machine $machine login $user password $pass&quot; &gt; ~/.netrc
 ##############################################################################
 echo &quot;---&gt; lftools-install.sh&quot;
 
+# Script to install lftools via a version passed in via lf-infra-parameters
+#
+# Required parameters:
+#
+#     LFTOOLS_VERSION: Passed in via lf-infra-parameters configuration. Can be
+#                      set to a strict version number like '1.2.3' or using
+#                      PEP-440 definitions.
+#
+#                      Examples:
+#                          &lt;1.0.0
+#                          &gt;=1.0.0,&lt;2.0.0
+#
 # By default a released version of lftools should always be used.
 # The purpose of the 2 variables below is so that lftools devs can test
 # unreleased versions of lftools. There are 2 methods to install a dev version
@@ -519,10 +540,16 @@ case $LFTOOLS_MODE in
         ;;
 
     release)
-        pip install --quiet --upgrade &quot;lftools&lt;1.0.0&quot;
+        if [[ $LFTOOLS_VERSION =~ ^[0-9] ]]; then
+            LFTOOLS_VERSION=&quot;==$LFTOOLS_VERSION&quot;
+        fi
+
+        pip install --quiet --upgrade &quot;lftools${LFTOOLS_VERSION}&quot;
         ;;
 esac
 
+lftools --version
+
 # pipdeptree prints out a lot of information because lftools pulls in many
 # dependencies. Let's only print it if we want to debug.
 # echo &quot;----&gt; Pip Dependency Tree&quot;
index 487fc9b..bee3db0 100644 (file)
@@ -59,6 +59,15 @@ job is triggered by Gerrit.
 </description>
           <defaultValue/>
         </hudson.model.StringParameterDefinition>
+        <hudson.model.StringParameterDefinition>
+          <name>LFTOOLS_VERSION</name>
+          <description>Version of lftools to install. Can be a specific version like
+'0.6.0' or a PEP-440 definition.
+https://www.python.org/dev/peps/pep-0440/
+For example '&lt;1.0.0' or '&gt;=1.0.0,&lt;2.0.0'.
+</description>
+          <defaultValue>&lt;1.0.0</defaultValue>
+        </hudson.model.StringParameterDefinition>
         <hudson.model.StringParameterDefinition>
           <name>PACKER_VERSION</name>
           <description>Packer version to download and install.</description>
@@ -473,6 +482,18 @@ echo &quot;machine $machine login $user password $pass&quot; &gt; ~/.netrc
 ##############################################################################
 echo &quot;---&gt; lftools-install.sh&quot;
 
+# Script to install lftools via a version passed in via lf-infra-parameters
+#
+# Required parameters:
+#
+#     LFTOOLS_VERSION: Passed in via lf-infra-parameters configuration. Can be
+#                      set to a strict version number like '1.2.3' or using
+#                      PEP-440 definitions.
+#
+#                      Examples:
+#                          &lt;1.0.0
+#                          &gt;=1.0.0,&lt;2.0.0
+#
 # By default a released version of lftools should always be used.
 # The purpose of the 2 variables below is so that lftools devs can test
 # unreleased versions of lftools. There are 2 methods to install a dev version
@@ -519,10 +540,16 @@ case $LFTOOLS_MODE in
         ;;
 
     release)
-        pip install --quiet --upgrade &quot;lftools&lt;1.0.0&quot;
+        if [[ $LFTOOLS_VERSION =~ ^[0-9] ]]; then
+            LFTOOLS_VERSION=&quot;==$LFTOOLS_VERSION&quot;
+        fi
+
+        pip install --quiet --upgrade &quot;lftools${LFTOOLS_VERSION}&quot;
         ;;
 esac
 
+lftools --version
+
 # pipdeptree prints out a lot of information because lftools pulls in many
 # dependencies. Let's only print it if we want to debug.
 # echo &quot;----&gt; Pip Dependency Tree&quot;
index ed85930..b3ca61c 100644 (file)
@@ -59,6 +59,15 @@ job is triggered by Gerrit.
 </description>
           <defaultValue/>
         </hudson.model.StringParameterDefinition>
+        <hudson.model.StringParameterDefinition>
+          <name>LFTOOLS_VERSION</name>
+          <description>Version of lftools to install. Can be a specific version like
+'0.6.0' or a PEP-440 definition.
+https://www.python.org/dev/peps/pep-0440/
+For example '&lt;1.0.0' or '&gt;=1.0.0,&lt;2.0.0'.
+</description>
+          <defaultValue>&lt;1.0.0</defaultValue>
+        </hudson.model.StringParameterDefinition>
         <hudson.model.StringParameterDefinition>
           <name>PACKER_VERSION</name>
           <description>Packer version to download and install.</description>
@@ -473,6 +482,18 @@ echo &quot;machine $machine login $user password $pass&quot; &gt; ~/.netrc
 ##############################################################################
 echo &quot;---&gt; lftools-install.sh&quot;
 
+# Script to install lftools via a version passed in via lf-infra-parameters
+#
+# Required parameters:
+#
+#     LFTOOLS_VERSION: Passed in via lf-infra-parameters configuration. Can be
+#                      set to a strict version number like '1.2.3' or using
+#                      PEP-440 definitions.
+#
+#                      Examples:
+#                          &lt;1.0.0
+#                          &gt;=1.0.0,&lt;2.0.0
+#
 # By default a released version of lftools should always be used.
 # The purpose of the 2 variables below is so that lftools devs can test
 # unreleased versions of lftools. There are 2 methods to install a dev version
@@ -519,10 +540,16 @@ case $LFTOOLS_MODE in
         ;;
 
     release)
-        pip install --quiet --upgrade &quot;lftools&lt;1.0.0&quot;
+        if [[ $LFTOOLS_VERSION =~ ^[0-9] ]]; then
+            LFTOOLS_VERSION=&quot;==$LFTOOLS_VERSION&quot;
+        fi
+
+        pip install --quiet --upgrade &quot;lftools${LFTOOLS_VERSION}&quot;
         ;;
 esac
 
+lftools --version
+
 # pipdeptree prints out a lot of information because lftools pulls in many
 # dependencies. Let's only print it if we want to debug.
 # echo &quot;----&gt; Pip Dependency Tree&quot;
index e511e7a..8bc173b 100644 (file)
@@ -59,6 +59,15 @@ job is triggered by Gerrit.
 </description>
           <defaultValue/>
         </hudson.model.StringParameterDefinition>
+        <hudson.model.StringParameterDefinition>
+          <name>LFTOOLS_VERSION</name>
+          <description>Version of lftools to install. Can be a specific version like
+'0.6.0' or a PEP-440 definition.
+https://www.python.org/dev/peps/pep-0440/
+For example '&lt;1.0.0' or '&gt;=1.0.0,&lt;2.0.0'.
+</description>
+          <defaultValue>&lt;1.0.0</defaultValue>
+        </hudson.model.StringParameterDefinition>
         <hudson.model.StringParameterDefinition>
           <name>PACKER_VERSION</name>
           <description>Packer version to download and install.</description>
@@ -473,6 +482,18 @@ echo &quot;machine $machine login $user password $pass&quot; &gt; ~/.netrc
 ##############################################################################
 echo &quot;---&gt; lftools-install.sh&quot;
 
+# Script to install lftools via a version passed in via lf-infra-parameters
+#
+# Required parameters:
+#
+#     LFTOOLS_VERSION: Passed in via lf-infra-parameters configuration. Can be
+#                      set to a strict version number like '1.2.3' or using
+#                      PEP-440 definitions.
+#
+#                      Examples:
+#                          &lt;1.0.0
+#                          &gt;=1.0.0,&lt;2.0.0
+#
 # By default a released version of lftools should always be used.
 # The purpose of the 2 variables below is so that lftools devs can test
 # unreleased versions of lftools. There are 2 methods to install a dev version
@@ -519,10 +540,16 @@ case $LFTOOLS_MODE in
         ;;
 
     release)
-        pip install --quiet --upgrade &quot;lftools&lt;1.0.0&quot;
+        if [[ $LFTOOLS_VERSION =~ ^[0-9] ]]; then
+            LFTOOLS_VERSION=&quot;==$LFTOOLS_VERSION&quot;
+        fi
+
+        pip install --quiet --upgrade &quot;lftools${LFTOOLS_VERSION}&quot;
         ;;
 esac
 
+lftools --version
+
 # pipdeptree prints out a lot of information because lftools pulls in many
 # dependencies. Let's only print it if we want to debug.
 # echo &quot;----&gt; Pip Dependency Tree&quot;
index 3e8223a..20da5d3 100644 (file)
@@ -59,6 +59,15 @@ job is triggered by Gerrit.
 </description>
           <defaultValue/>
         </hudson.model.StringParameterDefinition>
+        <hudson.model.StringParameterDefinition>
+          <name>LFTOOLS_VERSION</name>
+          <description>Version of lftools to install. Can be a specific version like
+'0.6.0' or a PEP-440 definition.
+https://www.python.org/dev/peps/pep-0440/
+For example '&lt;1.0.0' or '&gt;=1.0.0,&lt;2.0.0'.
+</description>
+          <defaultValue>&lt;1.0.0</defaultValue>
+        </hudson.model.StringParameterDefinition>
         <hudson.model.StringParameterDefinition>
           <name>PACKER_VERSION</name>
           <description>Packer version to download and install.</description>
@@ -347,6 +356,18 @@ echo &quot;machine $machine login $user password $pass&quot; &gt; ~/.netrc
 ##############################################################################
 echo &quot;---&gt; lftools-install.sh&quot;
 
+# Script to install lftools via a version passed in via lf-infra-parameters
+#
+# Required parameters:
+#
+#     LFTOOLS_VERSION: Passed in via lf-infra-parameters configuration. Can be
+#                      set to a strict version number like '1.2.3' or using
+#                      PEP-440 definitions.
+#
+#                      Examples:
+#                          &lt;1.0.0
+#                          &gt;=1.0.0,&lt;2.0.0
+#
 # By default a released version of lftools should always be used.
 # The purpose of the 2 variables below is so that lftools devs can test
 # unreleased versions of lftools. There are 2 methods to install a dev version
@@ -393,10 +414,16 @@ case $LFTOOLS_MODE in
         ;;
 
     release)
-        pip install --quiet --upgrade &quot;lftools&lt;1.0.0&quot;
+        if [[ $LFTOOLS_VERSION =~ ^[0-9] ]]; then
+            LFTOOLS_VERSION=&quot;==$LFTOOLS_VERSION&quot;
+        fi
+
+        pip install --quiet --upgrade &quot;lftools${LFTOOLS_VERSION}&quot;
         ;;
 esac
 
+lftools --version
+
 # pipdeptree prints out a lot of information because lftools pulls in many
 # dependencies. Let's only print it if we want to debug.
 # echo &quot;----&gt; Pip Dependency Tree&quot;
index c1830dd..cfe3359 100644 (file)
@@ -60,6 +60,15 @@ job is triggered by Gerrit.
 </description>
           <defaultValue/>
         </hudson.model.StringParameterDefinition>
+        <hudson.model.StringParameterDefinition>
+          <name>LFTOOLS_VERSION</name>
+          <description>Version of lftools to install. Can be a specific version like
+'0.6.0' or a PEP-440 definition.
+https://www.python.org/dev/peps/pep-0440/
+For example '&lt;1.0.0' or '&gt;=1.0.0,&lt;2.0.0'.
+</description>
+          <defaultValue>&lt;1.0.0</defaultValue>
+        </hudson.model.StringParameterDefinition>
         <hudson.model.StringParameterDefinition>
           <name>MAVEN_OPTS</name>
           <description>Maven Java opts. Example: -Xmx1024m -XX:MaxPermSize=256m
@@ -356,6 +365,18 @@ echo &quot;machine $machine login $user password $pass&quot; &gt; ~/.netrc
 ##############################################################################
 echo &quot;---&gt; lftools-install.sh&quot;
 
+# Script to install lftools via a version passed in via lf-infra-parameters
+#
+# Required parameters:
+#
+#     LFTOOLS_VERSION: Passed in via lf-infra-parameters configuration. Can be
+#                      set to a strict version number like '1.2.3' or using
+#                      PEP-440 definitions.
+#
+#                      Examples:
+#                          &lt;1.0.0
+#                          &gt;=1.0.0,&lt;2.0.0
+#
 # By default a released version of lftools should always be used.
 # The purpose of the 2 variables below is so that lftools devs can test
 # unreleased versions of lftools. There are 2 methods to install a dev version
@@ -402,10 +423,16 @@ case $LFTOOLS_MODE in
         ;;
 
     release)
-        pip install --quiet --upgrade &quot;lftools&lt;1.0.0&quot;
+        if [[ $LFTOOLS_VERSION =~ ^[0-9] ]]; then
+            LFTOOLS_VERSION=&quot;==$LFTOOLS_VERSION&quot;
+        fi
+
+        pip install --quiet --upgrade &quot;lftools${LFTOOLS_VERSION}&quot;
         ;;
 esac
 
+lftools --version
+
 # pipdeptree prints out a lot of information because lftools pulls in many
 # dependencies. Let's only print it if we want to debug.
 # echo &quot;----&gt; Pip Dependency Tree&quot;
index 8900ca4..9186d87 100644 (file)
@@ -60,6 +60,15 @@ job is triggered by Gerrit.
 </description>
           <defaultValue/>
         </hudson.model.StringParameterDefinition>
+        <hudson.model.StringParameterDefinition>
+          <name>LFTOOLS_VERSION</name>
+          <description>Version of lftools to install. Can be a specific version like
+'0.6.0' or a PEP-440 definition.
+https://www.python.org/dev/peps/pep-0440/
+For example '&lt;1.0.0' or '&gt;=1.0.0,&lt;2.0.0'.
+</description>
+          <defaultValue>&lt;1.0.0</defaultValue>
+        </hudson.model.StringParameterDefinition>
         <hudson.model.StringParameterDefinition>
           <name>MAVEN_OPTS</name>
           <description>Maven Java opts. Example: -Xmx1024m -XX:MaxPermSize=256m
@@ -208,6 +217,18 @@ echo &quot;machine $machine login $user password $pass&quot; &gt; ~/.netrc
 ##############################################################################
 echo &quot;---&gt; lftools-install.sh&quot;
 
+# Script to install lftools via a version passed in via lf-infra-parameters
+#
+# Required parameters:
+#
+#     LFTOOLS_VERSION: Passed in via lf-infra-parameters configuration. Can be
+#                      set to a strict version number like '1.2.3' or using
+#                      PEP-440 definitions.
+#
+#                      Examples:
+#                          &lt;1.0.0
+#                          &gt;=1.0.0,&lt;2.0.0
+#
 # By default a released version of lftools should always be used.
 # The purpose of the 2 variables below is so that lftools devs can test
 # unreleased versions of lftools. There are 2 methods to install a dev version
@@ -254,10 +275,16 @@ case $LFTOOLS_MODE in
         ;;
 
     release)
-        pip install --quiet --upgrade &quot;lftools&lt;1.0.0&quot;
+        if [[ $LFTOOLS_VERSION =~ ^[0-9] ]]; then
+            LFTOOLS_VERSION=&quot;==$LFTOOLS_VERSION&quot;
+        fi
+
+        pip install --quiet --upgrade &quot;lftools${LFTOOLS_VERSION}&quot;
         ;;
 esac
 
+lftools --version
+
 # pipdeptree prints out a lot of information because lftools pulls in many
 # dependencies. Let's only print it if we want to debug.
 # echo &quot;----&gt; Pip Dependency Tree&quot;
@@ -497,6 +524,18 @@ echo &quot;machine $machine login $user password $pass&quot; &gt; ~/.netrc
 ##############################################################################
 echo &quot;---&gt; lftools-install.sh&quot;
 
+# Script to install lftools via a version passed in via lf-infra-parameters
+#
+# Required parameters:
+#
+#     LFTOOLS_VERSION: Passed in via lf-infra-parameters configuration. Can be
+#                      set to a strict version number like '1.2.3' or using
+#                      PEP-440 definitions.
+#
+#                      Examples:
+#                          &lt;1.0.0
+#                          &gt;=1.0.0,&lt;2.0.0
+#
 # By default a released version of lftools should always be used.
 # The purpose of the 2 variables below is so that lftools devs can test
 # unreleased versions of lftools. There are 2 methods to install a dev version
@@ -543,10 +582,16 @@ case $LFTOOLS_MODE in
         ;;
 
     release)
-        pip install --quiet --upgrade &quot;lftools&lt;1.0.0&quot;
+        if [[ $LFTOOLS_VERSION =~ ^[0-9] ]]; then
+            LFTOOLS_VERSION=&quot;==$LFTOOLS_VERSION&quot;
+        fi
+
+        pip install --quiet --upgrade &quot;lftools${LFTOOLS_VERSION}&quot;
         ;;
 esac
 
+lftools --version
+
 # pipdeptree prints out a lot of information because lftools pulls in many
 # dependencies. Let's only print it if we want to debug.
 # echo &quot;----&gt; Pip Dependency Tree&quot;
index cee75a7..2d499f8 100644 (file)
@@ -59,6 +59,15 @@ job is triggered by Gerrit.
 </description>
           <defaultValue/>
         </hudson.model.StringParameterDefinition>
+        <hudson.model.StringParameterDefinition>
+          <name>LFTOOLS_VERSION</name>
+          <description>Version of lftools to install. Can be a specific version like
+'0.6.0' or a PEP-440 definition.
+https://www.python.org/dev/peps/pep-0440/
+For example '&lt;1.0.0' or '&gt;=1.0.0,&lt;2.0.0'.
+</description>
+          <defaultValue>&lt;1.0.0</defaultValue>
+        </hudson.model.StringParameterDefinition>
         <hudson.model.StringParameterDefinition>
           <name>TOX_DIR</name>
           <description>Path to directory containing tox.ini file.
@@ -152,6 +161,18 @@ Example: docs,py2,py3
 ##############################################################################
 echo &quot;---&gt; lftools-install.sh&quot;
 
+# Script to install lftools via a version passed in via lf-infra-parameters
+#
+# Required parameters:
+#
+#     LFTOOLS_VERSION: Passed in via lf-infra-parameters configuration. Can be
+#                      set to a strict version number like '1.2.3' or using
+#                      PEP-440 definitions.
+#
+#                      Examples:
+#                          &lt;1.0.0
+#                          &gt;=1.0.0,&lt;2.0.0
+#
 # By default a released version of lftools should always be used.
 # The purpose of the 2 variables below is so that lftools devs can test
 # unreleased versions of lftools. There are 2 methods to install a dev version
@@ -198,10 +219,16 @@ case $LFTOOLS_MODE in
         ;;
 
     release)
-        pip install --quiet --upgrade &quot;lftools&lt;1.0.0&quot;
+        if [[ $LFTOOLS_VERSION =~ ^[0-9] ]]; then
+            LFTOOLS_VERSION=&quot;==$LFTOOLS_VERSION&quot;
+        fi
+
+        pip install --quiet --upgrade &quot;lftools${LFTOOLS_VERSION}&quot;
         ;;
 esac
 
+lftools --version
+
 # pipdeptree prints out a lot of information because lftools pulls in many
 # dependencies. Let's only print it if we want to debug.
 # echo &quot;----&gt; Pip Dependency Tree&quot;
@@ -368,6 +395,18 @@ echo &quot;machine $machine login $user password $pass&quot; &gt; ~/.netrc
 ##############################################################################
 echo &quot;---&gt; lftools-install.sh&quot;
 
+# Script to install lftools via a version passed in via lf-infra-parameters
+#
+# Required parameters:
+#
+#     LFTOOLS_VERSION: Passed in via lf-infra-parameters configuration. Can be
+#                      set to a strict version number like '1.2.3' or using
+#                      PEP-440 definitions.
+#
+#                      Examples:
+#                          &lt;1.0.0
+#                          &gt;=1.0.0,&lt;2.0.0
+#
 # By default a released version of lftools should always be used.
 # The purpose of the 2 variables below is so that lftools devs can test
 # unreleased versions of lftools. There are 2 methods to install a dev version
@@ -414,10 +453,16 @@ case $LFTOOLS_MODE in
         ;;
 
     release)
-        pip install --quiet --upgrade &quot;lftools&lt;1.0.0&quot;
+        if [[ $LFTOOLS_VERSION =~ ^[0-9] ]]; then
+            LFTOOLS_VERSION=&quot;==$LFTOOLS_VERSION&quot;
+        fi
+
+        pip install --quiet --upgrade &quot;lftools${LFTOOLS_VERSION}&quot;
         ;;
 esac
 
+lftools --version
+
 # pipdeptree prints out a lot of information because lftools pulls in many
 # dependencies. Let's only print it if we want to debug.
 # echo &quot;----&gt; Pip Dependency Tree&quot;
index add785f..d498aff 100644 (file)
           project: '{project}'
           stream: '{stream}'
           branch: '{branch}'
+          lftools-version: '{lftools-version}'
       - lf-infra-packer-parameters:
           packer-version: '{packer-version}'
 
           project: '{project}'
           stream: '{stream}'
           branch: '{branch}'
+          lftools-version: '{lftools-version}'
       - lf-infra-jjb-parameters:
           jjb-version: '{jjb-version}'
 
index 10a332a..0c085c1 100644 (file)
 
               Note that Gerrit will override this parameter automatically if a
               job is triggered by Gerrit.
-
+      - string:
+          name: LFTOOLS_VERSION
+          default: '{lftools-version}'
+          description: |
+              Version of lftools to install. Can be a specific version like
+              '0.6.0' or a PEP-440 definition.
+              https://www.python.org/dev/peps/pep-0440/
+              For example '<1.0.0' or '>=1.0.0,<2.0.0'.
 
 - parameter:
     name: lf-infra-tox-parameters
index 41c73e7..f1fc74a 100644 (file)
@@ -41,6 +41,7 @@
           project: '{project}'
           branch: '{branch}'
           stream: '{stream}'
+          lftools-version: '{lftools-version}'
       - lf-infra-maven-parameters:
           mvn-opts: '{mvn-opts}'
           mvn-params: '{mvn-params}'
index 42e0967..005f99f 100644 (file)
@@ -58,6 +58,7 @@
           project: '{project}'
           branch: '{branch}'
           stream: '{stream}'
+          lftools-version: '{lftools-version}'
       - lf-infra-tox-parameters:
           tox-dir: '{tox-dir}'
           tox-envs: '{tox-envs}'
index d7a7eb3..bdf380f 100644 (file)
 ##############################################################################
 echo "---> lftools-install.sh"
 
+# Script to install lftools via a version passed in via lf-infra-parameters
+#
+# Required parameters:
+#
+#     LFTOOLS_VERSION: Passed in via lf-infra-parameters configuration. Can be
+#                      set to a strict version number like '1.2.3' or using
+#                      PEP-440 definitions.
+#
+#                      Examples:
+#                          <1.0.0
+#                          >=1.0.0,<2.0.0
+#
 # By default a released version of lftools should always be used.
 # The purpose of the 2 variables below is so that lftools devs can test
 # unreleased versions of lftools. There are 2 methods to install a dev version
@@ -56,10 +68,16 @@ case $LFTOOLS_MODE in
         ;;
 
     release)
-        pip install --quiet --upgrade "lftools<1.0.0"
+        if [[ $LFTOOLS_VERSION =~ ^[0-9] ]]; then
+            LFTOOLS_VERSION="==$LFTOOLS_VERSION"
+        fi
+
+        pip install --quiet --upgrade "lftools${LFTOOLS_VERSION}"
         ;;
 esac
 
+lftools --version
+
 # pipdeptree prints out a lot of information because lftools pulls in many
 # dependencies. Let's only print it if we want to debug.
 # echo "----> Pip Dependency Tree"