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/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/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]') 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