[COOK-1792] - add minitest-chef tests
* Create minitest-chef tests * Also use better style (don't specify action if its the default, use 5 digit modes, update notification syntax)
This commit is contained in:
parent
99a240edf2
commit
d2f29085a3
115
Gemfile.lock
Normal file
115
Gemfile.lock
Normal file
@ -0,0 +1,115 @@
|
||||
GEM
|
||||
remote: http://rubygems.org/
|
||||
specs:
|
||||
archive-tar-minitar (0.5.2)
|
||||
bunny (0.7.9)
|
||||
chef (10.14.4)
|
||||
bunny (>= 0.6.0, < 0.8.0)
|
||||
erubis
|
||||
highline (>= 1.6.9)
|
||||
json (>= 1.4.4, <= 1.6.1)
|
||||
mixlib-authentication (>= 1.3.0)
|
||||
mixlib-cli (>= 1.1.0)
|
||||
mixlib-config (>= 1.1.2)
|
||||
mixlib-log (>= 1.3.0)
|
||||
mixlib-shellout
|
||||
moneta
|
||||
net-ssh (~> 2.2.2)
|
||||
net-ssh-multi (~> 1.1.0)
|
||||
ohai (>= 0.6.0)
|
||||
rest-client (>= 1.0.4, < 1.7.0)
|
||||
treetop (~> 1.4.9)
|
||||
uuidtools
|
||||
yajl-ruby (~> 1.1)
|
||||
childprocess (0.3.6)
|
||||
ffi (~> 1.0, >= 1.0.6)
|
||||
coderay (1.0.8)
|
||||
erubis (2.7.0)
|
||||
ffi (1.1.5)
|
||||
foodcritic (1.6.1)
|
||||
erubis
|
||||
gherkin (~> 2.11.1)
|
||||
gist (~> 3.1.0)
|
||||
nokogiri (= 1.5.0)
|
||||
pry (~> 0.9.8.4)
|
||||
rak (~> 1.4)
|
||||
treetop (~> 1.4.10)
|
||||
yajl-ruby (~> 1.1.0)
|
||||
gherkin (2.11.5)
|
||||
json (>= 1.4.6)
|
||||
gist (3.1.0)
|
||||
hashr (0.0.22)
|
||||
highline (1.6.15)
|
||||
i18n (0.6.1)
|
||||
ipaddress (0.8.0)
|
||||
json (1.5.4)
|
||||
librarian (0.0.25)
|
||||
archive-tar-minitar (>= 0.5.2)
|
||||
chef (>= 0.10)
|
||||
highline
|
||||
thor (~> 0.15)
|
||||
log4r (1.1.10)
|
||||
method_source (0.7.1)
|
||||
mime-types (1.19)
|
||||
mixlib-authentication (1.3.0)
|
||||
mixlib-log
|
||||
mixlib-cli (1.2.2)
|
||||
mixlib-config (1.1.2)
|
||||
mixlib-log (1.4.1)
|
||||
mixlib-shellout (1.1.0)
|
||||
moneta (0.6.0)
|
||||
net-scp (1.0.4)
|
||||
net-ssh (>= 1.99.1)
|
||||
net-ssh (2.2.2)
|
||||
net-ssh-gateway (1.1.0)
|
||||
net-ssh (>= 1.99.1)
|
||||
net-ssh-multi (1.1)
|
||||
net-ssh (>= 2.1.4)
|
||||
net-ssh-gateway (>= 0.99.0)
|
||||
nokogiri (1.5.0)
|
||||
ohai (6.14.1)
|
||||
ipaddress
|
||||
mixlib-cli
|
||||
mixlib-config
|
||||
mixlib-log
|
||||
systemu
|
||||
yajl-ruby
|
||||
polyglot (0.3.3)
|
||||
pry (0.9.8.4)
|
||||
coderay (~> 1.0.5)
|
||||
method_source (~> 0.7.1)
|
||||
slop (>= 2.4.4, < 3)
|
||||
rak (1.4)
|
||||
rest-client (1.6.7)
|
||||
mime-types (>= 1.16)
|
||||
slop (2.4.4)
|
||||
systemu (2.5.2)
|
||||
test-kitchen (0.6.0)
|
||||
foodcritic (~> 1.4)
|
||||
hashr (~> 0.0.20)
|
||||
highline (>= 1.6.9)
|
||||
librarian (~> 0.0.20)
|
||||
mixlib-cli (~> 1.2.2)
|
||||
vagrant (~> 1.0.2)
|
||||
yajl-ruby (~> 1.1.0)
|
||||
thor (0.16.0)
|
||||
treetop (1.4.11)
|
||||
polyglot
|
||||
polyglot (>= 0.3.1)
|
||||
uuidtools (2.1.3)
|
||||
vagrant (1.0.5)
|
||||
archive-tar-minitar (= 0.5.2)
|
||||
childprocess (~> 0.3.1)
|
||||
erubis (~> 2.7.0)
|
||||
i18n (~> 0.6.0)
|
||||
json (~> 1.5.1)
|
||||
log4r (~> 1.1.9)
|
||||
net-scp (~> 1.0.4)
|
||||
net-ssh (~> 2.2.2)
|
||||
yajl-ruby (1.1.0)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
||||
DEPENDENCIES
|
||||
test-kitchen
|
26
files/default/tests/minitest/aliases_test.rb
Normal file
26
files/default/tests/minitest/aliases_test.rb
Normal file
@ -0,0 +1,26 @@
|
||||
#
|
||||
# Copyright 2012, Opscode, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
require File.expand_path('../support/helpers', __FILE__)
|
||||
|
||||
describe "postfix::aliases" do
|
||||
include Helpers::Postfix
|
||||
|
||||
it 'manages /etc/aliases' do
|
||||
file("/etc/aliases").must_match(/^# This file is generated by Chef for/)
|
||||
end
|
||||
|
||||
end
|
24
files/default/tests/minitest/client_test.rb
Normal file
24
files/default/tests/minitest/client_test.rb
Normal file
@ -0,0 +1,24 @@
|
||||
#
|
||||
# Copyright 2012, Opscode, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
require File.expand_path('../support/helpers', __FILE__)
|
||||
|
||||
describe "postfix::client" do
|
||||
include Helpers::Postfix
|
||||
it 'doesnt configure postfix because solo is unsupported' do
|
||||
skip "Postfix may be set up by default on the system, but not configured by Chef because this test assumes it is run under Chef Solo"
|
||||
end
|
||||
end
|
38
files/default/tests/minitest/default_test.rb
Normal file
38
files/default/tests/minitest/default_test.rb
Normal file
@ -0,0 +1,38 @@
|
||||
#
|
||||
# Copyright 2012, Opscode, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
require File.expand_path('../support/helpers', __FILE__)
|
||||
|
||||
describe "postfix::default" do
|
||||
include Helpers::Postfix
|
||||
|
||||
it 'installs the postfix package' do
|
||||
package("postfix").must_be_installed
|
||||
end
|
||||
|
||||
it 'enables the postfix service' do
|
||||
service("postfix").must_be_enabled
|
||||
end
|
||||
|
||||
it 'starts the postfix service' do
|
||||
service("postfix").must_be_running
|
||||
end
|
||||
|
||||
it 'configures postfix main.cf' do
|
||||
file("/etc/postfix/main.cf").must_match(/^# Generated by Chef for /)
|
||||
end
|
||||
|
||||
end
|
25
files/default/tests/minitest/sasl_auth_test.rb
Normal file
25
files/default/tests/minitest/sasl_auth_test.rb
Normal file
@ -0,0 +1,25 @@
|
||||
#
|
||||
# Copyright 2012, Opscode, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
require File.expand_path('../support/helpers', __FILE__)
|
||||
|
||||
describe "postfix::sasl_auth" do
|
||||
include Helpers::Postfix
|
||||
|
||||
it 'manages /etc/postfix/sasl_passwd' do
|
||||
file("/etc/postfix/sasl_passwd").must_match(/^# This file is generated by Chef for/)
|
||||
end
|
||||
|
||||
end
|
23
files/default/tests/minitest/server_test.rb
Normal file
23
files/default/tests/minitest/server_test.rb
Normal file
@ -0,0 +1,23 @@
|
||||
#
|
||||
# Copyright 2012, Opscode, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
require File.expand_path('../support/helpers', __FILE__)
|
||||
|
||||
describe "postfix::server" do
|
||||
include Helpers::Postfix
|
||||
it 'doesnt configure postfix because solo is unsupported' do
|
||||
skip "Postfix may be set up by default on the system, but not configured by Chef because this test assumes it is run under Chef Solo"
|
||||
end
|
||||
end
|
24
files/default/tests/minitest/support/helpers.rb
Normal file
24
files/default/tests/minitest/support/helpers.rb
Normal file
@ -0,0 +1,24 @@
|
||||
#
|
||||
# Copyright 2012, Opscode, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
module Helpers
|
||||
module Postfix
|
||||
include MiniTest::Chef::Assertions
|
||||
include MiniTest::Chef::Context
|
||||
include MiniTest::Chef::Resources
|
||||
|
||||
end
|
||||
end
|
@ -1,3 +1,19 @@
|
||||
#
|
||||
# Copyright:: Copyright (c) 2012, Opscode, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
require_recipe "postfix"
|
||||
|
||||
execute "update-postfix-aliases" do
|
||||
@ -7,7 +23,5 @@ end
|
||||
|
||||
template "/etc/aliases" do
|
||||
source "aliases.erb"
|
||||
notifies :run, resources("execute[update-postfix-aliases]")
|
||||
#notifies :reload, resources(:service => "postfix")
|
||||
notifies :run, "execute[update-postfix-aliases]"
|
||||
end
|
||||
|
||||
|
@ -18,14 +18,12 @@
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
package "postfix" do
|
||||
action :install
|
||||
end
|
||||
package "postfix"
|
||||
|
||||
if node['postfix']['use_procmail']
|
||||
|
||||
package "procmail"
|
||||
|
||||
if node['postfix']['use_procmail'] then
|
||||
package "procmail" do
|
||||
action :install
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@ -34,26 +32,31 @@ service "postfix" do
|
||||
action :enable
|
||||
end
|
||||
|
||||
case node[:platform]
|
||||
when "redhat", "centos", "amazon", "scientific"
|
||||
case node['platform_family']
|
||||
when "rhel", "fedora"
|
||||
|
||||
service "sendmail" do
|
||||
action :nothing
|
||||
end
|
||||
|
||||
execute "switch_mailer_to_postfix" do
|
||||
command "/usr/sbin/alternatives --set mta /usr/sbin/sendmail.postfix"
|
||||
notifies :stop, resources(:service => "sendmail")
|
||||
notifies :start, resources(:service => "postfix")
|
||||
notifies :stop, "service[sendmail]"
|
||||
notifies :start, "service[postfix]"
|
||||
not_if "/usr/bin/test /etc/alternatives/mta -ef /usr/sbin/sendmail.postfix"
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
%w{main master}.each do |cfg|
|
||||
|
||||
template "/etc/postfix/#{cfg}.cf" do
|
||||
source "#{cfg}.cf.erb"
|
||||
owner "root"
|
||||
group "root"
|
||||
mode 0644
|
||||
notifies :restart, resources(:service => "postfix")
|
||||
group 0
|
||||
mode 00644
|
||||
notifies :restart, "service[postfix]"
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -18,10 +18,29 @@
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
%w{ libsasl2-2 ca-certificates}.each do |pkg|
|
||||
package pkg do
|
||||
action :install
|
||||
include_recipe "postfix"
|
||||
|
||||
sasl_pkgs = []
|
||||
|
||||
# We use case instead of value_for_platform_family because we need
|
||||
# version specifics for RHEL.
|
||||
case node['platform_family']
|
||||
when "debian"
|
||||
sasl_pkgs = %w{libsasl2-2 ca-certificates}
|
||||
when "rhel"
|
||||
if node['platform_version'].to_i < 6
|
||||
sasl_pkgs = %w{cyrus-sasl openssl}
|
||||
else
|
||||
sasl_pkgs = %w{cyrus-sasl ca-certificates}
|
||||
end
|
||||
when "fedora"
|
||||
sasl_pkgs = %w{cyrus-sasl ca-certificates}
|
||||
end
|
||||
|
||||
sasl_pkgs.each do |pkg|
|
||||
|
||||
package pkg
|
||||
|
||||
end
|
||||
|
||||
execute "postmap-sasl_passwd" do
|
||||
@ -34,7 +53,6 @@ template "/etc/postfix/sasl_passwd" do
|
||||
owner "root"
|
||||
group "root"
|
||||
mode 0400
|
||||
notifies :run, resources(:execute => "postmap-sasl_passwd"), :immediately
|
||||
notifies :restart, resources(:service => "postfix")
|
||||
notifies :run, "execute[postmap-sasl_passwd]", :immediately
|
||||
notifies :restart, "service[postfix]"
|
||||
end
|
||||
|
||||
|
@ -1 +1,2 @@
|
||||
<%= node[:postfix][:relayhost] %> <%= node[:postfix][:smtp_sasl_user_name] %>:<%= node[:postfix][:smtp_sasl_passwd] %>
|
||||
# This file is generated by Chef for <%= node['fqdn'] %>
|
||||
<%= node['postfix']['relayhost'] %> <%= node['postfix']['smtp_sasl_user_name'] %>:<%= node['postfix']['smtp_sasl_passwd'] %>
|
||||
|
@ -1,3 +1,7 @@
|
||||
cookbook "postfix" do
|
||||
runtimes []
|
||||
configuration "default"
|
||||
configuration "aliases"
|
||||
configuration "client"
|
||||
configuration "server"
|
||||
configuration "sasl_auth"
|
||||
end
|
||||
|
Loading…
x
Reference in New Issue
Block a user