From 02b832ed92c715bd1c107490ccf3d097648873cd Mon Sep 17 00:00:00 2001 From: Greg Cox Date: Wed, 3 Jul 2024 19:41:36 +0000 Subject: [PATCH 1/2] Create olcDbDirectory before its database and the start of slapd --- manifests/server/database.pp | 6 +++--- spec/defines/openldap_server_database_spec.rb | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/manifests/server/database.pp b/manifests/server/database.pp index 7939263d..b02e07ad 100644 --- a/manifests/server/database.pp +++ b/manifests/server/database.pp @@ -52,10 +52,10 @@ } Class['openldap::server::service'] - -> Openldap::Server::Database[$title] + -> Openldap_database[$title] -> Class['openldap::server'] if $title != 'dc=my-domain,dc=com' and fact('os.family') == 'RedHat' { - Openldap::Server::Database['dc=my-domain,dc=com'] -> Openldap::Server::Database[$title] + Openldap_database['dc=my-domain,dc=com'] -> Openldap_database[$title] } if $ensure == present and $backend != 'monitor' and $backend != 'config' and $backend != 'relay' and $backend != 'ldap' { @@ -63,7 +63,7 @@ ensure => directory, owner => $openldap::server::owner, group => $openldap::server::group, - before => Openldap_database[$title], + before => [Class['openldap::server::service'], Openldap_database[$title]], } } diff --git a/spec/defines/openldap_server_database_spec.rb b/spec/defines/openldap_server_database_spec.rb index 8e314115..9908be8f 100644 --- a/spec/defines/openldap_server_database_spec.rb +++ b/spec/defines/openldap_server_database_spec.rb @@ -21,6 +21,24 @@ it { is_expected.to contain_openldap__server__database('dc=foo').with(directory: '/foo/bar') } + + it { + # The slapd service must be started before we can make a database: + is_expected.to contain_class('openldap::server::service'). + that_comes_before('Openldap_database[dc=foo]') + } + + it { + # The containing directory for a database must exist before the database that it will contain: + is_expected.to contain_file('/foo/bar'). + that_comes_before('Openldap_database[dc=foo]') + } + + it { + # ... and "the specified olcDbDirectory must exist prior to starting slapd(8)": + is_expected.to contain_file('/foo/bar'). + that_comes_before('Class[openldap::server::service]') + } end context 'with all parameters set' do From e7475e10833675e12a9e8668587066919cc5e24d Mon Sep 17 00:00:00 2001 From: Greg Cox Date: Wed, 3 Jul 2024 22:08:56 +0000 Subject: [PATCH 2/2] Remove class ordering for slapdconf --- manifests/server.pp | 2 +- spec/classes/openldap_server_spec.rb | 5 ----- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/manifests/server.pp b/manifests/server.pp index 23415364..456f5d6a 100644 --- a/manifests/server.pp +++ b/manifests/server.pp @@ -47,6 +47,6 @@ Class['openldap::server::install'] -> Class['openldap::server::config'] ~> Class['openldap::server::service'] - -> Class['openldap::server::slapdconf'] + Class['openldap::server::slapdconf'] -> Class['openldap::server'] } diff --git a/spec/classes/openldap_server_spec.rb b/spec/classes/openldap_server_spec.rb index af3de710..b3b206a1 100644 --- a/spec/classes/openldap_server_spec.rb +++ b/spec/classes/openldap_server_spec.rb @@ -23,11 +23,6 @@ that_notifies('Class[openldap::server::service]') } - it { - is_expected.to contain_class('openldap::server::service'). - that_comes_before('Class[openldap::server::slapdconf]') - } - it { is_expected.to contain_class('openldap::server::slapdconf'). that_comes_before('Class[openldap::server]')