class Kontena::Machine::Aws::NodeRestarter
Attributes
api_client[R]
ec2[R]
Public Class Methods
new(access_key_id, secret_key, region)
click to toggle source
@param [String] access_key_id aws_access_key_id @param [String] secret_key aws_secret_access_key @param [String] region
# File lib/kontena/machine/aws/node_restarter.rb, line 13 def initialize(access_key_id, secret_key, region) @ec2 = ::Aws::EC2::Resource.new( region: region, credentials: ::Aws::Credentials.new(access_key_id, secret_key) ) end
Public Instance Methods
run!(name)
click to toggle source
# File lib/kontena/machine/aws/node_restarter.rb, line 19 def run!(name) instances = ec2.instances({ filters: [ {name: 'tag:Name', values: [name]} ] }) abort("Cannot find AWS instance #{name}") if instances.to_a.size == 0 abort("There are multiple instances with name #{name}") if instances.to_a.size > 1 instance = instances.first if instance spinner "Restarting AWS instance #{name.colorize(:cyan)} " do instance.reboot(dry_run: false) end else abort "Cannot find instance #{name.colorize(:cyan)} in AWS" end end