lib/itamae/resource/service.rb in itamae-1.2.16 vs lib/itamae/resource/service.rb in itamae-1.2.17

- old
+ new

@@ -3,11 +3,17 @@ module Itamae module Resource class Service < Base define_attribute :action, default: :nothing define_attribute :name, type: String, default_name: true + define_attribute :provider, type: Symbol, default: nil + def initialize(*args) + super + @under = attributes.provider ? "_under_#{attributes.provider}" : "" + end + def pre_action case @current_action when :start, :restart attributes.running = true when :stop @@ -18,39 +24,45 @@ attributes.enabled = false end end def set_current_attributes - current.running = run_specinfra(:check_service_is_running, attributes.name) - current.enabled = run_specinfra(:check_service_is_enabled, attributes.name) + current.running = run_specinfra(:"check_service_is_running#{@under}", attributes.name) + current.enabled = run_specinfra(:"check_service_is_enabled#{@under}", attributes.name) end def action_start(options) unless current.running - run_specinfra(:start_service, attributes.name) + run_specinfra(:"start_service#{@under}", attributes.name) end end def action_stop(options) if current.running - run_specinfra(:stop_service, attributes.name) + run_specinfra(:"stop_service#{@under}", attributes.name) end end def action_restart(options) - run_specinfra(:restart_service, attributes.name) + run_specinfra(:"restart_service#{@under}", attributes.name) end def action_reload(options) - run_specinfra(:reload_service, attributes.name) + if current.running + run_specinfra(:"reload_service#{@under}", attributes.name) + end end def action_enable(options) - run_specinfra(:enable_service, attributes.name) + unless current.enabled + run_specinfra(:"enable_service#{@under}", attributes.name) + end end def action_disable(options) - run_specinfra(:disable_service, attributes.name) + if current.enabled + run_specinfra(:"disable_service#{@under}", attributes.name) + end end end end end