class Kontena::Plugin::Upcloud::Nodes::TerminateCommand

Public Instance Methods

default_name() click to toggle source
# File lib/kontena/plugin/upcloud/nodes/terminate_command.rb, line 33
def default_name
  nodes = client.get("grids/#{current_grid}/nodes")
  nodes = nodes['nodes'].select{ |n|
    n['labels'] && n['labels'].include?('provider=upcloud'.freeze)
  }
  raise "Did not find any nodes with label provider=upcloud" if nodes.size == 0
  prompt.select("Select node: ") do |menu|
    nodes.sort_by{|n| n['node_number'] }.reverse.each do |node|
      initial = node['initial_member'] ? '(initial) ' : ''
      menu.choice "#{node['name']} #{initial}", node['name']
    end
  end
end
default_password() click to toggle source
# File lib/kontena/plugin/upcloud/nodes/terminate_command.rb, line 29
def default_password
  prompt.mask('UpCloud password:')
end
default_username() click to toggle source
# File lib/kontena/plugin/upcloud/nodes/terminate_command.rb, line 25
def default_username
  prompt.ask('UpCloud username:', echo: true)
end
execute() click to toggle source
# File lib/kontena/plugin/upcloud/nodes/terminate_command.rb, line 15
def execute
  abort_unless_api_access

  require 'kontena/machine/upcloud'
  confirm_command(name) unless forced?
  grid = client.get("grids/#{current_grid}")
  destroyer = Kontena::Machine::Upcloud::NodeDestroyer.new(client, username, password)
  destroyer.run!(grid, name)
end