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) {