From f4f2b5cb1700bdc1a9c3e8c26ce9af10cb75df29 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Thu, 23 Feb 2023 12:04:57 +0100 Subject: [PATCH] Communicate the readiness delay --- lib/mrsk/cli/app.rb | 5 +++++ lib/mrsk/cli/main.rb | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/lib/mrsk/cli/app.rb b/lib/mrsk/cli/app.rb index bab5c063..ebc9a4d9 100644 --- a/lib/mrsk/cli/app.rb +++ b/lib/mrsk/cli/app.rb @@ -5,6 +5,8 @@ class Mrsk::Cli::App < Mrsk::Cli::Base using_version(options[:version] || most_recent_version_available) do |version| say "Start container with version #{version} (or reboot if already running)...", :magenta + cli = self + MRSK.config.roles.each do |role| on(role.hosts) do |host| execute *MRSK.auditor.record("Booted app version #{version}"), verbosity: :debug @@ -12,7 +14,10 @@ class Mrsk::Cli::App < Mrsk::Cli::Base begin old_version = capture_with_info(*MRSK.app.current_running_version).strip execute *MRSK.app.run(role: role.name) + + cli.say "Waiting #{MRSK.config.readiness_delay}s for app to boot...", :magenta sleep MRSK.config.readiness_delay + execute *MRSK.app.stop(version: old_version), raise_on_non_zero_exit: false if old_version.present? rescue SSHKit::Command::Failed => e diff --git a/lib/mrsk/cli/main.rb b/lib/mrsk/cli/main.rb index d0986bc5..eb96bc38 100644 --- a/lib/mrsk/cli/main.rb +++ b/lib/mrsk/cli/main.rb @@ -57,11 +57,16 @@ class Mrsk::Cli::Main < Mrsk::Cli::Base if container_name_available?(MRSK.config.service_with_version) say "Start version #{version}, then stop the old version...", :magenta + cli = self + on(MRSK.hosts) do |host| old_version = capture_with_info(*MRSK.app.current_running_version).strip.presence execute *MRSK.app.start + + cli.say "Waiting #{MRSK.config.readiness_delay}s for app to start...", :magenta sleep MRSK.config.readiness_delay + execute *MRSK.app.stop(version: old_version), raise_on_non_zero_exit: false end