class Ec2ssh::Ec2Instances

Attributes

aws_keys[R]
ec2s[R]

Public Class Methods

expand_profile_name_to_credential(profile_name, region) click to toggle source
# File lib/ec2ssh/ec2_instances.rb, line 92
def self.expand_profile_name_to_credential(profile_name, region)
  client = Aws::STS::Client.new(profile: profile_name, region: region)
  client.config.credentials
end
new(aws_keys, filters) click to toggle source
# File lib/ec2ssh/ec2_instances.rb, line 61
def initialize(aws_keys, filters)
  @aws_keys = aws_keys
  @filters = filters
end

Public Instance Methods

instances(key_name) click to toggle source
# File lib/ec2ssh/ec2_instances.rb, line 82
def instances(key_name)
  aws_keys[key_name].each_key.map {|region|
    ec2s[key_name][region].instances(
      filters: @filters
    ).
    map {|ins| InstanceWrapper.new(ins) }.
    sort_by {|ins| ins.tag('Name').to_s }
  }.flatten
end
make_ec2s() click to toggle source
# File lib/ec2ssh/ec2_instances.rb, line 66
def make_ec2s
  _ec2s = {}
  aws_keys.each_pair do |name, keys|
    _ec2s[name] = {}
    keys.each_pair do |region, key|
      client = Aws::EC2::Client.new region: region, credentials: key
      _ec2s[name][region] = Aws::EC2::Resource.new client: client
    end
  end
  _ec2s
end