Skip to content

Commit bd1c93e

Browse files
committed
Ensure the mail parameter is set everywhere needed
This also ensures a failure occurs if you haven't set nginx::mail. The nginx::mail flag was always required to actually load the resource, it just wasn't actually setup to fail.
1 parent c980e2d commit bd1c93e

File tree

3 files changed

+8
-7
lines changed

3 files changed

+8
-7
lines changed

manifests/resource/mailhost.pp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,10 @@
189189
fail('You must include the nginx base class before using any defined resources')
190190
} elsif versioncmp($facts.get('nginx_version', $nginx::nginx_version), '1.15.0') < 0 {
191191
fail('This module does not support nginx 1.14')
192+
} elsif ! $nginx::mail {
193+
fail('nginx mail proxy requires the nginx::mail flag to be set true')
192194
}
195+
193196
if $nginx::mail_package_name {
194197
package { $nginx::mail_package_name:
195198
ensure => 'installed',

spec/acceptance/nginx_mail_spec.rb

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@
33
require 'spec_helper_acceptance'
44

55
describe 'nginx::resource::mailhost define:' do
6-
has_recent_mail_module = true
7-
8-
has_recent_mail_module = false if fact('os.family') == 'RedHat' && fact('os.release.major') == '8'
6+
has_recent_mail_module = fact('os.family') != 'RedHat' || fact('os.release.major') != '8'
97

108
it 'remove leftovers from previous tests', if: fact('os.family') == 'RedHat' do
119
# nginx-mod-mail is not available for all versions of nginx, the one

spec/defines/resource_mailhost_spec.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,7 @@
243243
end
244244
end
245245
context 'mail proxy parameters' do
246-
let(:pre_condition) { ['class { "nginx": nginx_version => "1.20.0"}'] }
246+
let(:pre_condition) { ['class { "nginx": nginx_version => "1.20.0", mail => true,}'] }
247247
let(:params) do
248248
{
249249
listen_port: 25,
@@ -689,7 +689,7 @@
689689
facts.merge(nginx_version: '1.16.0')
690690
end
691691

692-
let(:pre_condition) { ['include nginx'] }
692+
let(:pre_condition) { ['class { "nginx": mail => true,}'] }
693693

694694
it 'has `ssl` at end of listen directive' do
695695
content = catalogue.resource('concat::fragment', "#{title}-ssl").send(:parameters)[:content]
@@ -698,7 +698,7 @@
698698
end
699699

700700
context 'when version comes from parameter' do
701-
let(:pre_condition) { ['class { "nginx": nginx_version => "1.16.0"}'] }
701+
let(:pre_condition) { ['class { "nginx": nginx_version => "1.16.0", mail => true,}'] }
702702

703703
it 'also has `ssl` at end of listen directive' do
704704
content = catalogue.resource('concat::fragment', "#{title}-ssl").send(:parameters)[:content]
@@ -707,7 +707,7 @@
707707
end
708708

709709
context 'mail proxy parameters' do
710-
let(:pre_condition) { ['class { "nginx": nginx_version => "1.20.0"}'] }
710+
let(:pre_condition) { ['class { "nginx": nginx_version => "1.20.0", mail => true,}'] }
711711

712712
it 'configures mail proxy settings' do
713713
content = catalogue.resource('concat::fragment', "#{title}-ssl").send(:parameters)[:content]

0 commit comments

Comments
 (0)