From 5bb75be63d6d3d2994a776d689eaa1e2878943bd Mon Sep 17 00:00:00 2001 From: Vadym Chepkov Date: Sat, 4 Feb 2017 00:51:14 -0500 Subject: [PATCH] fix for latest versions of setuptools and pip to properly initialize virtual environment pip needs to be upgraded before setuptools pip version 10 obsoleted --no-use-wheel flag and replaced it with --no-binary :all: add pip_args attribute to allow user pass additional flags during environment initialization --- manifests/virtualenv.pp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/manifests/virtualenv.pp b/manifests/virtualenv.pp index 459b3399..a5d9ae4b 100644 --- a/manifests/virtualenv.pp +++ b/manifests/virtualenv.pp @@ -49,6 +49,9 @@ # [*timeout*] # The maximum time in seconds the "pip install" command should take. Default: 1800 # +# [*pip_args*] +# Arguments to pass to pip during initialization. Default: blank +# # [*extra_pip_args*] # Extra arguments to pass to pip after requirements file. Default: blank # @@ -84,6 +87,7 @@ $path = [ '/bin', '/usr/bin', '/usr/sbin', '/usr/local/bin' ], $cwd = undef, $timeout = 1800, + $pip_args = '', $extra_pip_args = '', $virtualenv = undef ) { @@ -156,10 +160,12 @@ } $virtualenv_cmd = "${python::exec_prefix}${used_virtualenv}" - $pip_cmd = "${python::exec_prefix}${venv_dir}/bin/pip" + + $pip_cmd = "${python::exec_prefix}${venv_dir}/bin/pip" + $pip_flags = "${pypi_index} ${proxy_flag} ${pip_args}" exec { "python_virtualenv_${venv_dir}": - command => "true ${proxy_command} && ${virtualenv_cmd} ${system_pkgs_flag} -p ${python} ${venv_dir} && ${pip_cmd} wheel --help > /dev/null 2>&1 && { ${pip_cmd} wheel --version > /dev/null 2>&1 || wheel_support_flag='--no-use-wheel'; } ; { ${pip_cmd} --log ${venv_dir}/pip.log install ${pypi_index} ${proxy_flag} \$wheel_support_flag --upgrade pip ${distribute_pkg} || ${pip_cmd} --log ${venv_dir}/pip.log install ${pypi_index} ${proxy_flag} --upgrade pip ${distribute_pkg} ;}", + command => "true ${proxy_command} && ${virtualenv_cmd} ${system_pkgs_flag} -p ${python} ${venv_dir} && ${pip_cmd} --log ${venv_dir}/pip.log install ${pip_flags} --upgrade pip && ${pip_cmd} install ${pip_flags} --upgrade ${distribute_pkg}", user => $owner, creates => "${venv_dir}/bin/activate", path => $path, @@ -171,7 +177,7 @@ if $requirements { exec { "python_requirements_initial_install_${requirements}_${venv_dir}": - command => "${pip_cmd} wheel --help > /dev/null 2>&1 && { ${pip_cmd} wheel --version > /dev/null 2>&1 || wheel_support_flag='--no-use-wheel'; } ; ${pip_cmd} --log ${venv_dir}/pip.log install ${pypi_index} ${proxy_flag} \$wheel_support_flag -r ${requirements} ${extra_pip_args}", + command => "${pip_cmd} --log ${venv_dir}/pip.log install ${pypi_index} ${proxy_flag} --no-binary :all: -r ${requirements} ${extra_pip_args}", refreshonly => true, timeout => $timeout, user => $owner,