Sha256: c47961cf4d3153bf78ca7d7f0ac717a114d6064b6d60493d911a990ee1351048

Contents?: true

Size: 1.74 KB

Versions: 116

Compression:

Stored size: 1.74 KB

Contents

module Kontena::Cli::Cloud::Master
  class RemoveCommand < Kontena::Command

    include Kontena::Cli::Common

    callback_matcher 'cloud-master', 'delete'

    requires_current_account_token

    parameter "[MASTER_ID]", "Master ID"

    option ['-f', '--force'], :flag, "Don't ask for confirmation"

    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

    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 'Listing masters failed'.colorize(:red)
        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

    def execute
      if self.master_id.nil?
        run_interactive
      else
        confirm unless self.force?
        delete_server(self.master_id)
      end
      exit 0
    end
  end
end

Version data entries

116 entries across 116 versions & 1 rubygems

Version Path
kontena-cli-1.4.3 lib/kontena/cli/cloud/master/remove_command.rb
kontena-cli-1.4.3.rc1 lib/kontena/cli/cloud/master/remove_command.rb
kontena-cli-1.4.2 lib/kontena/cli/cloud/master/remove_command.rb
kontena-cli-1.4.2.rc1 lib/kontena/cli/cloud/master/remove_command.rb
kontena-cli-1.4.2.pre1 lib/kontena/cli/cloud/master/remove_command.rb
kontena-cli-1.4.1 lib/kontena/cli/cloud/master/remove_command.rb
kontena-cli-1.4.1.rc1 lib/kontena/cli/cloud/master/remove_command.rb
kontena-cli-1.4.1.pre1 lib/kontena/cli/cloud/master/remove_command.rb
kontena-cli-1.3.5 lib/kontena/cli/cloud/master/remove_command.rb
kontena-cli-1.3.5.rc1 lib/kontena/cli/cloud/master/remove_command.rb
kontena-cli-1.4.0 lib/kontena/cli/cloud/master/remove_command.rb
kontena-cli-1.4.0.rc2 lib/kontena/cli/cloud/master/remove_command.rb
kontena-cli-1.4.0.rc1 lib/kontena/cli/cloud/master/remove_command.rb
kontena-cli-1.4.0.pre14 lib/kontena/cli/cloud/master/remove_command.rb
kontena-cli-1.4.0.pre13 lib/kontena/cli/cloud/master/remove_command.rb
kontena-cli-1.4.0.pre12 lib/kontena/cli/cloud/master/remove_command.rb
kontena-cli-1.4.0.pre11 lib/kontena/cli/cloud/master/remove_command.rb
kontena-cli-1.4.0.pre10 lib/kontena/cli/cloud/master/remove_command.rb
kontena-cli-1.4.0.pre9 lib/kontena/cli/cloud/master/remove_command.rb
kontena-cli-1.4.0.pre8 lib/kontena/cli/cloud/master/remove_command.rb