From f941413494973eb1a2c5cf56e240aa3fb7da6366 Mon Sep 17 00:00:00 2001 From: Toni Schmidbauer Date: Mon, 17 Feb 2014 15:55:24 +0100 Subject: [PATCH 1/9] added AIX support --- manifests/init.pp | 23 ++++++++--- manifests/params.pp | 80 +++++++++++++++++++++++++++++++++++++- manifests/server/master.pp | 49 ++++++++++++++++------- manifests/server/slave.pp | 34 +++++++++++----- 4 files changed, 158 insertions(+), 28 deletions(-) diff --git a/manifests/init.pp b/manifests/init.pp index 8793ea8..42f6fa7 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -16,6 +16,7 @@ # - CentOS 5.x / 6.x # - OpenSuse: 11.x / 12.x # - OVS: 2.1.1 / 2.1.5 / 2.2.0 / 3.0.2 +# - AIX: 5.3 / 6.1 / 7.1 # # # === Examples @@ -38,13 +39,25 @@ # # class ldap($ensure = present) { - include stdlib include ldap::params - package { $ldap::params::package : - ensure => $ensure, - } + case $::osfamily { + 'AIX': { -} + require openssl + package { $ldap::params::package : + ensure => $ensure, + provider => 'rpm', + source => $ldap::params::package_source, + require => Package['openssl'] + } + } + default: { + package { $ldap::params::package : + ensure => $ensure, + } + } + } +} diff --git a/manifests/params.pp b/manifests/params.pp index eb0c266..f9f62ed 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -308,6 +308,85 @@ } + 'AIX' : { + $package = [ 'openldap' ] + $package_source = 'http://sunkist6.eb.lan.at/pkgs/aix/openldap-2.4.23-0.3.aix5.1.ppc.rpm' + + $prefix = '/etc/openldap' + $owner = 'root' + $group = 'system' + $config = 'ldap.conf' + $cacertdir = '/etc/openldap/cacerts' + + $server_package = [ 'openldap-servers' ] + $server_package_source = 'http://sunkist6.eb.lan.at/pkgs/aix/openldap-servers-2.4.23-0.3.aix5.1.ppc.rpm' + $server_config = 'slapd.conf' + $service = 'ldap' + $server_script = 'ldap' + $server_pattern = 'slapd' + $server_owner = 'root' + $server_group = 'ldap' + + $schema_prefix = "${prefix}/schema" + $db_prefix = '/var/lib/ldap' + + $module_prefix = '/usr/lib/openldap' + + $ssl_prefix = '/etc/openldap/cacerts' + $server_run = '/var/run/slapd' + $schema_base = [ 'core', 'cosine', 'nis', 'inetorgperson', ] + $modules_base = [ 'back_bdb' ] + $index_base = [ + 'index objectclass eq', + 'index entryCSN eq', + 'index entryUUID eq', + 'index uidNumber eq', + 'index gidNumber eq', + 'index cn pres,sub,eq', + 'index sn pres,sub,eq', + 'index uid pres,sub,eq', + 'index displayName pres,sub,eq', + ] + + # + # olcTLS* attributes are not defined here + # because they do have their own behavior + # according to the puppet module parameters + # + # olcTLSCACertificatePath = $ssl_ca + # olcTLSCertificateFile = $ssl_cert + # olcTLSCertificateKeyFile = $ssl_key + # + $cnconfig_default_attrs = [ + 'olcConfigFile', + 'olcConfigDir', + 'olcAllows', + 'olcAttributeOptions', + 'olcAuthzPolicty', + 'olcConcurrency', + 'olcConnMaxPending', + 'olcConnMaxPendingAuth', + 'olcGentleHUP', + 'olcIdleTimeout', + 'olcIndexSubstrIfMaxLen', + 'olcIndexSubstrIfMinLen', + 'olcIndexSubstrIfAnyLen', + 'olcIndexSubstrIfAnyStep', + 'olcIndexIntLen', + 'olcLocalSSF', + 'olcPidFile', + 'olcReadOnly', + 'olcReverseLookup', + 'olcSaslSecProps', + 'olcSockbufMaxIncoming', + 'olcSockbufMaxIncomingAuth', + 'olcTLSVerifyClient', + 'olcThreads', + 'olcToolThreads', + 'olcWriteTimeout', + ] + } + default: { fail("Operating system ${::operatingsystem} not supported") } @@ -315,4 +394,3 @@ } } - diff --git a/manifests/server/master.pp b/manifests/server/master.pp index 82c5565..03f90cf 100644 --- a/manifests/server/master.pp +++ b/manifests/server/master.pp @@ -146,20 +146,44 @@ motd::register { 'ldap::server::master': } } - package { $ldap::params::server_package: - ensure => $ensure - } + case $::osfamily { + 'AIX': { + package { $ldap::params::server_package: + ensure => $ensure, + source => $ldap::params::server_package_source, + provider => 'rpm', + require => Package['openssl'] + } + + service { $ldap::params::service: + ensure => running, + enable => true, + pattern => $ldap::params::server_pattern, + provider => 'init', + require => [ + Package[$ldap::params::server_package], + File["${ldap::params::prefix}/${ldap::params::server_config}"], + ] + } + } + default : { + package { $ldap::params::server_package: + ensure => $ensure + } - service { $ldap::params::service: - ensure => running, - enable => true, - pattern => $ldap::params::server_pattern, - require => [ - Package[$ldap::params::server_package], - File["${ldap::params::prefix}/${ldap::params::server_config}"], - ] + service { $ldap::params::service: + ensure => running, + enable => true, + pattern => $ldap::params::server_pattern, + require => [ + Package[$ldap::params::server_package], + File["${ldap::params::prefix}/${ldap::params::server_config}"], + ] + } + } } + if (!empty($cnconfig_attrs)) { $cnconfig_default_attrs = $ldap::params::cnconfig_default_attrs @@ -245,7 +269,7 @@ # Additional configurations (for rc scripts) case $::osfamily { - + 'Debian' : { class { 'ldap::server::debian': ssl => $ssl } } @@ -261,4 +285,3 @@ } } - diff --git a/manifests/server/slave.pp b/manifests/server/slave.pp index 3d49c19..4de5ed4 100644 --- a/manifests/server/slave.pp +++ b/manifests/server/slave.pp @@ -202,14 +202,30 @@ ensure => $ensure } - service { $ldap::params::service: - ensure => running, - enable => true, - pattern => $ldap::params::server_pattern, - require => [ - Package[$ldap::params::server_package], - File["${ldap::params::prefix}/${ldap::params::server_config}"], - ] + case $::osfamily { + 'AIX': { + service { $ldap::params::service: + ensure => running, + enable => true, + pattern => $ldap::params::server_pattern, + provider => 'init', + require => [ + Package[$ldap::params::server_package], + File["${ldap::params::prefix}/${ldap::params::server_config}"], + ] + } + } + default : { + service { $ldap::params::service: + ensure => running, + enable => true, + pattern => $ldap::params::server_pattern, + require => [ + Package[$ldap::params::server_package], + File["${ldap::params::prefix}/${ldap::params::server_config}"], + ] + } + } } @@ -298,7 +314,7 @@ # Additional configurations (for rc scripts) case $::osfamily { - + 'Debian' : { class { 'ldap::server::debian': ssl => $ssl } } From b44a6c1e20502aeaae68216b1a77737422e052d5 Mon Sep 17 00:00:00 2001 From: Toni Schmidbauer Date: Mon, 17 Feb 2014 21:29:54 +0100 Subject: [PATCH 2/9] require puppetlabs_spec_helper/rake_tasks i think that's all you need with a recent version of rspec-puppet and puppetlabs_spec_helper installed --- Rakefile | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Rakefile b/Rakefile index 4c80c5a..4c67ef6 100644 --- a/Rakefile +++ b/Rakefile @@ -1,6 +1,4 @@ - -require 'rake' -require 'rspec/core/rake_task' +require 'puppetlabs_spec_helper/rake_tasks' RSpec::Core::RakeTask.new(:spec) do |t| t.pattern = 'spec/*/*_spec.rb' From fdac9a26c8bc78bf7b8e008ea48682ec5350ceae Mon Sep 17 00:00:00 2001 From: Toni Schmidbauer Date: Mon, 17 Feb 2014 21:31:05 +0100 Subject: [PATCH 3/9] changed include_class to contain_class, added concat_basedir - in newer version of rspec-puppet include_class changed to contain_class, this fixes an deprecation warning. - puppetlabs-concat (former ripienaar-concat) require a fact concat_basedir that comes with the module. --- spec/classes/ldap_client_spec.rb | 3 ++- spec/classes/ldap_server_master_spec.rb | 5 +++-- spec/classes/ldap_server_slave_spec.rb | 5 +++-- spec/classes/ldap_spec.rb | 3 ++- spec/spec_helper.rb | 7 +++++++ 5 files changed, 17 insertions(+), 6 deletions(-) diff --git a/spec/classes/ldap_client_spec.rb b/spec/classes/ldap_client_spec.rb index 126615e..4c3efb6 100644 --- a/spec/classes/ldap_client_spec.rb +++ b/spec/classes/ldap_client_spec.rb @@ -14,6 +14,7 @@ :operatingsystem => oses[os][:operatingsystem], :operatingsystemmajrelease => oses[os][:operatingsystemmajrelease], :architecture => oses[os][:architecture], + :concat_basedir => oses[os][:concat_basedir], } } let(:params) { { @@ -21,7 +22,7 @@ :base => 'dc=suffix', } } - it { should include_class('ldap::params') } + it { should contain_class('ldap::params') } it { should contain_file(oses[os][:utils_cfg]) } context 'Motd disabled (default)' do diff --git a/spec/classes/ldap_server_master_spec.rb b/spec/classes/ldap_server_master_spec.rb index e143209..1bf0d95 100644 --- a/spec/classes/ldap_server_master_spec.rb +++ b/spec/classes/ldap_server_master_spec.rb @@ -14,6 +14,7 @@ :operatingsystem => oses[os][:operatingsystem], :operatingsystemmajrelease => oses[os][:operatingsystemmajrelease], :architecture => oses[os][:architecture], + :concat_basedir => oses[os][:concat_basedir], } } let(:params) { { @@ -21,7 +22,7 @@ :rootpw => 'asdqw', } } - it { should include_class('ldap') } + it { should contain_class('ldap') } it { should contain_service(oses[os][:service]) } it { should contain_package(oses[os][:server_pkg]) } it { should contain_file(oses[os][:server_cfg]) } @@ -49,7 +50,7 @@ } } it { expect { - should include_class('ldap') + should contain_class('ldap') }.to raise_error(Puppet::Error, /^Operating system.*/) } end diff --git a/spec/classes/ldap_server_slave_spec.rb b/spec/classes/ldap_server_slave_spec.rb index f7c9173..19091fd 100644 --- a/spec/classes/ldap_server_slave_spec.rb +++ b/spec/classes/ldap_server_slave_spec.rb @@ -14,6 +14,7 @@ :operatingsystem => oses[os][:operatingsystem], :operatingsystemmajrelease => oses[os][:operatingsystemmajrelease], :architecture => oses[os][:architecture], + :concat_basedir => oses[os][:concat_basedir], } } let(:params) { { @@ -26,7 +27,7 @@ :sync_bindpw => 'password', } } - it { should include_class('ldap') } + it { should contain_class('ldap') } it { should contain_package(oses[os][:server_pkg]) } it { should contain_service(oses[os][:service]) } it { should contain_file(oses[os][:server_cfg]) } @@ -75,7 +76,7 @@ it { expect { - should include_class('ldap') + should contain_class('ldap') }.to raise_error(Puppet::Error, /^Operating system.*/) } end diff --git a/spec/classes/ldap_spec.rb b/spec/classes/ldap_spec.rb index a259091..d4eda60 100644 --- a/spec/classes/ldap_spec.rb +++ b/spec/classes/ldap_spec.rb @@ -14,9 +14,10 @@ :operatingsystem => oses[os][:operatingsystem], :operatingsystemmajrelease => oses[os][:operatingsystemmajrelease], :architecture => oses[os][:architecture], + :concat_basedir => oses[os][:concat_basedir], } } - it { should include_class('ldap::params') } + it { should contain_class('ldap::params') } context 'Ensure is set to present' do diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index acdd45f..63ce165 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -17,6 +17,7 @@ :lsbdistid => 'Debian', :lsbdistrelease => '7.0', :architecture => 'amd64', + :concat_basedir => '/var/lib/puppet/concat', :utils_pkg => 'ldap-utils', :utils_cfg => '/etc/ldap/ldap.conf', @@ -40,6 +41,7 @@ :lsbdistid => 'Ubuntu', :lsbdistrelease => '13.04', :architecture => 'amd64', + :concat_basedir => '/var/lib/puppet/concat', :utils_pkg => 'ldap-utils', :utils_cfg => '/etc/ldap/ldap.conf', @@ -64,6 +66,7 @@ :lsbdistid => 'Redhat', :lsbdistrelease => '5.0', :architecture => 'x86_64', + :concat_basedir => '/var/lib/puppet/concat', :utils_pkg => 'openldap-clients', :utils_cfg => '/etc/openldap/ldap.conf', @@ -88,6 +91,7 @@ :lsbdistid => 'Redhat', :lsbdistrelease => '6.0', :architecture => 'x86_64', + :concat_basedir => '/var/lib/puppet/concat', :utils_pkg => 'openldap-clients', :utils_cfg => '/etc/openldap/ldap.conf', @@ -112,6 +116,7 @@ :lsbdistid => 'CentOS', :lsbdistrelease => '5.0', :architecture => 'x86_64', + :concat_basedir => '/var/lib/puppet/concat', :utils_pkg => 'openldap-clients', :utils_cfg => '/etc/openldap/ldap.conf', @@ -136,6 +141,7 @@ :lsbdistid => 'CentOS', :lsbdistrelease => '6.0', :architecture => 'x86_64', + :concat_basedir => '/var/lib/puppet/concat', :utils_pkg => 'openldap-clients', :utils_cfg => '/etc/openldap/ldap.conf', @@ -160,6 +166,7 @@ :lsbdistid => 'Scientific', :lsbdistrelease => '6.0', :architecture => 'x86_64', + :concat_basedir => '/var/lib/puppet/concat', :utils_pkg => 'openldap-clients', :utils_cfg => '/etc/openldap/ldap.conf', From 6d61a817026b411719259d0711f32202f53f6d90 Mon Sep 17 00:00:00 2001 From: Toni Schmidbauer Date: Mon, 17 Feb 2014 21:35:41 +0100 Subject: [PATCH 4/9] import fixtures for rspec-puppet this automatically installs modules this module depends on in spec/fixtures/modules before running rspec-puppet. --- .fixtures.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .fixtures.yml diff --git a/.fixtures.yml b/.fixtures.yml new file mode 100644 index 0000000..8e7b8fb --- /dev/null +++ b/.fixtures.yml @@ -0,0 +1,7 @@ +fixtures: + symlinks: + "ldap": "#{source_dir}" + repositories: + stdlib: "https://github.com/puppetlabs/puppetlabs-stdlib.git" + motd: "https://github.com/torian/puppet-motd.git" + concat: "https://github.com/puppetlabs/puppet-concat.git" From 61f2b0dc2794e9076dd3b0d76f6ed19b4fc8a7c0 Mon Sep 17 00:00:00 2001 From: Toni Schmidbauer Date: Mon, 17 Feb 2014 21:43:22 +0100 Subject: [PATCH 5/9] added a note that openldap on AIX depends on openssl --- manifests/init.pp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/manifests/init.pp b/manifests/init.pp index 42f6fa7..37a8c74 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -16,8 +16,11 @@ # - CentOS 5.x / 6.x # - OpenSuse: 11.x / 12.x # - OVS: 2.1.1 / 2.1.5 / 2.2.0 / 3.0.2 -# - AIX: 5.3 / 6.1 / 7.1 +# - AIX(1): 5.3 / 6.1 / 7.1 # +# 1) the perzl.org openldap package also depends on openssl +# so we require a module openssl and depend on the openssl +# package. # # === Examples # From f7da6cede8a22c09a64a39602d40bf299e21c5a1 Mon Sep 17 00:00:00 2001 From: Toni Schmidbauer Date: Mon, 17 Feb 2014 21:43:41 +0100 Subject: [PATCH 6/9] changed the package url to the perzl.org packages. --- manifests/params.pp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/manifests/params.pp b/manifests/params.pp index f9f62ed..aad3afd 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -310,7 +310,7 @@ 'AIX' : { $package = [ 'openldap' ] - $package_source = 'http://sunkist6.eb.lan.at/pkgs/aix/openldap-2.4.23-0.3.aix5.1.ppc.rpm' + $package_source = 'http://www.oss4aix.org/download/RPMS/openldap/openldap-2.4.23-0.3.aix5.1.ppc.rpm' $prefix = '/etc/openldap' $owner = 'root' @@ -319,7 +319,7 @@ $cacertdir = '/etc/openldap/cacerts' $server_package = [ 'openldap-servers' ] - $server_package_source = 'http://sunkist6.eb.lan.at/pkgs/aix/openldap-servers-2.4.23-0.3.aix5.1.ppc.rpm' + $server_package_source = 'http://www.oss4aix.org/download/RPMS/openldap/openldap-servers-2.4.23-0.3.aix5.1.ppc.rpm' $server_config = 'slapd.conf' $service = 'ldap' $server_script = 'ldap' From cc2605aead77565e420750040a72a7be50e6e687 Mon Sep 17 00:00:00 2001 From: Toni Schmidbauer Date: Mon, 17 Feb 2014 22:09:23 +0100 Subject: [PATCH 7/9] added support for AIX to spec_helper --- spec/spec_helper.rb | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 63ce165..1901111 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -183,5 +183,26 @@ :service => 'slapd', }, + 'AIX' => { + :operatingsystem => 'AIX', + :osfamily => 'AIX', + :operatingsystemrelease => '5300-11-03-1013', + :architecture => 'IBM,9117-MMB', + :concat_basedir => '/var/lib/puppet/concat', + + :utils_pkg => 'openldap', + :utils_cfg => '/etc/openldap/ldap.conf', + :cacertdir => '/etc/openldap/cacerts', + :ssl_cert => 'ldap.pem', + :utils_owner => 'root', + :utils_group => 'system', + + :server_pkg => 'openldap-servers', + :server_prefix => '/etc/openldap', + :server_cfg => '/etc/openldap/slapd.conf', + :server_owner => 'openldap', + :service => 'ldap', + :server_group => 'openldap', + }, } From 81af7fdf6a6fc632944b980e1ab802b85d8b89a4 Mon Sep 17 00:00:00 2001 From: Toni Schmidbauer Date: Mon, 17 Feb 2014 22:11:26 +0100 Subject: [PATCH 8/9] removed require openssl there is currently no module for openssl on aix. i think it's better to just depend on the package openssl for now. maybe we should just remove this dependency as well. --- manifests/init.pp | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/manifests/init.pp b/manifests/init.pp index 37a8c74..4570012 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -18,9 +18,8 @@ # - OVS: 2.1.1 / 2.1.5 / 2.2.0 / 3.0.2 # - AIX(1): 5.3 / 6.1 / 7.1 # -# 1) the perzl.org openldap package also depends on openssl -# so we require a module openssl and depend on the openssl -# package. +# 1) the perzl.org openldap package also requires openssl +# so we depend on this package. # # === Examples # @@ -48,8 +47,6 @@ case $::osfamily { 'AIX': { - require openssl - package { $ldap::params::package : ensure => $ensure, provider => 'rpm', From 4384474a1a51b1c4f19a81fda437ad5cf29a3a2d Mon Sep 17 00:00:00 2001 From: Toni Schmidbauer Date: Thu, 20 Feb 2014 19:38:32 +0100 Subject: [PATCH 9/9] rspec style fixes fixed some style issues: mixed tab and spaces, indention... --- spec/classes/ldap_client_spec.rb | 99 +++++++++--------- spec/classes/ldap_server_master_spec.rb | 93 +++++++++-------- spec/classes/ldap_server_slave_spec.rb | 130 ++++++++++++------------ spec/classes/ldap_spec.rb | 63 ++++++------ 4 files changed, 189 insertions(+), 196 deletions(-) diff --git a/spec/classes/ldap_client_spec.rb b/spec/classes/ldap_client_spec.rb index 4c3efb6..f1ec6b8 100644 --- a/spec/classes/ldap_client_spec.rb +++ b/spec/classes/ldap_client_spec.rb @@ -1,67 +1,64 @@ - require 'spec_helper' oses = @oses describe 'ldap::client' do - oses.keys.each do |os| - - describe "Running on #{os}" do + oses.keys.each do |os| - let(:facts) { { - :osfamily => oses[os][:osfamily], - :operatingsystem => oses[os][:operatingsystem], - :operatingsystemmajrelease => oses[os][:operatingsystemmajrelease], - :architecture => oses[os][:architecture], - :concat_basedir => oses[os][:concat_basedir], - } } + describe "Running on #{os}" do - let(:params) { { - :uri => 'ldap://ldap.example.com', - :base => 'dc=suffix', - } } - - it { should contain_class('ldap::params') } - it { should contain_file(oses[os][:utils_cfg]) } + let(:facts) { { + :osfamily => oses[os][:osfamily], + :operatingsystem => oses[os][:operatingsystem], + :operatingsystemmajrelease => oses[os][:operatingsystemmajrelease], + :architecture => oses[os][:architecture], + :concat_basedir => oses[os][:concat_basedir], + } } - context 'Motd disabled (default)' do - it { should_not contain_motd__register('ldap') } - end - context 'Motd enabled' do - let(:params) { { - :uri => 'ldap://ldap.example.com', - :base => 'dc=suffix', - :enable_motd => true - } } - it { should contain_motd__register('ldap') } - end + let(:params) { { + :uri => 'ldap://ldap.example.com', + :base => 'dc=suffix', + } } - context 'SSL Enabled with certificate filename' do - let(:params) { { - :uri => 'ldap://ldap.example.com', - :base => 'dc=suffix', - :ssl => true, - :ssl_cert => oses[os][:ssl_cert], - } } - it { should contain_file("#{oses[os][:cacertdir]}/#{oses[os][:ssl_cert]}") } - end + it { should contain_class('ldap::params') } + it { should contain_file(oses[os][:utils_cfg]) } - context 'SSL Enabled without certificate' do - let(:params) { { - :uri => 'ldap://ldap.example.com', - :base => 'dc=suffix', - :ssl => true, - } } - it { expect { - should contain_file("#{oses[os][:cacertdir]}/#{oses[os][:ssl_cert]}") - }.to raise_error(Puppet::Error, /^When ssl is.*/) - } + context 'Motd disabled (default)' do + it { should_not contain_motd__register('ldap') } + end - end + context 'Motd enabled' do + let(:params) { { + :uri => 'ldap://ldap.example.com', + :base => 'dc=suffix', + :enable_motd => true + } } + it { should contain_motd__register('ldap') } + end - end + context 'SSL Enabled with certificate filename' do + let(:params) { { + :uri => 'ldap://ldap.example.com', + :base => 'dc=suffix', + :ssl => true, + :ssl_cert => oses[os][:ssl_cert], + } } + it { should contain_file("#{oses[os][:cacertdir]}/#{oses[os][:ssl_cert]}") } + end - end + context 'SSL Enabled without certificate' do + let(:params) { { + :uri => 'ldap://ldap.example.com', + :base => 'dc=suffix', + :ssl => true, + } } + it { expect { + should contain_file("#{oses[os][:cacertdir]}/#{oses[os][:ssl_cert]}") + }.to raise_error(Puppet::Error, /^When ssl is.*/) + } + end + end + end end diff --git a/spec/classes/ldap_server_master_spec.rb b/spec/classes/ldap_server_master_spec.rb index 1bf0d95..63dbc1a 100644 --- a/spec/classes/ldap_server_master_spec.rb +++ b/spec/classes/ldap_server_master_spec.rb @@ -1,58 +1,57 @@ - require 'spec_helper' oses = @oses describe 'ldap::server::master' do - + oses.keys.each do |os| - - describe "Running on #{os}" do - - let(:facts) { { - :osfamily => oses[os][:osfamily], - :operatingsystem => oses[os][:operatingsystem], - :operatingsystemmajrelease => oses[os][:operatingsystemmajrelease], - :architecture => oses[os][:architecture], - :concat_basedir => oses[os][:concat_basedir], - } } - - let(:params) { { + + describe "Running on #{os}" do + + let(:facts) { { + :osfamily => oses[os][:osfamily], + :operatingsystem => oses[os][:operatingsystem], + :operatingsystemmajrelease => oses[os][:operatingsystemmajrelease], + :architecture => oses[os][:architecture], + :concat_basedir => oses[os][:concat_basedir], + } } + + let(:params) { { + :suffix => 'dc=example,dc=com', + :rootpw => 'asdqw', + } } + + it { should contain_class('ldap') } + it { should contain_service(oses[os][:service]) } + it { should contain_package(oses[os][:server_pkg]) } + it { should contain_file(oses[os][:server_cfg]) } + + context 'Motd disabled (default)' do + it { should_not contain_motd__register('ldap::server::master') } + end + + context 'Motd enabled' do + let(:params) { { + :suffix => 'dc=example,dc=com', + :rootpw => 'asdqw', + :enable_motd => true + } } + it { should contain_motd__register('ldap::server::master') } + end + end + end + + describe "Running on unsupported OS" do + let(:facts) { { :osfamily => 'solaris' } } + let(:params) { { :suffix => 'dc=example,dc=com', :rootpw => 'asdqw', } } - - it { should contain_class('ldap') } - it { should contain_service(oses[os][:service]) } - it { should contain_package(oses[os][:server_pkg]) } - it { should contain_file(oses[os][:server_cfg]) } - - context 'Motd disabled (default)' do - it { should_not contain_motd__register('ldap::server::master') } - end - - context 'Motd enabled' do - let(:params) { { - :suffix => 'dc=example,dc=com', - :rootpw => 'asdqw', - :enable_motd => true - } } - it { should contain_motd__register('ldap::server::master') } - end - end - end - - describe "Running on unsupported OS" do - let(:facts) { { :osfamily => 'solaris' } } - let(:params) { { - :suffix => 'dc=example,dc=com', - :rootpw => 'asdqw', - } } - it { - expect { - should contain_class('ldap') - }.to raise_error(Puppet::Error, /^Operating system.*/) - } - end + it { + expect { + should contain_class('ldap') + }.to raise_error(Puppet::Error, /^Operating system.*/) + } + end end diff --git a/spec/classes/ldap_server_slave_spec.rb b/spec/classes/ldap_server_slave_spec.rb index 19091fd..c2c0559 100644 --- a/spec/classes/ldap_server_slave_spec.rb +++ b/spec/classes/ldap_server_slave_spec.rb @@ -1,52 +1,70 @@ - + require 'spec_helper' oses = @oses describe 'ldap::server::slave' do - oses.keys.each do |os| - - describe "Running on #{os}" do + oses.keys.each do |os| - let(:facts) { { - :osfamily => oses[os][:osfamily], - :operatingsystem => oses[os][:operatingsystem], - :operatingsystemmajrelease => oses[os][:operatingsystemmajrelease], - :architecture => oses[os][:architecture], - :concat_basedir => oses[os][:concat_basedir], - } } - - let(:params) { { - :suffix => 'dc=example,dc=com', - :rootpw => 'rootpwsuperpass', - :sync_rid => 1, - :sync_provider => 'ldap://master.ldap', - :sync_updatedn => 'cn=admin,dc=example,dc=com', - :sync_binddn => 'cn=sync,dc=example,dc=com', - :sync_bindpw => 'password', - } } - - it { should contain_class('ldap') } - it { should contain_package(oses[os][:server_pkg]) } - it { should contain_service(oses[os][:service]) } - it { should contain_file(oses[os][:server_cfg]) } + describe "Running on #{os}" do - context 'Motd disabled (default)' do - let(:params) { { - :suffix => 'dc=example,dc=com', - :rootpw => 'rootpwsuperpass', - :sync_rid => 1, - :sync_provider => 'ldap://master.ldap', - :sync_updatedn => 'cn=admin,dc=example,dc=com', - :sync_binddn => 'cn=sync,dc=example,dc=com', - :sync_bindpw => 'password', - } } - it { should_not contain_motd__register('ldap::server::master') } - end - - context 'Motd enabled' do - let(:params) { { + let(:facts) { { + :osfamily => oses[os][:osfamily], + :operatingsystem => oses[os][:operatingsystem], + :operatingsystemmajrelease => oses[os][:operatingsystemmajrelease], + :architecture => oses[os][:architecture], + :concat_basedir => oses[os][:concat_basedir], + } } + + let(:params) { { + :suffix => 'dc=example,dc=com', + :rootpw => 'rootpwsuperpass', + :sync_rid => 1, + :sync_provider => 'ldap://master.ldap', + :sync_updatedn => 'cn=admin,dc=example,dc=com', + :sync_binddn => 'cn=sync,dc=example,dc=com', + :sync_bindpw => 'password', + } } + + it { should contain_class('ldap') } + it { should contain_package(oses[os][:server_pkg]) } + it { should contain_service(oses[os][:service]) } + it { should contain_file(oses[os][:server_cfg]) } + + context 'Motd disabled (default)' do + let(:params) { { + :suffix => 'dc=example,dc=com', + :rootpw => 'rootpwsuperpass', + :sync_rid => 1, + :sync_provider => 'ldap://master.ldap', + :sync_updatedn => 'cn=admin,dc=example,dc=com', + :sync_binddn => 'cn=sync,dc=example,dc=com', + :sync_bindpw => 'password', + } } + it { should_not contain_motd__register('ldap::server::master') } + end + + context 'Motd enabled' do + let(:params) { { + :suffix => 'dc=example,dc=com', + :rootpw => 'rootpwsuperpass', + :sync_rid => 1, + :sync_provider => 'ldap://master.ldap', + :sync_updatedn => 'cn=admin,dc=example,dc=com', + :sync_binddn => 'cn=sync,dc=example,dc=com', + :sync_bindpw => 'password', + :enable_motd => true, + } } + + it { should contain_motd__register('ldap::server::slave') } + end + end + end + + describe "Running on unsupported OS" do + let(:facts) { { :osfamily => 'solaris' } } + let(:params) { { :suffix => 'dc=example,dc=com', :rootpw => 'rootpwsuperpass', :sync_rid => 1, @@ -54,31 +72,13 @@ :sync_updatedn => 'cn=admin,dc=example,dc=com', :sync_binddn => 'cn=sync,dc=example,dc=com', :sync_bindpw => 'password', - :enable_motd => true, } } - - it { should contain_motd__register('ldap::server::slave') } - end - end - end - - describe "Running on unsupported OS" do - let(:facts) { { :osfamily => 'solaris' } } - let(:params) { { - :suffix => 'dc=example,dc=com', - :rootpw => 'rootpwsuperpass', - :sync_rid => 1, - :sync_provider => 'ldap://master.ldap', - :sync_updatedn => 'cn=admin,dc=example,dc=com', - :sync_binddn => 'cn=sync,dc=example,dc=com', - :sync_bindpw => 'password', - } } - it { - expect { - should contain_class('ldap') - }.to raise_error(Puppet::Error, /^Operating system.*/) - } - end + it { + expect { + should contain_class('ldap') + }.to raise_error(Puppet::Error, /^Operating system.*/) + } + end end diff --git a/spec/classes/ldap_spec.rb b/spec/classes/ldap_spec.rb index d4eda60..d15c6b0 100644 --- a/spec/classes/ldap_spec.rb +++ b/spec/classes/ldap_spec.rb @@ -1,64 +1,61 @@ - require 'spec_helper' oses = @oses describe 'ldap' do - oses.keys.each do |os| + oses.keys.each do |os| - describe "Running on #{os}" do + describe "Running on #{os}" do - let(:facts) { { - :osfamily => oses[os][:osfamily], - :operatingsystem => oses[os][:operatingsystem], - :operatingsystemmajrelease => oses[os][:operatingsystemmajrelease], - :architecture => oses[os][:architecture], - :concat_basedir => oses[os][:concat_basedir], - } } + let(:facts) do { + :osfamily => oses[os][:osfamily], + :operatingsystem => oses[os][:operatingsystem], + :operatingsystemmajrelease => oses[os][:operatingsystemmajrelease], + :architecture => oses[os][:architecture], + :concat_basedir => oses[os][:concat_basedir], + } + end - it { should contain_class('ldap::params') } + it { should contain_class('ldap::params') } context 'Ensure is set to present' do - let(:params) { { - :ensure => 'present', - } } + let(:params) do { + :ensure => 'present', + } + end - it 'install required packages ' do + it 'install required packages ' do should contain_package(oses[os][:utils_pkg]).with({ - 'ensure' => 'present', - }) + 'ensure' => 'present', + }) end - end context 'Ensure is set to absent' do - let(:params) { { - :ensure => 'absent', - } } + let(:params) do { + :ensure => 'absent', + } + end - it 'do not install required packages ' do + it 'do not install required packages ' do should contain_package(oses[os][:utils_pkg]).with({ - 'ensure' => 'absent', - }) + 'ensure' => 'absent', + }) end - end context 'Ensure is not set' do - it 'install required packages ' do + it 'install required packages ' do should contain_package(oses[os][:utils_pkg]).with({ - 'ensure' => 'present', - }) + 'ensure' => 'present', + }) end - end - end - - end - + end + end end