class Kontena::Cli::Stacks::RemoveCommand
Public Instance Methods
confirm_remove(stack, name)
click to toggle source
@param stack [Hash] @param name [String]
# File lib/kontena/cli/stacks/remove_command.rb, line 38 def confirm_remove(stack, name) if stack['parent'] puts "#{pastel.yellow('Warning:')} The stack #{pastel.cyan(stack['parent']['name'])} depends on stack #{name}" end if !keep_dependencies? && stack['children'] && !stack['children'].empty? puts "#{pastel.yellow('Warning:')} The stack #{pastel.cyan(name)} has dependencies that will be removed:" stack['children'].each do |child| puts "- #{pastel.yellow(child['name'])}" end end confirm_command(name) end
execute()
click to toggle source
# File lib/kontena/cli/stacks/remove_command.rb, line 18 def execute names.each do |name| stack = fetch_stack(name) confirm_remove(stack, name) unless forced? unless keep_dependencies? stack.fetch('children', Hash.new).each do |child_stack| caret"Removing dependency #{pastel.cyan(child_stack['name'])}" Kontena.run!(['stack', 'remove', '--force', child_stack['name']]) end end spinner "Removing stack #{pastel.cyan(name)} " do remove_stack(name) wait_stack_removal(name) end end end
fetch_stack(name)
click to toggle source
@param name [String] @return [Hash]
# File lib/kontena/cli/stacks/remove_command.rb, line 53 def fetch_stack(name) client.get("stacks/#{current_grid}/#{name}") end
remove_stack(name)
click to toggle source
@param name [String] @return [Hash]
# File lib/kontena/cli/stacks/remove_command.rb, line 59 def remove_stack(name) client.delete("stacks/#{current_grid}/#{name}") end
wait_stack_removal(name)
click to toggle source
@param name [String]
# File lib/kontena/cli/stacks/remove_command.rb, line 64 def wait_stack_removal(name) removed = false until removed == true begin client.get("stacks/#{current_grid}/#{name}") sleep 1 rescue Kontena::Errors::StandardError => exc if exc.status == 404 removed = true else raise exc end end end end