voxpupuli / puppet-python

Puppet module for installing and managing Python, pip, virtualenvs and Gunicorn virtual hosts.
https://forge.puppetlabs.com/puppet/python
Apache License 2.0
199 stars 370 forks source link

Could not evaluate: Working directory <virualenv> does not exist! #615

Open dpajanssen opened 3 years ago

dpajanssen commented 3 years ago

Affected Puppet, Ruby, OS and module versions/distributions

How to reproduce (e.g Puppet code you use)

python::pyvenv { $_virtualenv:
  ensure   => 'present',
  version  => $pythonconfig::package_ensure,
  venv_dir => $_virtualenv,
}

python::pip { $pkgname:
  ensure       => $ensure,
  pkgname      => $pkgname,
  virtualenv   => $_virtualenv,
  pip_provider => 'pip3',
  require      => Python::Pyvenv[$_virtualenv]
}

python::pip { "certifi for venv ${_virtualenv}":
  ensure       => 'present',
  pkgname      => 'certifi',
  virtualenv   => $_virtualenv,
  pip_provider => 'pip3',
  require      => Python::Pip[$pkgname]
}

What are you seeing

Issue only occurs when running Puppet in noop mode. The following error occurs:

Could not evaluate: Working directory <virtualenv> does not exist!

When running Puppet in normal mode the virtual environment is created and all dependencies are installed.

Looks like the evaluation on the $cwd parameter in the exec in https://github.com/voxpupuli/puppet-python/blob/master/manifests/pip.pp is not working as expected.

What behaviour did you expect instead

No error message and a successful noop run when deploying a new virtual environment.

Output log

Any additional information you'd like to impart