class Kontena::Cli::Cloud::Master::RemoveCommand

Public Instance Methods

delete_server(id) click to toggle source
# File lib/kontena/cli/cloud/master/remove_command.rb, line 14
def delete_server(id)
  spinner "Deleting server #{id} from Kontena Cloud" do |spin|
    begin
      cloud_client.delete("user/masters/#{id}")
    rescue
      spin.fail
    end
  end
end
execute() click to toggle source
# File lib/kontena/cli/cloud/master/remove_command.rb, line 58
def execute
  if self.master_id.nil?
    run_interactive
  else
    confirm unless self.force?
    delete_server(self.master_id)
  end
  exit 0
end
run_interactive() click to toggle source
# File lib/kontena/cli/cloud/master/remove_command.rb, line 24
def run_interactive
  response = nil
  spinner "Retrieving a list of registered masters on Kontena Cloud" do
    response = cloud_client.get('user/masters')
    unless response && response.kind_of?(Hash) && response['data'].kind_of?(Array)
      abort pastel.red('Listing masters failed')
    end
  end

  if response['data'].empty?
    puts "No registered masters"
    return
  end

  servers_to_delete = prompt.multi_select("Select registered master(s) to delete:") do |menu|
    response['data'].each do |server|
      menu.choice "#{server['attributes']['name']} (#{server['attributes']['url'] || "?"})", server['id']
    end
  end

  if servers_to_delete.empty?
    puts "No masters selected"
  else
    puts "About to delete servers from Kontena Cloud:"
    servers_to_delete.each do |id|
      puts " * #{id}"
    end
    confirm unless self.force?
    servers_to_delete.each do |id|
      delete_server(id)
    end
  end
end