Bug 60384
| Summary: | enc.rb использует удалённый метод File.exists? | ||
|---|---|---|---|
| Product: | Sisyphus | Reporter: | Vladislav Glinkin <glinkinvd> |
| Component: | puppet-theforeman-puppetserver-foreman | Assignee: | majioa <majioa> |
| Status: | NEW --- | QA Contact: | qa-sisyphus |
| Severity: | normal | ||
| Priority: | P5 | CC: | admsasha, cas, majioa, mike, nbr, pav, placeholder, rider, thatman |
| Version: | unstable | ||
| Hardware: | x86_64 | ||
| OS: | Linux | ||

Description
Vladislav Glinkin 2026-09-03 13:53:32 MSKПакет: puppet-theforeman-puppetserver-foreman-2.2.0-alt2 --- Описание: Поставляемый ENC-скрипт использует: `File.exists?(...)` В используемой версии Ruby этот alias уже отсутствует, поэтому ENC сразу завершается: `undefined method `exists?' for class File` После этой ошибки Puppet Server не может использовать Foreman как ENC. --- Предусловия: Настроенный Puppet + PuppetServer + Foreman В /etc/puppet/puppet.conf используется настройки: ``` external_nodes = /usr/lib/puppet-modules/theforeman-puppetserver-foreman/files/enc.rb node_terminus = exec ``` Шаги воспроизведения: # /usr/lib/puppet-modules/theforeman-puppetserver-foreman/files/enc.rb $(hostname -f) --- Фактический результат: Ошибка `undefined method 'exists?' for class File` и ненулевой exit code. --- Предлагаемое исправление: Заменить во всём enc.rb: `File.exists?` на: `File.exist?` Минимальная исправляющая команда: # sed -i 's/File\.exists?/File.exist?/g' \ /usr/lib/puppet-modules/theforeman-puppetserver-foreman/files/enc.rb После этой замены ENC начинает выполняться дальше, то есть дефект воспроизводимо устранён. --- Дополнительная информация: Сам по себе пакета в нашем репозитории устарел. Upstream предлагает версию 4.3.0 https://github.com/theforeman/puppet-puppetserver_foreman/tags Быть может, проблема решится простым обновлением пакета.