Merge pull request #730 from igor-alexandrov/confirming_dialogs
Added -y option to kamal traefik reboot command
This commit is contained in:
@@ -177,7 +177,7 @@ class Kamal::Cli::Accessory < Kamal::Cli::Base
|
||||
if name == "all"
|
||||
KAMAL.accessory_names.each { |accessory_name| remove(accessory_name) }
|
||||
else
|
||||
if options[:confirmed] || ask("This will remove all containers, images and data directories for #{name}. Are you sure?", limited_to: %w[ y N ], default: "N") == "y"
|
||||
confirming "This will remove all containers, images and data directories for #{name}. Are you sure?" do
|
||||
with_accessory(name) do
|
||||
stop(name)
|
||||
remove_container(name)
|
||||
|
||||
@@ -103,6 +103,16 @@ module Kamal::Cli
|
||||
release_lock
|
||||
end
|
||||
|
||||
def confirming(question)
|
||||
return yield if options[:confirmed]
|
||||
|
||||
if ask(question, limited_to: %w[ y N ], default: "N") == "y"
|
||||
yield
|
||||
else
|
||||
say "Aborted", :red
|
||||
end
|
||||
end
|
||||
|
||||
def acquire_lock
|
||||
raise_if_locked do
|
||||
say "Acquiring the deploy lock...", :magenta
|
||||
|
||||
@@ -197,7 +197,7 @@ class Kamal::Cli::Main < Kamal::Cli::Base
|
||||
option :confirmed, aliases: "-y", type: :boolean, default: false, desc: "Proceed without confirmation question"
|
||||
def remove
|
||||
mutating do
|
||||
if options[:confirmed] || ask("This will remove all containers and images. Are you sure?", limited_to: %w[ y N ], default: "N") == "y"
|
||||
confirming "This will remove all containers and images. Are you sure?" do
|
||||
invoke "kamal:cli:traefik:remove", [], options.without(:confirmed)
|
||||
invoke "kamal:cli:app:remove", [], options.without(:confirmed)
|
||||
invoke "kamal:cli:accessory:remove", [ "all" ], options
|
||||
|
||||
@@ -11,20 +11,23 @@ class Kamal::Cli::Traefik < Kamal::Cli::Base
|
||||
|
||||
desc "reboot", "Reboot Traefik on servers (stop container, remove container, start new container)"
|
||||
option :rolling, type: :boolean, default: false, desc: "Reboot traefik on hosts in sequence, rather than in parallel"
|
||||
option :confirmed, aliases: "-y", type: :boolean, default: false, desc: "Proceed without confirmation question"
|
||||
def reboot
|
||||
mutating do
|
||||
host_groups = options[:rolling] ? KAMAL.traefik_hosts : [ KAMAL.traefik_hosts ]
|
||||
host_groups.each do |hosts|
|
||||
host_list = Array(hosts).join(",")
|
||||
run_hook "pre-traefik-reboot", hosts: host_list
|
||||
on(hosts) do
|
||||
execute *KAMAL.auditor.record("Rebooted traefik"), verbosity: :debug
|
||||
execute *KAMAL.registry.login
|
||||
execute *KAMAL.traefik.stop, raise_on_non_zero_exit: false
|
||||
execute *KAMAL.traefik.remove_container
|
||||
execute *KAMAL.traefik.run
|
||||
confirming "This will cause a brief outage on each host. Are you sure?" do
|
||||
mutating do
|
||||
host_groups = options[:rolling] ? KAMAL.traefik_hosts : [ KAMAL.traefik_hosts ]
|
||||
host_groups.each do |hosts|
|
||||
host_list = Array(hosts).join(",")
|
||||
run_hook "pre-traefik-reboot", hosts: host_list
|
||||
on(hosts) do
|
||||
execute *KAMAL.auditor.record("Rebooted traefik"), verbosity: :debug
|
||||
execute *KAMAL.registry.login
|
||||
execute *KAMAL.traefik.stop, raise_on_non_zero_exit: false
|
||||
execute *KAMAL.traefik.remove_container
|
||||
execute *KAMAL.traefik.run
|
||||
end
|
||||
run_hook "post-traefik-reboot", hosts: host_list
|
||||
end
|
||||
run_hook "post-traefik-reboot", hosts: host_list
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user