-
-
Notifications
You must be signed in to change notification settings - Fork 377
Open
Description
Affected Puppet, Ruby, OS and module versions/distributions
- Puppet: 6.26.0
- Ruby: 2.5.9p229
- Distribution: Oracle Linux 8
- Module version: 6.2.1
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
puppet agent -t --verbose
Info: Using environment 'pe2019'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Retrieving locales
Info: Loading facts
Error: Could not retrieve catalog from remote server: Error 500 on SERVER: Server Error: Evaluation Error: Error while evaluating a Resource Statement, Evaluation Error: Error while evaluating a Function Call, 'split' parameter 'str' expects a String value, got Undef (file: /etc/puppetlabs/code/environments/pe2019/modules/python/manifests/pyvenv.pp, line: 44, column: 34) (file: /etc/puppetlabs/code/environments/pe2019/modules/python/manifests/init.pp, line: 76) on node example.com
Warning: Not using cache on failed catalog
Error: Could not retrieve catalog; skipping run
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
# Conditionally allow hiera configuration of python resources once Puppet facts exist
# Will take multiple runs to converge
if $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)
}
...but that depends on if you're supporting python2 still. Perhaps better logic for converting 'system' into a real Python version is needed.
cspeterson and maxfischer2781
Metadata
Metadata
Assignees
Labels
No labels