lib/capistrano/tasks/monit.cap in capistrano-sidekiq-0.5.2 vs lib/capistrano/tasks/monit.cap in capistrano-sidekiq-0.5.3

- old
+ new

@@ -1,8 +1,9 @@ namespace :load do task :defaults do set :sidekiq_monit_conf_dir, -> { '/etc/monit/conf.d' } + set :sidekiq_monit_use_sudo, -> { true } set :monit_bin, -> { '/usr/bin/monit' } set :sidekiq_monit_default_hooks, -> { true } end end @@ -24,45 +25,39 @@ desc 'Config Sidekiq monit-service' task :config do on roles(fetch(:sidekiq_role)) do |role| @role = role - template_sidekiq 'sidekiq_monit', "#{fetch(:tmp_dir)}/monit.conf", @role + upload_sidekiq_template 'sidekiq_monit', "#{fetch(:tmp_dir)}/monit.conf", @role mv_command = "mv #{fetch(:tmp_dir)}/monit.conf #{fetch(:sidekiq_monit_conf_dir)}/#{sidekiq_service_name}.conf" + sudo_if_needed mv_command - # Try execute in case the deploy user doesn't have sudo to mv - begin - execute mv_command - rescue - sudo mv_command - end - - sudo "#{fetch(:monit_bin)} reload" + sudo_if_needed "#{fetch(:monit_bin)} reload" end end desc 'Monitor Sidekiq monit-service' task :monitor do on roles(fetch(:sidekiq_role)) do fetch(:sidekiq_processes).times do |idx| begin - sudo "#{fetch(:monit_bin)} monitor #{sidekiq_service_name(idx)}" + sudo_if_needed "#{fetch(:monit_bin)} monitor #{sidekiq_service_name(idx)}" rescue invoke 'sidekiq:monit:config' - sudo "#{fetch(:monit_bin)} monitor #{sidekiq_service_name(idx)}" + sudo_if_needed "#{fetch(:monit_bin)} monitor #{sidekiq_service_name(idx)}" end end end end desc 'Unmonitor Sidekiq monit-service' task :unmonitor do on roles(fetch(:sidekiq_role)) do fetch(:sidekiq_processes).times do |idx| begin - sudo "#{fetch(:monit_bin)} unmonitor #{sidekiq_service_name(idx)}" + sudo_if_needed "#{fetch(:monit_bin)} unmonitor #{sidekiq_service_name(idx)}" rescue # no worries here end end end @@ -70,29 +65,29 @@ desc 'Start Sidekiq monit-service' task :start do on roles(fetch(:sidekiq_role)) do fetch(:sidekiq_processes).times do |idx| - sudo "#{fetch(:monit_bin)} start #{sidekiq_service_name(idx)}" + sudo_if_needed "#{fetch(:monit_bin)} start #{sidekiq_service_name(idx)}" end end end desc 'Stop Sidekiq monit-service' task :stop do on roles(fetch(:sidekiq_role)) do fetch(:sidekiq_processes).times do |idx| - sudo "#{fetch(:monit_bin)} stop #{sidekiq_service_name(idx)}" + sudo_if_needed "#{fetch(:monit_bin)} stop #{sidekiq_service_name(idx)}" end end end desc 'Restart Sidekiq monit-service' task :restart do on roles(fetch(:sidekiq_role)) do fetch(:sidekiq_processes).times do |idx| - sudo "#{fetch(:monit_bin)} restart #{sidekiq_service_name(idx)}" + sudo_if_needed"#{fetch(:monit_bin)} restart #{sidekiq_service_name(idx)}" end end end def sidekiq_service_name(index=nil) @@ -119,9 +114,17 @@ def sidekiq_logfile if fetch(:sidekiq_log) "--logfile #{fetch(:sidekiq_log)}" end + end + + def sudo_if_needed(command) + send(use_sudo? ? :sudo : :execute, command) + end + + def use_sudo? + fetch(:sidekiq_monit_use_sudo) end end end