Commit e2eaa41d authored by Wolf Noble's avatar Wolf Noble
Browse files

addition to specs.. start whining when incompatable parameters are specified

parent 2e6c7bf5
......@@ -32,7 +32,7 @@
#
# [*master_submission*] - (string)
#
# [*mta*] - (boolean) Whether to use as MTA
# [*mta*] - (boolean) Configure postfix minimally, as a simple MTA
#
# [*mydestination*] - (string)
#
......@@ -140,10 +140,16 @@ class postfix (
}
if $mta {
if $satellite {
fail('enabling both the $mta and $satellite parameters is not supported. Please disable one.')
}
include ::postfix::mta
}
if $satellite {
if $mta {
fail('enabling both the $mta and $satellite parameters is not supported. Please disable one.')
}
include ::postfix::satellite
}
......
......@@ -25,8 +25,8 @@
#
class postfix::mta (
$mydestination = $postfix::mydestination,
$mynetworks = $postfix::mynetworks,
$relayhost = $postfix::relayhost,
$mynetworks = $postfix::mynetworks,
$relayhost = $postfix::relayhost,
) {
validate_re($relayhost, '^\S+$',
......
......@@ -25,7 +25,7 @@
class postfix::satellite (
$mydestination = $postfix::mydestination,
$mynetworks = $postfix::mynetworks,
$relayhost = $postfix::relayhost,
$relayhost = $postfix::relayhost,
) {
validate_re($postfix::myorigin, '^\S+$')
......
......@@ -137,5 +137,159 @@ describe 'postfix' do
) }
end
end
context 'when on RedHat' do
let (:facts) { {
:operatingsystem => 'Debian',
:osfamily => 'Debian',
:fqdn => 'fqdn.example.com',
} }
context 'when specifying inet_interfaces' do
let (:params) { {
:inet_interfaces => 'localhost2'
} }
it 'should create a postfix::config defined type with inet_interfaces specified properly' do
should contain_postfix__config('inet_interfaces').with_value('localhost2')
end
end
context 'when enabling ldap' do
it 'should do stuff' do
pending 'need to write this still'
end
end
context 'when a custom mail_user is specified' do
let (:params) { {
:mail_user => 'bar'
} }
it 'should adjust the content of /etc/postfix/master.cf specifying the user' do
should contain_file('/etc/postfix/master.cf').without('seltype').with_content(/user=bar/)
end
end
context 'when mailman is true' do
let (:params) { {
:mailman => true
} }
it 'should do stuff' do
pending 'need to write this still'
end
end
context 'when specifying a custom mastercf_source' do
let (:params) { {
:mastercf_source => 'testy'
} }
it 'should do stuff' do
pending 'need to write this still'
end
end
context 'when specifying a custom master_smtp' do
let (:params) { {
:master_smtp => "smtp inet n - - - - smtpd
-o smtpd_client_restrictions=check_client_access,hash:/etc/postfix/access,reject",
} }
it 'should update master.cf with the specified flags to smtp' do
should contain_file('/etc/postfix/master.cf').without('seltype').with_content(
/smtp inet n - - - - smtpd/).with_content(
/^smtp.*\n.*smtpd_client_restrictions=check_client_access,hash:/
)
end
end
context 'when specifying a custom master_smtps' do
let (:params) { {
:master_smtps => 'smtps inet n - - - - smtpd'
} }
it 'should update master.cf with the specified flags to smtps' do
should contain_file('/etc/postfix/master.cf').with_content(/^smtps inet n/)
end
end
context 'when mta is enabled' do
let (:params) { { :mta => true, :mydestination => '1.2.3.4', :relayhost => '2.3.4.5' } }
it 'should configure postfix as a minimal MTA, delivering mail to the mydestination param' do
should contain_postfix__config('mydestination').with_value('1.2.3.4')
should contain_postfix__config('mynetworks').with_value('127.0.0.0/8')
should contain_postfix__config('relayhost').with_value('2.3.4.5')
should contain_postfix__config('virtual_alias_maps').with_value('hash:/etc/postfix/virtual')
should contain_postfix__config('transport_maps').with_value('hash:/etc/postfix/transport')
end
it { should include_class('postfix::mta') }
context 'and satellite is also enabled' do
let (:params) { { :mta => true, :satellite => true, :mydestination => '1.2.3.4', :relayhost => '2.3.4.5' } }
it 'should fail' do
expect {subject}.to raise_error(Puppet::Error, /Please disable one/)
end
end
end
context 'when specifying mydesitination' do
it 'should do stuff' do
pending 'need to write this still'
end
end
context 'when specifying mynetworks' do
it 'should do stuff' do
pending 'need to write this still'
end
end
context 'when specifying myorigin' do
let (:params) { { :myorigin => 'localhost'} }
it 'should create a postfix::config defined type with myorigin specified properly' do
should contain_postfix__config('myorigin').with_value('localhost')
end
end
context 'when specifying relayhost' do
it 'should do stuff' do
pending 'need to write this still'
end
end
context 'when specifying a root_mail_recipient' do
let (:params) { { :root_mail_recipient => 'foo'} }
it 'should contain a Mailalias resource directing roots mail to the required user' do
should contain_mailalias('root').with_recipient('foo')
end
end
context 'when specifying satellite' do
let (:params) { { :satellite => true, :mydestination => '1.2.3.4', :relayhost => '2.3.4.5' } }
it 'should configure all local email to be forwarded to $root_mail_recipient delivered through $relayhost' do
should contain_postfix__config('mydestination').with_value('1.2.3.4')
should contain_postfix__config('mynetworks').with_value('127.0.0.0/8')
should contain_postfix__config('relayhost').with_value('2.3.4.5')
should contain_postfix__config('virtual_alias_maps').with_value('hash:/etc/postfix/virtual')
should contain_postfix__config('transport_maps').with_value('hash:/etc/postfix/transport')
end
context 'and mta is also enabled' do
let (:params) { { :mta => true, :satellite => true, :mydestination => '1.2.3.4', :relayhost => '2.3.4.5' } }
it 'should fail' do
expect {subject}.to raise_error(Puppet::Error, /Please disable one/)
end
end
end
context 'when specifying smtp_listen' do
let (:params) { { :smtp_listen => 'all' } }
it 'should do stuff' do
pending 'need to write this still'
end
end
context 'when use_amavisd is true' do
let (:params) { { :use_amavisd => true } }
it 'should update master.cf with the specified flags to amavis' do
should contain_file('/etc/postfix/master.cf').with_content(/amavis unix/)
end
end
context 'when use_dovecot_lda is true' do
let (:params) { { :use_dovecot_lda => true } }
it 'should update master.cf with the specified flags to dovecot' do
should contain_file('/etc/postfix/master.cf').with_content(/dovecot.*\n.* user=vmail:vmail /)
end
end
context 'when use_schleuder is true' do
let (:params) { { :use_schleuder => true } }
it 'should update master.cf with the specified flags to schleuder' do
should contain_file('/etc/postfix/master.cf').with_content(/schleuder/)
end
end
context 'when use_sympa is true' do
let (:params) { { :use_sympa => true } }
it 'should update master.cf to include sympa' do
should contain_file('/etc/postfix/master.cf').with_content(/sympa/)
end
end
end
end
end
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment