From 8560cd451a698f18a56475afe49badd05ff81270 Mon Sep 17 00:00:00 2001 From: Daniel James Goulder Date: Tue, 1 Nov 2016 21:43:51 +0400 Subject: [PATCH] use ensure_resource for ancillary pkgs/services --- .fixtures.yml | 2 +- Gemfile | 9 ++++++- manifests/init.pp | 46 ++++++++++++++++++--------------- spec/classes/authconfig_spec.rb | 23 +++++++++++++++++ 4 files changed, 57 insertions(+), 23 deletions(-) diff --git a/.fixtures.yml b/.fixtures.yml index b399a89..37723b8 100644 --- a/.fixtures.yml +++ b/.fixtures.yml @@ -1,6 +1,6 @@ fixtures: repositories: 'stdlib': - repo: "git://github.com/puppetlabs/puppetlabs-stdlib" + repo: "https://github.com/puppetlabs/puppetlabs-stdlib" symlinks: authconfig: "#{source_dir}" diff --git a/Gemfile b/Gemfile index 138b041..986f222 100644 --- a/Gemfile +++ b/Gemfile @@ -23,7 +23,6 @@ group :development, :unit_tests do end group :system_tests do - gem 'beaker-rspec', :require => false gem 'serverspec', :require => false end @@ -39,4 +38,12 @@ else gem 'puppet', :require => false end +if RUBY_VERSION < '2.2.5' + # beaker 3.1+ requires ruby 2.2.5. Lock to 2.0 + gem 'beaker', '~> 2.0', :require => false + # beaker-rspec 6.0.0 requires beaker 3.0. Lock to 5.6.0 + gem 'beaker-rspec', '= 5.6.0', :require => false +end + + # vim:ft=ruby diff --git a/manifests/init.pp b/manifests/init.pp index c9a1fea..bface93 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -106,11 +106,11 @@ # [*mkhomedir*] # # [*smartc*] -# Boolean to enable or disable SmartCard Authentication. +# Boolean to enable or disable SmartCard Authentication. # (Default: false) # # [*smartcaction*] -# Boolean to determine SmartCard Removal Action. Values: True = Lock, False = Ignore +# Boolean to determine SmartCard Removal Action. Values: True = Lock, False = Ignore # (Default: false) # # [*smartcrequire*] @@ -489,63 +489,67 @@ $exec_check_cmd = "/usr/bin/test \"`${authconfig_test_cmd}`\" = \"`authconfig --test`\"" if $cache { - package { $authconfig::params::cache_packages: + ensure_resource('package', $authconfig::params::cache_packages, { ensure => installed, - } -> - service { $authconfig::params::cache_services: - ensure => running, + }) + ensure_resource('service', $authconfig::params::cache_services, { + ensure => running, enable => true, hasstatus => true, hasrestart => true, - } + }) + Package[$authconfig::params::cache_packages] -> + Service[$authconfig::params::cache_services] } if $krb5 { - package { $authconfig::params::krb5_packages: + ensure_resource('package', $authconfig::params::krb5_packages, { ensure => installed, - } + }) } if $sssd { # if we're using sssd, then sssd takes care of ldap connectivity. # therefore, we only need the sssd packages and services, not the # ldap packages and services - package { $authconfig::params::sssd_packages: + ensure_resource('package', $authconfig::params::sssd_packages, { ensure => installed, - } + }) # sssd services must only run after the authconfig command has set # up the config. - service { $authconfig::params::sssd_services: + ensure_resource('service', $authconfig::params::sssd_services, { ensure => running, enable => true, hasstatus => true, hasrestart => true, require => Exec['authconfig command'], - } + }) } elsif $ldap { - package { $authconfig::params::ldap_packages: + ensure_resource('package', $authconfig::params::ldap_packages, { ensure => installed, - } -> - service { $authconfig::params::ldap_services: + }) + ensure_resource('service', $authconfig::params::ldap_services, { ensure => running, enable => true, hasstatus => true, hasrestart => true, before => Exec['authconfig command'], - } + }) + Package[$authconfig::params::ldap_packages] -> + Service[$authconfig::params::ldap_services] } if $mkhomedir { - package { $authconfig::params::mkhomedir_packages: + ensure_resource('package', $authconfig::params::mkhomedir_packages, { ensure => installed, - } + }) # service oddjobd is started automatically by authconfig } if $smartc { - package { $authconfig::params::smartcard_packages: + ensure_resource('package', $authconfig::params::smartcard_packages, { ensure => installed, - } + }) } package { $authconfig::params::packages: diff --git a/spec/classes/authconfig_spec.rb b/spec/classes/authconfig_spec.rb index d5f723a..a5ddadd 100644 --- a/spec/classes/authconfig_spec.rb +++ b/spec/classes/authconfig_spec.rb @@ -105,6 +105,29 @@ end + context 'SSSD enabled' do + before :each do + params.merge!( + :sssd => true, + ) + end + + ['sssd','sssd-client'].each do |package| + it "installs package: #{package}" do + should contain_package(package) + end + end + + it 'configures service: sssd' do + should contain_service('sssd').with({ + 'ensure' => 'running', + 'enable' => 'true', + 'hasstatus' => 'true', + 'hasrestart' => 'true', + }) + end + + end end