]> git.openstreetmap.org Git - chef.git/blob - cookbooks/apache/providers/module.rb
Add support for passenger 4 using the phusion repos
[chef.git] / cookbooks / apache / providers / module.rb
1 #
2 # Cookbook Name:: apache
3 # Provider:: apache_module
4 #
5 # Copyright 2013, OpenStreetMap Foundation
6 #
7 # Licensed under the Apache License, Version 2.0 (the "License");
8 # you may not use this file except in compliance with the License.
9 # You may obtain a copy of the License at
10 #
11 #     http://www.apache.org/licenses/LICENSE-2.0
12 #
13 # Unless required by applicable law or agreed to in writing, software
14 # distributed under the License is distributed on an "AS IS" BASIS,
15 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 # See the License for the specific language governing permissions and
17 # limitations under the License.
18 #
19
20 def whyrun_supported?
21   true
22 end
23
24 action :install do
25   if not installed?
26     package package_name do
27       version new_resource.version
28     end
29
30     updated = true
31   else
32     updated = false
33   end
34
35   if new_resource.conf
36     t = template available_name("conf") do
37       source new_resource.conf
38       owner "root"
39       group "root"
40       mode 0644
41       variables new_resource.variables
42       notifies :reload, "service[apache2]" if enabled?
43     end
44
45     updated = updated || t.updated_by_last_action?
46   end
47
48   new_resource.updated_by_last_action(updated)
49 end
50
51 action :enable do
52   if not enabled?
53     link enabled_name("load") do
54       to available_name("load")
55       owner "root"
56       group "root"
57       notifies :restart, "service[apache2]"
58     end
59
60     link enabled_name("conf") do
61       to available_name("conf")
62       owner "root"
63       group "root"
64       notifies :reload, "service[apache2]"
65       only_if { ::File.exists?(available_name("conf")) }
66     end
67
68     new_resource.updated_by_last_action(true)
69   end
70 end
71
72 action :disable do
73   if enabled?
74     link enabled_name("load") do
75       action :delete
76       notifies :restart, "service[apache2]"
77     end
78
79     link enabled_name("conf") do
80       action :delete
81       notifies :reload, "service[apache2]"
82     end
83
84     new_resource.updated_by_last_action(true)
85   end
86 end
87
88 action :delete do
89   if installed?
90     package package_name do
91       action :remove
92     end
93
94     new_resource.updated_by_last_action(true)
95   end
96 end
97
98 def package_name
99   new_resource.package || "libapache2-mod-#{new_resource.name}"
100 end
101
102 def available_name(extension)
103   "/etc/apache2/mods-available/#{new_resource.name}.#{extension}"
104 end
105
106 def enabled_name(extension)
107   "/etc/apache2/mods-enabled/#{new_resource.name}.#{extension}"
108 end
109
110 def installed?
111   ::File.exists?(available_name("load"))
112 end
113
114 def enabled?
115   ::File.exists?(enabled_name("load"))
116 end