]> gitweb.fluxo.info Git - puppet-mailalias_core.git/commitdiff
(PA-6178) Configure host type as AIO
authorAria Li <aria.li@puppet.com>
Wed, 20 Mar 2024 18:45:29 +0000 (11:45 -0700)
committerAria Li <aria.li@puppet.com>
Wed, 20 Mar 2024 21:34:38 +0000 (14:34 -0700)
Previously, when running with beaker 5 and latest beaker-puppet, tests failed
with:

    cannot add defaults of type pe for host redhat7-64-1 (add_pe_defaults_on not present)

The error came from beaker-puppet when it tried to configure the host as a PE
agent[1].

The root cause is beaker defaults its options to `pe`[2]. When `beaker-puppet`
calls the `configure_type_defaults_on` method, it calls the appropriate
`add_<type>_defaults_on` method. This works when using beaker 4 as `beaker-pe`
is pulled in as a dependency and its `add_pe_defaults_on` method[3] is included
into the tests.

However, when running with beaker5, beaker-pe is not loaded, so the method is
undefined. It appears beaker-puppet_install_helper is responsible for the
whether beaker-pe is loaded or not, but only when using
beaker-puppet_install_helper 0.9.4.

Since these tests don't actually depend on PE, drop beaker-pe, require
'beaker-puppet' directly (so the install_from_build_data_url method exists) and
configure the host type directly.

[1] https://github.com/puppetlabs/beaker-puppet/blob/7175b5c1acb5cddb3a31ddcc114f09cddd3b83d0/lib/beaker-puppet/install_utils/puppet_utils.rb#L167
[2] https://github.com/voxpupuli/beaker/blob/c61ee381d3801bad70989d9b3cbf970771e6f330/lib/beaker/options/presets.rb#L139
[3] https://github.com/puppetlabs/beaker-pe/blob/3bfe913b8d57c805cc0c51ae899fff174224d5f5/lib/beaker-pe/install/pe_defaults.rb#L93

spec/spec_helper_acceptance.rb

index e22dc8763b17a5f6e2d45b4c46f8bdd201c1c0dd..633ed4b9c85407aebac42bf6ad166a90206cbe3a 100644 (file)
@@ -1,5 +1,6 @@
 require 'puppet'
 require 'beaker-rspec'
+require 'beaker-puppet'
 require 'beaker/module_install_helper'
 require 'beaker/puppet_install_helper'
 require 'voxpupuli/acceptance/spec_helper_acceptance'
@@ -17,6 +18,7 @@ end
 RSpec.configure do |c|
   c.before :suite do
     unless ENV['BEAKER_provision'] == 'no'
+      hosts.each { |host| host[:type] = 'aio' }
       run_puppet_install_helper
       install_module_on(hosts)
       install_module_dependencies_on(hosts)