Open decibelhertz opened 2 years ago
python::pyvenv
relies on $facts['python3_version']
if python_version
is set to system
. That's why it's failing here and I'd say, adding a version check seems to be a good fix:
if $facts['python_version'] or $facts['python2_version'] or $facts['python3_version'] {
create_resources('python::pip', $python_pips)
create_resources('python::pyvenv', $python_pyvenvs)
create_resources('python::requirements', $python_requirements)
create_resources('python::dotfile', $python_dotfiles)
}
Maybe we should drop the python_version
and python2_version
fact, as it's not used within the module (but might be used by others)
I think the proposed solution would only solve the problem for sub-resources that have been declared through parameters of ::python
, but the problem would still occur when ::python::pyvenv
is declared as its own ressource.
Affected Puppet, Ruby, OS and module versions/distributions
How to reproduce (e.g Puppet code you use)
Use this module to install a python role with a pyvenv declared and absolutely no python3 installed (minimal OEL 8 install)
What are you seeing
Failure to compile catalog
What behaviour did you expect instead
Compiled catalog
Output log
Any additional information you'd like to impart
A cheap workaround would be to wrap https://github.com/voxpupuli/puppet-python/blob/master/manifests/init.pp#L80-L84 in a conditional EG
...but that depends on if you're supporting python2 still. Perhaps better logic for converting 'system' into a real Python version is needed.