From b0dd63396c574e357ace120e8e02b5f2f865ba4d Mon Sep 17 00:00:00 2001 From: Garrett Honeycutt Date: Tue, 16 May 2017 16:06:46 -0400 Subject: [PATCH 1/2] Refactor RedHat params to be explicit on supported versions This makes reading the logic much easier to follow. There are no functional changes to the module. --- manifests/params.pp | 46 +++++++++++++++++++++++++-------------- spec/classes/init_spec.rb | 17 +++++++++++++++ 2 files changed, 47 insertions(+), 16 deletions(-) diff --git a/manifests/params.pp b/manifests/params.pp index a103cdd..d7d5d9d 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -38,23 +38,37 @@ $config_file = '/etc/sssd/sssd.conf' $mkhomedir = true - if versioncmp($::operatingsystemrelease, '6.0') < 0 { - $service_dependencies = ['messagebus'] - $extra_packages = [ - 'authconfig', - ] - $extra_packages_ensure = 'latest' - $manage_oddjobd = false - } else { - $service_dependencies = [] - $extra_packages = [ - 'authconfig', - 'oddjob-mkhomedir', - ] - $extra_packages_ensure = 'present' - $manage_oddjobd = true + case $::operatingsystemrelease { + default: { + fail("operatingsystemrelease is <${::operatingsystemrelease}> and must be in 5, 6 or 7.") + } + /^5/: { + $service_dependencies = ['messagebus'] + $extra_packages = [ + 'authconfig', + ] + $extra_packages_ensure = 'latest' + $manage_oddjobd = false + } + /^6/: { + $service_dependencies = [] + $extra_packages = [ + 'authconfig', + 'oddjob-mkhomedir', + ] + $extra_packages_ensure = 'present' + $manage_oddjobd = true + } + /^7/: { + $service_dependencies = [] + $extra_packages = [ + 'authconfig', + 'oddjob-mkhomedir', + ] + $extra_packages_ensure = 'present' + $manage_oddjobd = true + } } - } 'Debian': { diff --git a/spec/classes/init_spec.rb b/spec/classes/init_spec.rb index e2b8f0c..71cbb0b 100644 --- a/spec/classes/init_spec.rb +++ b/spec/classes/init_spec.rb @@ -56,6 +56,23 @@ it { is_expected.to contain_package('sssd').with_ensure('1.1.1') } end end + + describe 'on unsupported version of RedHat (not 5, 6 or 7)' do + let(:facts) do + { + :osfamily => 'RedHat', + :operatingsystemrelease => '4.0', + :rubyversion => '1.9.3' + } + end + + it 'should fail' do + expect do + should contain_class('sssd') + end.to raise_error(Puppet::Error, /operatingsystemrelease is <4\.0> and must be in 5, 6 or 7/) + end + end + describe 'on RedHat 6.6' do let(:facts) do { From 74f554d4bb0cd33c5c17a05eeb2dfbeac69be007 Mon Sep 17 00:00:00 2001 From: Garrett Honeycutt Date: Tue, 16 May 2017 16:12:41 -0400 Subject: [PATCH 2/2] (fix) Add messagebus as a service dependency for EL6 oddjobd requires messagebus. The module will install messagebus, though the service is not started. Without this patch, sssd will not work on EL6 when oddjobd is being managed, which is the default. --- manifests/dependencies.pp | 7 +++++++ manifests/params.pp | 2 +- spec/classes/init_spec.rb | 4 ++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/manifests/dependencies.pp b/manifests/dependencies.pp index 15f39c5..3314ee2 100644 --- a/manifests/dependencies.pp +++ b/manifests/dependencies.pp @@ -6,6 +6,12 @@ $service_ensure = $sssd::service_ensure, ) { + if $manage_oddjobd == true { + $before = 'Service[oddjobd]' + } else { + $before = undef + } + if ! empty($service_dependencies) { ensure_resource('service', $service_dependencies, { @@ -13,6 +19,7 @@ hasstatus => true, hasrestart => true, enable => true, + before => $before, } ) } diff --git a/manifests/params.pp b/manifests/params.pp index d7d5d9d..617408e 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -51,7 +51,7 @@ $manage_oddjobd = false } /^6/: { - $service_dependencies = [] + $service_dependencies = ['messagebus'] $extra_packages = [ 'authconfig', 'oddjob-mkhomedir', diff --git a/spec/classes/init_spec.rb b/spec/classes/init_spec.rb index 71cbb0b..1d095f6 100644 --- a/spec/classes/init_spec.rb +++ b/spec/classes/init_spec.rb @@ -28,6 +28,7 @@ it { is_expected.to contain_service('sssd').with_ensure('running') } it { is_expected.to contain_package('sssd').with_ensure('present') } + it { is_expected.to contain_service('messagebus').with_ensure('running') } end context 'with service ensure stopped' do @@ -102,6 +103,7 @@ it { is_expected.to contain_service('sssd').with_ensure('running') } it { is_expected.to contain_package('sssd').with_ensure('present') } it { is_expected.to contain_service('oddjobd').with_ensure('running') } + it { is_expected.to contain_service('messagebus').with_ensure('running') } end context 'with service ensure stopped' do @@ -160,6 +162,7 @@ it { is_expected.to contain_service('sssd').with_ensure('running') } it { is_expected.to contain_package('sssd').with_ensure('present') } it { is_expected.to contain_service('oddjobd').with_ensure('running') } + it { is_expected.not_to contain_service('messagebus') } end context 'with service ensure stopped' do @@ -217,6 +220,7 @@ it { is_expected.to contain_service('sssd').with_ensure('running') } it { is_expected.to contain_package('sssd').with_ensure('present') } + it { is_expected.not_to contain_service('messagebus') } end context 'with service ensure stopped' do