Project

General

Profile

Download (4.36 KB) Statistics
| Branch: | Tag: | Revision:
require 'spec_helper'

describe 'puppet::agent' do
on_os_under_test.each do |os, facts|
context "on #{os}" do
if Puppet.version < '4.0'
client_package = 'puppet'
confdir = '/etc/puppet'
case facts[:osfamily]
when 'FreeBSD'
client_package = 'puppet38'
confdir = '/usr/local/etc/puppet'
when 'windows'
client_package = 'puppet'
confdir = 'C:/ProgramData/PuppetLabs/puppet/etc'
end
additional_facts = {}
else
client_package = 'puppet-agent'
confdir = '/etc/puppetlabs/puppet'
additional_facts = {:rubysitedir => '/opt/puppetlabs/puppet/lib/ruby/site_ruby/2.1.0'}
case facts[:osfamily]
when 'FreeBSD'
client_package = 'puppet4'
confdir = '/usr/local/etc/puppet'
additional_facts = {}
when 'windows'
client_package = 'puppet-agent'
confdir = 'C:/ProgramData/PuppetLabs/puppet/etc'
additional_facts = {}
end
end

let :facts do
facts.merge(additional_facts)
end

describe 'with no custom parameters' do
let :pre_condition do
"class {'puppet': agent => true}"
end
it { should contain_class('puppet::agent::install') }
it { should contain_class('puppet::agent::config') }
it { should contain_class('puppet::agent::service') }
it { should contain_file(confdir).with_ensure('directory') }
it { should contain_concat("#{confdir}/puppet.conf") }
it { should contain_package(client_package).with_ensure('present') }
it do
should contain_concat__fragment('puppet.conf_agent').
with_content(/^\[agent\]/).
with({})
end

it do
should contain_puppet__config__agent('server').with_value('foo.example.com')
end

it do
should_not contain_puppet__config__agent('prerun_command')
end

it do
should_not contain_puppet__config__agent('postrun_command')
end
end

describe 'puppetmaster parameter overrides server fqdn' do
let(:pre_condition) { "class {'puppet': agent => true, puppetmaster => 'mymaster.example.com'}" }
it do
should contain_puppet__config__agent('server').with({'value' => 'mymaster.example.com'})
end
end

describe 'global puppetmaster overrides fqdn' do
let(:pre_condition) { "class {'puppet': agent => true}" }
let :facts do
facts.merge({:puppetmaster => 'mymaster.example.com'})
end
it do
should contain_puppet__config__agent('server').with({'value' => 'mymaster.example.com'})
end
end

describe 'puppetmaster parameter overrides global puppetmaster' do
let(:pre_condition) { "class {'puppet': agent => true, puppetmaster => 'mymaster.example.com'}" }
let :facts do
facts.merge({:puppetmaster => 'global.example.com'})
end
it do
should contain_puppet__config__agent('server').with({'value' => 'mymaster.example.com'})
end
end

describe 'use_srv_records removes server setting' do
let(:pre_condition) { "class {'puppet': agent => true, use_srv_records => true}" }
it do
should_not contain_puppet__config__agent('server')
end
end

describe 'set prerun_command will be included in config' do
let(:pre_condition) { "class {'puppet': agent => true, prerun_command => '/my/prerun'}" }
it do
should contain_puppet__config__agent('prerun_command').with({'value' => '/my/prerun'})
end
end

describe 'set postrun_command will be included in config' do
let(:pre_condition) { "class {'puppet': agent => true, postrun_command => '/my/postrun'}" }
it do
should contain_puppet__config__agent('postrun_command').with({'value' => '/my/postrun'})
end
end

describe 'with additional settings' do
let :pre_condition do
"class {'puppet':
agent_additional_settings => {ignoreschedules => true},
}"
end

it 'should configure puppet.conf' do
should contain_puppet__config__agent('ignoreschedules').with({'value' => 'true'})
end
end

end
end
end
(7-7/15)