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