X-Git-Url: https://git.openstreetmap.org./chef.git/blobdiff_plain/d4abc496a29c600862b9e7175cdea675a7b6c946..f8a576aca1270f703f38c3257cf533390692de06:/cookbooks/systemd/resources/timer.rb?ds=inline diff --git a/cookbooks/systemd/resources/timer.rb b/cookbooks/systemd/resources/timer.rb index 4cf920a9b..f3f324ea0 100644 --- a/cookbooks/systemd/resources/timer.rb +++ b/cookbooks/systemd/resources/timer.rb @@ -1,8 +1,8 @@ # -# Cookbook Name:: systemd +# Cookbook:: systemd # Resource:: systemd_timer # -# Copyright 2019, OpenStreetMap Foundation +# Copyright:: 2019, OpenStreetMap Foundation # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -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