From e4e2f380eccabc68ef93fbaf144ee9862df2d498 Mon Sep 17 00:00:00 2001 From: Jesse Pretorius Date: Wed, 18 Apr 2018 11:02:08 +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: I05d9ee40e596afcc35559b53f6a773521b1d1534 Partial-Bug: #1764470 (cherry picked from commit 1a789263bd15a44a4e9774ee5dd57b634e4e3676) --- tasks/swift_install.yml | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/tasks/swift_install.yml b/tasks/swift_install.yml index 7d8583b7..dd0da084 100644 --- a/tasks/swift_install.yml +++ b/tasks/swift_install.yml @@ -111,11 +111,22 @@ - ansible_pkg_mgr in ['yum', 'dnf', 'zypper'] - swift_get_venv | changed +# 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: Update virtualenv path shell: | find {{ swift_bin }} -name \*.pyc -delete sed -si '1s/^.*python.*$/#!{{ swift_bin | replace ('/','\/') }}\/python/' {{ swift_bin }}/* - virtualenv {{ swift_bin | dirname }} + virtualenv {{ swift_bin | dirname }} \ + {{ (ansible_pkg_mgr == 'apt') | ternary('--always-copy', '') }} \ + --no-pip \ + --no-setuptools \ + --no-wheel when: swift_get_venv | changed tags: - skip_ansible_lint