Class: Kontena::Plugin::Aws::Nodes::RestartCommand

Inherits:
Command
  • Object
show all
Includes:
Cli::Common, Cli::GridOptions, Prompts
Defined in:
lib/kontena/plugin/aws/nodes/restart_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

#executeObject



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

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)
  require_relative '../../../machine/aws'

  restarter = restarter(aws_access_key, aws_secret_key, aws_region)
  restarter.run!(node_name)
end

#resolve_or_ask_region(node, access_key, secret_key) ⇒ Object



32
33
34
35
36
37
38
# File 'lib/kontena/plugin/aws/nodes/restart_command.rb', line 32

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

#restarter(access_key, secret_key, region) ⇒ Object



28
29
30
# File 'lib/kontena/plugin/aws/nodes/restart_command.rb', line 28

def restarter(access_key, secret_key, region)
  Kontena::Machine::Aws::NodeRestarter.new(access_key, secret_key, region)
end