Update pip and setuptools in virtual envs
This will protect us from bugs from old virtualenv package installed on
slave system, like in tcpcloud/jnlp-slave image.
Also stop running virtualenv if venv already exists. Otherwise it breaks
pip.
Change-Id: Ie2bef87b38f76268bb7329a291efee750d5cad8e
diff --git a/src/com/mirantis/mk/Python.groovy b/src/com/mirantis/mk/Python.groovy
index 6180daf..476562a 100644
--- a/src/com/mirantis/mk/Python.groovy
+++ b/src/com/mirantis/mk/Python.groovy
@@ -17,7 +17,7 @@
def setupVirtualenv(path, python = 'python2', reqs=[], reqs_path=null, clean=false) {
def common = new com.mirantis.mk.Common()
- def virtualenv_cmd = "virtualenv ${path} --python ${python}"
+ def virtualenv_cmd = "[ -d ${path} ] || virtualenv ${path} --python ${python}"
if (clean) {
common.infoMsg("Cleaning venv directory " + path)
@@ -26,6 +26,11 @@
common.infoMsg("[Python ${path}] Setup ${python} environment")
sh(returnStdout: true, script: virtualenv_cmd)
+ try {
+ runVirtualenvCommand(path, "pip install -U setuptools pip")
+ } catch(Exception e) {
+ common.warnMsg("Setuptools and pip cannot be updated, you might be offline")
+ }
if (reqs_path==null) {
def args = ""
for (req in reqs) {