X-Git-Url: https://git.openstreetmap.org./chef.git/blobdiff_plain/a08c8d97d5cd3666799fb3bef14618d4c7c23398..286f134943376ccf73e8f9593f52861afc5b1b81:/cookbooks/systemd/resources/timer.rb diff --git a/cookbooks/systemd/resources/timer.rb b/cookbooks/systemd/resources/timer.rb index 8ace5bfe9..f3f324ea0 100644 --- a/cookbooks/systemd/resources/timer.rb +++ b/cookbooks/systemd/resources/timer.rb @@ -22,7 +22,8 @@ unified_mode true default_action :create property :timer, String, :name_property => true -property :description, String, :required => [:create] +property :dropin, String +property :description, String property :after, [String, Array] property :wants, [String, Array] property :on_active_sec, [Integer, String] @@ -41,26 +42,34 @@ property :remain_after_elapse, [true, false] action :create do timer_variables = new_resource.to_hash - template "/etc/systemd/system/#{new_resource.timer}.timer" do + if new_resource.dropin + directory dropin_directory do + owner "root" + group "root" + mode "755" + end + end + + template config_name do cookbook "systemd" source "timer.erb" owner "root" group "root" mode "644" variables timer_variables + notifies :run, "execute[systemctl-reload]" end - execute "systemctl-reload-#{new_resource.timer}.timer" do + execute "systemctl-reload" do action :nothing command "systemctl daemon-reload" user "root" group "root" - subscribes :run, "template[/etc/systemd/system/#{new_resource.timer}.timer]" end end action :delete do - file "/etc/systemd/system/#{new_resource.timer}.timer" do + file config_name do action :delete end @@ -72,3 +81,17 @@ action :delete do subscribes :run, "file[/etc/systemd/system/#{new_resource.timer}.timer]" end end + +action_class do + def dropin_directory + "/etc/systemd/system/#{new_resource.timer}.timer.d" + end + + def config_name + if new_resource.dropin + "#{dropin_directory}/#{new_resource.dropin}.conf" + else + "/etc/systemd/system/#{new_resource.timer}.timer" + end + end +end