Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

pyvenv cannot install until $facts['python3_version'] exists (or is overidden) on RedHat style OSes

Offen
#635 2 Kommentare 2 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
35/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
python

Rechercherichtung

Start with manifests/pyvenv.pp at line 44 and manifests/init.pp around lines 76 and 80-84, then reproduce the failure on a minimal Oracle Linux 8 installation without Python 3. The work is done when the catalog compiles without the split-on-Undef error while handling the reported Python version and pyvenv resources.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

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.

Vorherrschende Sprache
Ruby
Sterne
196
Forks
371
Ø Merge
5 Std. 54 Min.
Gemergte PRs (30 T.)
5

Entwicklungsumgebung

In Codespaces öffnen

Startet den Dev-Container des Projekts im Browser, mit Ihrem eigenen GitHub-Konto.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus voxpupuli/puppet-python

Alle Issues in voxpupuli/puppet-python

Ähnliche Issues

Weitere Issues zu Ruby

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.