Версия пакета: foreman-3.19.1-alt1.2 --- Описание: В /usr/lib/foreman/app/models/application_record.rb используется: alias_attribute :to_s, :to_label При этом to_label является методом, а не ActiveRecord-атрибутом. В Rails 7.1 такое использование alias_attribute deprecated. Rails предупреждает, что начиная с Rails 7.2 alias_attribute с non-attribute target будет ошибкой и рекомендует использовать alias_method либо обычный метод. https://guides.rubyonrails.org/7_1_release_notes.html#active-record-deprecations --- На текущем стеке это уже приводит к неправильной работе: ``` cd /var/lib/foreman RAILS_ENV=production bundle exec ruby -e ' require "./config/environment" Foreman.setup_console d = Domain.unscoped.first puts "name=#{d.name.inspect}" puts "to_label=#{d.to_label.inspect}" puts "to_s=#{d.to_s.inspect}" puts "owner=#{d.method(:to_s).owner}" ' ``` --- Результат: name="test.domain.ru" to_label="test.domain.ru" to_s=nil owner=ApplicationRecord::GeneratedAttributeMethods Из-за этого при построении FQDN получается: puppet-client.#<Domain:0x...> вместо: puppet-client.test.domain.ru и Host не проходит валидацию имени. Также эта проблема приводит к ошибкам отображения Host/API. --- Исправление: --- a/usr/lib/foreman/app/models/application_record.rb +++ b/usr/lib/foreman/app/models/application_record.rb @@ -48,7 +48,9 @@ class ApplicationRecord < ActiveRecord::Base "#{id}-#{self.class.table_name.humanize}" end alias_attribute :to_label, :name_method - alias_attribute :to_s, :to_label + def to_s + to_label + end def self.virtual_column_scope(name, proc) name = name.to_sym После исправления: Domain#to_s="test.domain.ru" fqdn="puppet-client.test.domain.ru" Host validation=успешно Host UI/API=работает