From: Tom Hughes Date: Mon, 13 Feb 2023 18:58:20 +0000 (+0000) Subject: Add dropin support for systemd timers X-Git-Url: https://git.openstreetmap.org./chef.git/commitdiff_plain/2ef728a0cbef3bbc4452938271c0306787ce7f50 Add dropin support for systemd timers --- diff --git a/cookbooks/systemd/resources/timer.rb b/cookbooks/systemd/resources/timer.rb index 8ace5bfe9..1ebae847d 100644 --- a/cookbooks/systemd/resources/timer.rb +++ b/cookbooks/systemd/resources/timer.rb @@ -22,6 +22,7 @@ unified_mode true default_action :create property :timer, String, :name_property => true +property :dropin, String property :description, String, :required => [:create] property :after, [String, Array] property :wants, [String, Array] @@ -41,7 +42,15 @@ 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" @@ -60,7 +69,7 @@ action :create do 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