From aabd3c07c29fd89a56cadc01ec3a2e3b682e5e14 Mon Sep 17 00:00:00 2001 From: Jonathan Rosser Date: Mon, 6 Jul 2020 13:36:54 +0100 Subject: [PATCH] Remove the virtualenv version check Simplify this code by making the assumption that we always have a new enough version of virtualenv present. Centos-7 ships 15.1.0 so it is now possible to remove some conditional logic as well. This patch removes the version check and replaces it with a check that the virtualenv command is present on the system patch and is usable. Change-Id: I1a8f4961358c9551c5493b332187b411177b2769 --- tasks/python_venv_install.yml | 2 +- tasks/python_venv_preflight.yml | 33 +++++++------------------------ tasks/python_venv_wheel_build.yml | 2 +- 3 files changed, 9 insertions(+), 28 deletions(-) diff --git a/tasks/python_venv_install.yml b/tasks/python_venv_install.yml index 041c38e..2aa44fc 100644 --- a/tasks/python_venv_install.yml +++ b/tasks/python_venv_install.yml @@ -50,7 +50,7 @@ - name: Create the virtualenv (if it does not exist) command: >- virtualenv - {{ _venv_create_extra_options }} + --no-download --python={{ venv_python_executable }} {{ (ansible_pkg_mgr == 'apt') | ternary('--always-copy', '') }} {{ venv_install_destination_path }} diff --git a/tasks/python_venv_preflight.yml b/tasks/python_venv_preflight.yml index 3c6a3d0..5f3bdfe 100644 --- a/tasks/python_venv_preflight.yml +++ b/tasks/python_venv_preflight.yml @@ -21,34 +21,15 @@ when: - venv_install_destination_path is not defined -- name: Collect the version of virtualenv from either stdout or stderr - shell: | - virtualenv --version 2>&1 || echo 'none' - args: - executable: /bin/bash +- name: Check for virtualenv command being available on system path + command: 'which virtualenv' + register: virtualenv_installed + ignore_errors: yes changed_when: false - failed_when: false - register: _virtualenv_version - # _virtualenv_version may take two forms: - # (stdout) '15.1.0' - # (stderr) 'virtualenv 20.0.1 from /usr/local/lib/python2.7/dist-packages/virtualenv/__init__.pyc' -- name: Extract just the virtualevn version number - set_fact: - _virtualenv_version_number: "{{ (_virtualenv_version.stdout.split(' ') | length == 1) | ternary(_virtualenv_version.stdout, _virtualenv_version.stdout.split(' ')[1]) }}" - -- name: Fail when required virtualenv version is not present +- name: Fail when required virtualenv is not present fail: msg: >- - The required virtualenv version is not present. - The minimum version of 1.10 is required, but - {{ _virtualenv_version_number }} is installed. + The command 'virtualenv' version is not present. when: - - ((_virtualenv_version_number | trim) == 'none') or - ((_virtualenv_version_number | trim) is version('1.10', '<')) - -- name: Set extra virtualenv parameters - set_fact: - _venv_create_extra_options: >- - {{ ((_virtualenv_version_number | trim) is version('14.0.0', '<')) | ternary('--never-download', '--no-download') }} - {{ ((_virtualenv_version_number | trim) is version('1.7.0', '<')) | ternary('--no-site-packages', '') }} + virtualenv_installed.rc != 0 diff --git a/tasks/python_venv_wheel_build.yml b/tasks/python_venv_wheel_build.yml index 760d384..7cfd416 100644 --- a/tasks/python_venv_wheel_build.yml +++ b/tasks/python_venv_wheel_build.yml @@ -69,7 +69,7 @@ - name: Create the wheel build virtualenv (if it does not exist) command: >- virtualenv - {{ _venv_create_extra_options }} + --no-download --python={{ venv_python_executable }} {{ (ansible_pkg_mgr == 'apt') | ternary('--always-copy', '') }} {{ venv_build_host_venv_path }}