X-Git-Url: https://git.openstreetmap.org./chef.git/blobdiff_plain/45dde9418dd342bb1a632d82559201c0b3becf1a..286f134943376ccf73e8f9593f52861afc5b1b81:/cookbooks/systemd/resources/timer.rb diff --git a/cookbooks/systemd/resources/timer.rb b/cookbooks/systemd/resources/timer.rb index b33cff2d0..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] @@ -32,33 +35,41 @@ property :on_calendar, String property :accuracy_sec, [Integer, String] property :randomized_delay_sec, [Integer, String] property :unit, String -property :persistent, [TrueClass, FalseClass] -property :wake_system, [TrueClass, FalseClass] -property :remain_after_elapse, [TrueClass, FalseClass] +property :persistent, [true, false] +property :wake_system, [true, false] +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