Class: EC2Ctl::Client
- Inherits:
-
Object
- Object
- EC2Ctl::Client
- Defined in:
- lib/ec2ctl/client.rb
Instance Method Summary collapse
-
#initialize(config = {}) ⇒ Client
constructor
A new instance of Client.
- #instance_infos(attributes = [], search = {}) ⇒ Object
Constructor Details
#initialize(config = {}) ⇒ Client
Returns a new instance of Client.
5 6 7 |
# File 'lib/ec2ctl/client.rb', line 5 def initialize(config = {}) @ec2_resource = Aws::EC2::Resource.new(config) end |
Instance Method Details
#instance_infos(attributes = [], search = {}) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/ec2ctl/client.rb', line 9 def instance_infos(attributes = [], search = {}) @ec2_resource.instances.inject Array.new do |acc, instance| instance_info = attributes.inject Hash.new do |acc, attribute| acc[attribute] = case attribute when /\Atag:/i instance..find {|tag| tag.key == attribute.split(":").last}.value else attribute.split(".").map(&:intern).inject instance.data do |acc, method| acc.send method end end acc end if search.empty? acc.push instance_info else acc.push instance_info if search.all? {|sk, sv| instance_info[sk].match Regexp.new(sv)} end acc end end |