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