Class: AWSEdges::EC2

Inherits:
Object
  • Object
show all
Defined in:
lib/aws-edges/ec2.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(describe_instances) ⇒ EC2

Returns a new instance of EC2.



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/aws-edges/ec2.rb', line 5

def initialize(describe_instances)
  @nodes = Array.new
  describe_instances[:reservation_set].each{|r| r[:instances_set].each{|i|
    @nodes.push({
      :instance_id => i[:instance_id],
      :instance_type => i[:instance_type],
      :kernel_id => i[:kernel_id],
      :ramdisk_id => i[:ramdisk_id],
      :architecture => i[:architecture],
      :ebs_optimized => i[:ebs_optimized],
      :root_device_type => i[:root_device_type],
      :root_device_name => i[:root_device_name],
      :virtualization_type => i[:virtualization_type],
      :hypervisor => i[:hypervisor],
      :source_dest_check => i[:source_dest_check],
      :image_id => i[:image_id],
      :vpc_id => i[:vpc_id],
      :subnet_id => i[:subnet_id],
      :public_dns_name => i[:dns_name],
      :public_ip_address => i[:ip_address],
      :private_dns_name => i[:private_dns_name],
      :private_ip_address => i[:private_ip_address],
      :availability_zone => i[:placement][:availability_zone],
      :security_groups => []
    })

    security_groups = Array.new
    i[:group_set].each{|g|
      security_groups.push({
        :group_name => g[:group_name],
        :group_id => g[:group_id]
      })
    }
    @nodes[@nodes.length - 1][:security_groups] = security_groups
  }}
end

Instance Attribute Details

#nodesObject (readonly)

Returns the value of attribute nodes.



3
4
5
# File 'lib/aws-edges/ec2.rb', line 3

def nodes
  @nodes
end

Class Method Details

.supported_fieldsObject



42
43
44
45
46
47
48
49
50
51
# File 'lib/aws-edges/ec2.rb', line 42

def self.supported_fields
  [
    "instance_id", "kernel_id", "ramdisk_id", "architecture",
    "ebs_optimized", "root_device_type", "root_device_name",
    "virtualization_type", "hypervisor", "source_dest_check", "image_id", "vpc_id",
    "subnet_id", "public_dns_name", "public_ip_address", "private_dns_name", 
    "private_ip_address", "availability_zone", "security_groups-group_name",
    "security_groups-group_id"
  ]
end