diff --git a/manifests/mod/dav_svn.pp b/manifests/mod/dav_svn.pp index 916e8306..4c04d1b3 100644 --- a/manifests/mod/dav_svn.pp +++ b/manifests/mod/dav_svn.pp @@ -1,36 +1,32 @@ # @summary # Installs and configures `mod_dav_svn`. # # @param authz_svn_enabled # Specifies whether to install Apache mod_authz_svn # # @see https://httpd.apache.org/docs/current/mod/mod_dav_svn.html for additional documentation. # class apache::mod::dav_svn ( $authz_svn_enabled = false, ) { Class['::apache::mod::dav'] -> Class['::apache::mod::dav_svn'] include apache include apache::mod::dav if($::operatingsystem == 'SLES' and versioncmp($::operatingsystemmajrelease, '12') < 0) { package { 'subversion-server': ensure => 'installed', provider => 'zypper', } } ::apache::mod { 'dav_svn': } - if $::osfamily == 'Debian' and ! ($::operatingsystemmajrelease in ['6', '9', '16.04', '18.04']) { - $loadfile_name = undef - } else { - $loadfile_name = 'dav_svn_authz_svn.load' - } - if $authz_svn_enabled { ::apache::mod { 'authz_svn': - loadfile_name => $loadfile_name, + # authz_svn depends on symbols from the dav_svn module, + # therefore, make sure authz_svn is loaded after dav_svn. + loadfile_name => 'dav_svn_authz_svn.load', require => Apache::Mod['dav_svn'], } } } diff --git a/spec/classes/mod/dav_svn_spec.rb b/spec/classes/mod/dav_svn_spec.rb index 68d6bede..affdb367 100644 --- a/spec/classes/mod/dav_svn_spec.rb +++ b/spec/classes/mod/dav_svn_spec.rb @@ -1,96 +1,96 @@ # frozen_string_literal: true require 'spec_helper' describe 'apache::mod::dav_svn', type: :class do it_behaves_like 'a mod class, without including apache' context 'default configuration with parameters' do context 'on a Debian OS' do include_examples 'Debian 8' it { is_expected.to contain_class('apache::params') } it { is_expected.to contain_apache__mod('dav_svn') } it { is_expected.to contain_package('libapache2-svn') } it { is_expected.to contain_file('dav_svn.load').with_content(%r{LoadModule dav_svn_module}) } describe 'with parameters' do let :params do { 'authz_svn_enabled' => true, } end it { is_expected.to contain_class('apache::params') } it { is_expected.to contain_apache__mod('dav_svn') } it { is_expected.to contain_package('libapache2-svn') } it { is_expected.to contain_apache__mod('authz_svn') } - it { is_expected.to contain_file('authz_svn.load').with_content(%r{LoadModule authz_svn_module}) } + it { is_expected.to contain_file('dav_svn_authz_svn.load').with_content(%r{LoadModule authz_svn_module}) } end end context 'on a RedHat OS' do include_examples 'RedHat 6' it { is_expected.to contain_class('apache::params') } it { is_expected.to contain_apache__mod('dav_svn') } it { is_expected.to contain_package('mod_dav_svn') } it { is_expected.to contain_file('dav_svn.load').with_content(%r{LoadModule dav_svn_module}) } describe 'with parameters' do let :params do { 'authz_svn_enabled' => true, } end it { is_expected.to contain_class('apache::params') } it { is_expected.to contain_apache__mod('dav_svn') } it { is_expected.to contain_package('mod_dav_svn') } it { is_expected.to contain_apache__mod('authz_svn') } it { is_expected.to contain_file('dav_svn_authz_svn.load').with_content(%r{LoadModule authz_svn_module}) } end end context 'on a FreeBSD OS' do include_examples 'FreeBSD 9' it { is_expected.to contain_class('apache::params') } it { is_expected.to contain_apache__mod('dav_svn') } it { is_expected.to contain_package('devel/subversion') } it { is_expected.to contain_file('dav_svn.load').with_content(%r{LoadModule dav_svn_module}) } describe 'with parameters' do let :params do { 'authz_svn_enabled' => true, } end it { is_expected.to contain_class('apache::params') } it { is_expected.to contain_apache__mod('dav_svn') } it { is_expected.to contain_package('devel/subversion') } it { is_expected.to contain_apache__mod('authz_svn') } it { is_expected.to contain_file('dav_svn_authz_svn.load').with_content(%r{LoadModule authz_svn_module}) } end end context 'on a Gentoo OS', :compile do include_examples 'Gentoo' it { is_expected.to contain_class('apache::params') } it { is_expected.to contain_apache__mod('dav_svn') } it { is_expected.to contain_package('dev-vcs/subversion') } it { is_expected.to contain_file('dav_svn.load').with_content(%r{LoadModule dav_svn_module}) } describe 'with parameters' do let :params do { 'authz_svn_enabled' => true, } end it { is_expected.to contain_class('apache::params') } it { is_expected.to contain_apache__mod('dav_svn') } it { is_expected.to contain_package('dev-vcs/subversion') } it { is_expected.to contain_apache__mod('authz_svn') } it { is_expected.to contain_file('dav_svn_authz_svn.load').with_content(%r{LoadModule authz_svn_module}) } end end end end