X-Git-Url: https://git.openstreetmap.org./chef.git/blobdiff_plain/741593ee2bf203c9261f604d094e3d8e621698a8..beba7c025301ae190346f9fb986caf840265c643:/cookbooks/systemd/resources/timer.rb diff --git a/cookbooks/systemd/resources/timer.rb b/cookbooks/systemd/resources/timer.rb index 91de6e909..f3f324ea0 100644 --- a/cookbooks/systemd/resources/timer.rb +++ b/cookbooks/systemd/resources/timer.rb @@ -17,10 +17,13 @@ # limitations under the License. # +unified_mode true + default_action :create property :timer, String, :name_property => true -property :description, String, :required => true +property :dropin, String +property :description, String property :after, [String, Array] property :wants, [String, Array] property :on_active_sec, [Integer, String] @@ -39,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 0o644 + 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 @@ -70,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