lib/capistrano/tasks/monit.cap in capistrano-sidekiq-0.4.0 vs lib/capistrano/tasks/monit.cap in capistrano-sidekiq-0.5.0

- old
+ new

@@ -16,36 +16,55 @@ namespace :sidekiq do namespace :monit do task :add_default_hooks do - after 'deploy:check', 'sidekiq:monit:unmonitor' - after 'deploy:publishing', 'sidekiq:monit:monitor' + before 'deploy:updating', 'sidekiq:monit:unmonitor' + after 'deploy:published', 'sidekiq:monit:monitor' end desc 'Config Sidekiq monit-service' task :config do on roles(fetch(:sidekiq_role)) do |role| @role = role - template_sidekiq 'sidekiq_monit.conf', "#{fetch(:tmp_dir)}/monit.conf", @role - sudo "mv #{fetch(:tmp_dir)}/monit.conf #{fetch(:sidekiq_monit_conf_dir)}/#{sidekiq_service_name}.conf" + template_sidekiq '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" + + # 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" end end desc 'Monitor Sidekiq monit-service' task :monitor do on roles(fetch(:sidekiq_role)) do fetch(:sidekiq_processes).times do |idx| - sudo "#{fetch(:monit_bin)} monitor #{sidekiq_service_name(idx)}" + begin + sudo "#{fetch(:monit_bin)} monitor #{sidekiq_service_name(idx)}" + rescue + invoke 'sidekiq:monit:config' + sudo "#{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| - sudo "#{fetch(:monit_bin)} unmonitor #{sidekiq_service_name(idx)}" + begin + sudo "#{fetch(:monit_bin)} unmonitor #{sidekiq_service_name(idx)}" + rescue + # no worries here + end end end end desc 'Start Sidekiq monit-service'