diff --git a/acceptance/tests/databinding/hiera/auto_lookup_for_class_parameters.rb b/acceptance/tests/databinding/hiera/auto_lookup_for_class_parameters.rb new file mode 100644 index 000000000..41658808c --- /dev/null +++ b/acceptance/tests/databinding/hiera/auto_lookup_for_class_parameters.rb @@ -0,0 +1,84 @@ +begin test_name "Auto lookup for class parameters" + +step "Setup" + +apply_manifest_on master, <<-PP +file { '/etc/puppet/hieradata': + ensure => directory, + recurse => true, + purge => true, + force => true, +} +PP + +testdir = master.tmpdir('databinding') + +create_remote_file(master, "#{testdir}/puppet.conf", < "SSH server port: ${port}" + } + notify { "usepam from hiera": + message => "SSH server UsePam: ${usepam}" + } + notify { "listenaddress from hiera": + message => "SSH server ListenAddress: ${listenaddress}" + } +} +PP + +on master, "chown -R root:puppet #{testdir}" +on master, "chmod -R g+rwX #{testdir}" + +step "Setup Hiera data" + +apply_manifest_on master, <<-PP +file { '/etc/puppet/hieradata/global.yaml': + ensure => present, + content => "--- + 'ssh::server::port': 22 + 'ssh::server::usepam': 'yes' + 'ssh::server::listenaddress': '0.0.0.0' + " +} +PP + +step "Should lookup class paramters from Hiera" + +with_master_running_on(master, "--config #{testdir}/puppet.conf --debug --verbose --daemonize --dns_alt_names=\"puppet,$(hostname -s),$(hostname -f)\" --autosign true") do + agents.each do |agent| + run_agent_on(agent, "--no-daemonize --onetime --verbose --server #{master}") + + assert_match("SSH server port: 22", stdout) + assert_match("SSH server UsePam: yes", stdout) + assert_match("SSH server ListenAddress: 0.0.0.0", stdout) + end +end + +ensure step "Teardown" +on master, "rm -rf #{testdir}" +apply_manifest_on master, <<-PP +file { '/etc/puppet/hieradata': + ensure => directory, + recurse => true, + purge => true, + force => true, +} +PP +end