From 5f3076e3a8ef76e7d22c8d4fb61471ccd919179a Mon Sep 17 00:00:00 2001 From: Jesse Pretorius Date: Wed, 18 Apr 2018 10:56:38 +0100 Subject: [PATCH] Only replace python when re-initializing the venv We reinitialize the venv to ensure that the right version of python is in the venv, but we do not want virtualenv to also replace pip, setuptools and wheel so we tell it not to. If we don't do this then virtualenv will install the latest available version, which is not what we want. Change-Id: I6ee3814fdee1712fdbe82189495772f45ec9e684 Partial-Bug: #1764470 (cherry picked from commit 2e0afc3de1df59573e43232eb3e46aac25436a21) --- tasks/rally_install.yml | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/tasks/rally_install.yml b/tasks/rally_install.yml index 5896c3c..95fdc56 100644 --- a/tasks/rally_install.yml +++ b/tasks/rally_install.yml @@ -104,11 +104,22 @@ - ansible_pkg_mgr == 'yum' - rally_get_venv | changed -- name: Update virtualenv path +# NOTE(odyssey4me): +# We reinitialize the venv to ensure that the right +# version of python is in the venv, but we do not +# want virtualenv to also replace pip, setuptools +# and wheel so we tell it not to. +# We do not use --always-copy for CentOS/SuSE due +# to https://github.com/pypa/virtualenv/issues/565 +- name: Reset virtualenv and update its paths shell: | find {{ rally_bin }} -name \*.pyc -delete sed -si '1s/^.*python.*$/#!{{ rally_bin | replace ('/','\/') }}\/python/' {{ rally_bin }}/* - virtualenv {{ rally_bin | dirname }} + virtualenv {{ rally_bin | dirname }} \ + {{ (ansible_pkg_mgr == 'apt') | ternary('--always-copy', '') }} \ + --no-pip \ + --no-setuptools \ + --no-wheel when: rally_get_venv | changed tags: - skip_ansible_lint