Class: Kontena::Plugin::Aws::Nodes::TerminateCommand

Inherits:
Command
  • Object
show all
Includes:
Cli::Common, Cli::GridOptions, Prompts
Defined in:
lib/kontena/plugin/aws/nodes/terminate_command.rb

Instance Method Summary collapse

Methods included from Prompts

#ask_aws_access_key, #ask_aws_az, #ask_aws_instance_type, #ask_aws_key_pair, #ask_aws_region, #ask_aws_secret_key, #ask_aws_storage, #ask_aws_subnet, #ask_aws_vpc, #ask_node

Instance Method Details

#destroyer(access_key, secret_key, region) ⇒ Object



31
32
33
# File 'lib/kontena/plugin/aws/nodes/terminate_command.rb', line 31

def destroyer(access_key, secret_key, region)
  Kontena::Machine::Aws::NodeDestroyer.new(client, access_key, secret_key, region)
end

#executeObject



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/kontena/plugin/aws/nodes/terminate_command.rb', line 15

def execute
  require_current_grid

  node_name = self.name || ask_node
  node = client.get("nodes/#{current_grid}/#{node_name}")
  aws_access_key = ask_aws_access_key
  aws_secret_key = ask_aws_secret_key
  aws_region = self.region || resolve_or_ask_region(node, aws_access_key, aws_secret_key)

  confirm_command(node_name) unless forced?
  require_relative '../../../machine/aws'
  grid = client.get("grids/#{current_grid}")
  destroyer = destroyer(aws_access_key, aws_secret_key, aws_region)
  destroyer.run!(grid, node_name)
end

#resolve_or_ask_region(node, access_key, secret_key) ⇒ Object



35
36
37
38
39
40
41
# File 'lib/kontena/plugin/aws/nodes/terminate_command.rb', line 35

def resolve_or_ask_region(node, access_key, secret_key)
  if node['labels'] && region_label = node['labels'].find{ |l| l.split('=').first == 'region' }
    region = region_label.split('=').last
  end
  region = ask_aws_region(access_key, secret_key) unless region
  region
end