Replace virtualenv-tools with a script
virtualenv-tools has a bug which gets triggered in gates: it can't
change the shebang of a virtualenv python bin/ files if they
were generated with a virtualenv script whose shebang ends with
python2 instead of python.
Because we can't modify virtualenv-tools, we use shell scripts
instead.
Change-Id: I8b40b4bceaf90fadecb4512c0cb9dbee143fe987
Partial-Bug: #1741634
Partial-Bug: #1764470
(cherry picked from commit 3a254e3582
)
This commit is contained in:
parent
3ae26e4ca5
commit
6c3790d9d5
|
@ -93,7 +93,6 @@ panko_service_in_ldap: false
|
|||
# panko packages that must be installed before anything else
|
||||
panko_requires_pip_packages:
|
||||
- virtualenv
|
||||
- virtualenv-tools
|
||||
- python-keystoneclient # Keystoneclient needed to OSA keystone lib
|
||||
- httplib2
|
||||
|
||||
|
|
|
@ -120,10 +120,25 @@
|
|||
- ansible_pkg_mgr in ['yum', 'dnf']
|
||||
- panko_get_venv | changed
|
||||
|
||||
- name: Update virtualenv path
|
||||
command: >
|
||||
virtualenv-tools --update-path=auto --reinitialize {{ panko_bin | dirname }}
|
||||
# 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 {{ panko_bin }} -name \*.pyc -delete
|
||||
sed -si '1s/^.*python.*$/#!{{ panko_bin | replace ('/','\/') }}\/python/' {{ panko_bin }}/*
|
||||
virtualenv {{ panko_bin | dirname }} \
|
||||
{{ (ansible_pkg_mgr == 'apt') | ternary('--always-copy', '') }} \
|
||||
--no-pip \
|
||||
--no-setuptools \
|
||||
--no-wheel
|
||||
when: panko_get_venv | changed
|
||||
tags:
|
||||
- skip_ansible_lint
|
||||
|
||||
- name: Record the venv tag deployed
|
||||
ini_file:
|
||||
|
|
Loading…
Reference in New Issue