diff --git a/providers/service.rb b/providers/service.rb index 4c1d759..bcb5867 100644 --- a/providers/service.rb +++ b/providers/service.rb @@ -24,6 +24,12 @@ end end +action :reread do + converge_by("Re-reading #{ new_resource }") do + reread_service + end +end + action :disable do if current_resource.state == 'UNAVAILABLE' Chef::Log.info "#{new_resource} is already disabled." @@ -105,6 +111,30 @@ def enable_service end end +def reread_service + e = execute "supervisorctl reread" do + action :nothing + user "root" + end + + t = template "#{node['supervisor']['dir']}/#{new_resource.service_name}.conf" do + source "program.conf.erb" + cookbook "supervisor" + owner "root" + group "root" + mode "644" + variables :prog => new_resource + Chef::Log.info "supervisorctl reread [#{new_resource.service_name}] " + notifies :run, "execute[supervisorctl reread]", :immediately + end + + t.run_action(:create) + if t.updated? + e.run_action(:run) + end + +end + def disable_service execute "supervisorctl update" do action :nothing diff --git a/resources/service.rb b/resources/service.rb index 4e3f6ce..2dd9534 100644 --- a/resources/service.rb +++ b/resources/service.rb @@ -18,7 +18,7 @@ # limitations under the License. # -actions :enable, :disable, :start, :stop, :restart +actions :enable, :disable, :start, :stop, :restart, :reread default_action :enable attribute :service_name, :kind_of => String, :name_attribute => true