Class: Ec2list::Instances
- Inherits:
-
Object
- Object
- Ec2list::Instances
- Defined in:
- lib/ec2list.rb
Instance Method Summary collapse
- #all_instances ⇒ Object
- #display_columns ⇒ Object
- #ec2 ⇒ Object
- #filter ⇒ Object
-
#initialize(opts) ⇒ Instances
constructor
A new instance of Instances.
- #instance_list ⇒ Object
- #instances ⇒ Object
- #reservations ⇒ Object
- #result ⇒ Object
- #values(keys) ⇒ Object
Constructor Details
#initialize(opts) ⇒ Instances
Returns a new instance of Instances.
8 9 10 11 12 13 14 |
# File 'lib/ec2list.rb', line 8 def initialize(opts) @profile = opts[:profile] @status = opts[:status] @tag = opts[:tag] Aws.config[:region] = opts[:region] Aws.config[:credentials] = Aws::SharedCredentials.new(profile_name: @profile) end |
Instance Method Details
#all_instances ⇒ Object
50 51 52 |
# File 'lib/ec2list.rb', line 50 def all_instances reservations.map { |x| x.instances }.flatten.map { |ec2| Instance.new ec2 } end |
#display_columns ⇒ Object
26 27 28 |
# File 'lib/ec2list.rb', line 26 def display_columns %i(id type tag status fqdn ip_addr private_addr since) end |
#ec2 ⇒ Object
16 17 18 |
# File 'lib/ec2list.rb', line 16 def ec2 @ec2 ||= Aws::EC2::Client.new end |
#filter ⇒ Object
54 55 56 57 58 59 60 61 62 63 |
# File 'lib/ec2list.rb', line 54 def filter if @status { name: 'instance-state-name', values: [@status] } else {} end end |
#instance_list ⇒ Object
30 31 32 |
# File 'lib/ec2list.rb', line 30 def instance_list instances.sort_by(&:tag) end |
#instances ⇒ Object
42 43 44 45 46 47 48 |
# File 'lib/ec2list.rb', line 42 def instances if @tag all_instances.select { |instance| instance.cont?(@tag) } else all_instances end end |
#reservations ⇒ Object
38 39 40 |
# File 'lib/ec2list.rb', line 38 def reservations ec2.describe_instances(filters: [filter]).reservations end |
#result ⇒ Object
20 21 22 23 24 |
# File 'lib/ec2list.rb', line 20 def result instances.map { |instance| display_columns.zip(display_columns.map { |col| instance.send(col) }).to_h } end |
#values(keys) ⇒ Object
34 35 36 |
# File 'lib/ec2list.rb', line 34 def values(keys) result.map { |x| keys.map { |k| x[k] }.join (' ') }.compact.sort end |