Foreman 3.13 broken plugin foreman_plugin_dhcp_browser

Problem:
Since foreman 3.13 the foreman_plugin_dhcp_browser is broken. After disabling and remove packages of ruby-foreman-dhcp-browser, foreman-installer works fine.

Expected outcome:

Error 1: Puppet Exec resource 'foreman-rake-db:migrate' failed. Logs:
  /Stage[main]/Foreman::Database/Foreman::Rake[db:migrate]/Exec[foreman-rake-db:migrate]
    Adding autorequire relationship with User[foreman]
    Starting to evaluate the resource (980 of 1462)
    Evaluated in 9.81 seconds
  Exec[foreman-rake-db:migrate](provider=posix)
    Executing check '/usr/sbin/foreman-rake db:abort_if_pending_migrations'
    Executing '/usr/sbin/foreman-rake db:migrate'
  /Stage[main]/Foreman::Database/Foreman::Rake[db:migrate]/Exec[foreman-rake-db:migrate]/unless
    rake aborted!
    NameError: uninitialized constant ForemanDhcpBrowser::Concerns
    Did you mean?  Connections
    /usr/share/foreman/vendor/ruby/3.0.0/gems/foreman_dhcp_browser-0.0.8/lib/foreman_dhcp_browser/engine.rb:13:in `block in <class:Engine>'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/activesupport-6.1.7.10/lib/active_support/callbacks.rb:427:in `instance_exec'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/activesupport-6.1.7.10/lib/active_support/callbacks.rb:427:in `block in make_lambda'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/activesupport-6.1.7.10/lib/active_support/callbacks.rb:198:in `block (2 levels) in halting'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/activesupport-6.1.7.10/lib/active_support/callbacks.rb:604:in `block (2 levels) in default_terminator'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/activesupport-6.1.7.10/lib/active_support/callbacks.rb:603:in `catch'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/activesupport-6.1.7.10/lib/active_support/callbacks.rb:603:in `block in default_terminator'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/activesupport-6.1.7.10/lib/active_support/callbacks.rb:199:in `block in halting'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/activesupport-6.1.7.10/lib/active_support/callbacks.rb:512:in `block in invoke_before'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/activesupport-6.1.7.10/lib/active_support/callbacks.rb:512:in `each'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/activesupport-6.1.7.10/lib/active_support/callbacks.rb:512:in `invoke_before'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/activesupport-6.1.7.10/lib/active_support/callbacks.rb:105:in `run_callbacks'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/activesupport-6.1.7.10/lib/active_support/reloader.rb:88:in `prepare!'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/railties-6.1.7.10/lib/rails/application/finisher.rb:124:in `block in <module:Finisher>'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/railties-6.1.7.10/lib/rails/initializable.rb:32:in `instance_exec'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/railties-6.1.7.10/lib/rails/initializable.rb:32:in `run'
    /usr/share/foreman/config/initializers/0_print_time_spent.rb:45:in `block in run'
    /usr/share/foreman/config/initializers/0_print_time_spent.rb:17:in `benchmark'
    /usr/share/foreman/config/initializers/0_print_time_spent.rb:45:in `run'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/railties-6.1.7.10/lib/rails/initializable.rb:61:in `block in run_initializers'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/railties-6.1.7.10/lib/rails/initializable.rb:60:in `run_initializers'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/railties-6.1.7.10/lib/rails/application.rb:391:in `initialize!'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/railties-6.1.7.10/lib/rails/railtie.rb:207:in `public_send'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/railties-6.1.7.10/lib/rails/railtie.rb:207:in `method_missing'
    /usr/share/foreman/config/environment.rb:5:in `<top (required)>'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/polyglot-0.3.5/lib/polyglot.rb:65:in `require'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/polyglot-0.3.5/lib/polyglot.rb:65:in `require'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/zeitwerk-2.6.18/lib/zeitwerk/kernel.rb:34:in `require'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/activesupport-6.1.7.10/lib/active_support/dependencies.rb:332:in `block in require'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/activesupport-6.1.7.10/lib/active_support/dependencies.rb:299:in `load_dependency'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/activesupport-6.1.7.10/lib/active_support/dependencies.rb:332:in `require'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/railties-6.1.7.10/lib/rails/application.rb:367:in `require_environment!'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/railties-6.1.7.10/lib/rails/application.rb:533:in `block in run_tasks_blocks'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/rake-13.2.1/exe/rake:27:in `<top (required)>'
    Tasks: TOP => db:abort_if_pending_migrations => db:load_config => environment
    (See full trace by running task with --trace)
  /Stage[main]/Foreman::Database/Foreman::Rake[db:migrate]/Exec[foreman-rake-db:migrate]/returns
    rake aborted!
    NameError: uninitialized constant ForemanDhcpBrowser::Concerns
    Did you mean?  Connections
    /usr/share/foreman/vendor/ruby/3.0.0/gems/foreman_dhcp_browser-0.0.8/lib/foreman_dhcp_browser/engine.rb:13:in `block in <class:Engine>'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/activesupport-6.1.7.10/lib/active_support/callbacks.rb:427:in `instance_exec'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/activesupport-6.1.7.10/lib/active_support/callbacks.rb:427:in `block in make_lambda'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/activesupport-6.1.7.10/lib/active_support/callbacks.rb:198:in `block (2 levels) in halting'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/activesupport-6.1.7.10/lib/active_support/callbacks.rb:604:in `block (2 levels) in default_terminator'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/activesupport-6.1.7.10/lib/active_support/callbacks.rb:603:in `catch'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/activesupport-6.1.7.10/lib/active_support/callbacks.rb:603:in `block in default_terminator'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/activesupport-6.1.7.10/lib/active_support/callbacks.rb:199:in `block in halting'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/activesupport-6.1.7.10/lib/active_support/callbacks.rb:512:in `block in invoke_before'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/activesupport-6.1.7.10/lib/active_support/callbacks.rb:512:in `each'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/activesupport-6.1.7.10/lib/active_support/callbacks.rb:512:in `invoke_before'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/activesupport-6.1.7.10/lib/active_support/callbacks.rb:105:in `run_callbacks'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/activesupport-6.1.7.10/lib/active_support/reloader.rb:88:in `prepare!'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/railties-6.1.7.10/lib/rails/application/finisher.rb:124:in `block in <module:Finisher>'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/railties-6.1.7.10/lib/rails/initializable.rb:32:in `instance_exec'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/railties-6.1.7.10/lib/rails/initializable.rb:32:in `run'
    /usr/share/foreman/config/initializers/0_print_time_spent.rb:45:in `block in run'
    /usr/share/foreman/config/initializers/0_print_time_spent.rb:17:in `benchmark'
    /usr/share/foreman/config/initializers/0_print_time_spent.rb:45:in `run'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/railties-6.1.7.10/lib/rails/initializable.rb:61:in `block in run_initializers'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/railties-6.1.7.10/lib/rails/initializable.rb:60:in `run_initializers'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/railties-6.1.7.10/lib/rails/application.rb:391:in `initialize!'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/railties-6.1.7.10/lib/rails/railtie.rb:207:in `public_send'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/railties-6.1.7.10/lib/rails/railtie.rb:207:in `method_missing'
    /usr/share/foreman/config/environment.rb:5:in `<top (required)>'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/polyglot-0.3.5/lib/polyglot.rb:65:in `require'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/polyglot-0.3.5/lib/polyglot.rb:65:in `require'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/zeitwerk-2.6.18/lib/zeitwerk/kernel.rb:34:in `require'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/activesupport-6.1.7.10/lib/active_support/dependencies.rb:332:in `block in require'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/activesupport-6.1.7.10/lib/active_support/dependencies.rb:299:in `load_dependency'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/activesupport-6.1.7.10/lib/active_support/dependencies.rb:332:in `require'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/railties-6.1.7.10/lib/rails/application.rb:367:in `require_environment!'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/railties-6.1.7.10/lib/rails/application.rb:533:in `block in run_tasks_blocks'
    /usr/share/foreman/vendor/ruby/3.0.0/gems/rake-13.2.1/exe/rake:27:in `<top (required)>'
    Tasks: TOP => db:migrate => db:load_config => environment
    (See full trace by running task with --trace)
    change from 'notrun' to ['0'] failed: '/usr/sbin/foreman-rake db:migrate' returned 1 instead of one of [0]

1 error was detected during installation.

Foreman and Proxy versions:
3.13

Foreman and Proxy plugin versions:
3.13
foreman_dhcp_browser: 0.0.8

Distribution and version:
Ubuntu 22.04 LTS

Other relevant data:

1 Like

I am not sure about this plugin having an active developer, @Marek_Hulan can you have a look or find some one to do so?

The last updates in git are 6 years ago. The plugin is available to install via foreman-installer. And the installer install the package ruby-foreman-dhcp-browser. The project is inside the GitHub foreman group:

Hope, you can fix it :smiley: