Module: Awspec::Helper::Finder::Ec2

Included in:
Awspec::Helper::Finder
Defined in:
lib/awspec/helper/finder/ec2.rb

Instance Method Summary collapse

Instance Method Details

#find_ec2(id) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/awspec/helper/finder/ec2.rb', line 4

def find_ec2(id)
  # instance_id or tag:Name
  begin
    res = ec2_client.describe_instances({
                                          instance_ids: [id]
                                        })
  rescue
    # Aws::EC2::Errors::InvalidInstanceIDMalformed
    # Aws::EC2::Errors::InvalidInstanceIDNotFound
    res = ec2_client.describe_instances({
                                          filters: [{ name: 'tag:Name', values: [id] }]
                                        })
  end
  # rubocop:enable Style/GuardClause
  res.reservations.first.instances.single_resource(id) if res.reservations.count == 1
end

#find_ec2_attribute(id, attribute) ⇒ Object



21
22
23
24
25
# File 'lib/awspec/helper/finder/ec2.rb', line 21

def find_ec2_attribute(id, attribute)
  res = ec2_client.describe_instance_attribute({
                                                 instance_id: id, attribute: attribute
                                               })
end

#find_ec2_status(id) ⇒ Object



27
28
29
30
31
32
# File 'lib/awspec/helper/finder/ec2.rb', line 27

def find_ec2_status(id)
  res = ec2_client.describe_instance_status({
                                              instance_ids: [id]
                                            })
  res.instance_statuses.first if res.instance_statuses.count == 1
end

#find_nat_gateway(gateway_id) ⇒ Object



52
53
54
55
56
57
# File 'lib/awspec/helper/finder/ec2.rb', line 52

def find_nat_gateway(gateway_id)
  res = ec2_client.describe_nat_gateways({
                                           filter: [{ name: 'nat-gateway-id', values: [gateway_id] }]
                                         })
  res.nat_gateways.single_resource(gateway_id)
end

#find_network_interface(interface_id) ⇒ Object



59
60
61
62
63
64
65
66
67
68
69
# File 'lib/awspec/helper/finder/ec2.rb', line 59

def find_network_interface(interface_id)
  res = ec2_client.describe_network_interfaces({
                                                 filters: [
                                                   {
                                                     name: 'network-interface-id',
                                                     values: [interface_id]
                                                   }
                                                 ]
                                               })
  res.network_interfaces.single_resource(interface_id)
end

#select_ec2_by_vpc_id(vpc_id) ⇒ Object



71
72
73
74
75
76
77
78
79
80
81
82
# File 'lib/awspec/helper/finder/ec2.rb', line 71

def select_ec2_by_vpc_id(vpc_id)
  res = ec2_client.describe_instances({
                                        filters: [{ name: 'vpc-id', values: [vpc_id] }]
                                      })
  instances = []
  res.reservations.each do |reservation|
    reservation.instances.each do |instance|
      instances.push(instance)
    end
  end
  instances
end

#select_eip_by_instance_id(id) ⇒ Object



84
85
86
87
88
89
# File 'lib/awspec/helper/finder/ec2.rb', line 84

def select_eip_by_instance_id(id)
  res = ec2_client.describe_addresses({
                                        filters: [{ name: 'instance-id', values: [id] }]
                                      })
  res.addresses
end

#select_nat_gateway_by_vpc_id(vpc_id) ⇒ Object



91
92
93
94
95
96
# File 'lib/awspec/helper/finder/ec2.rb', line 91

def select_nat_gateway_by_vpc_id(vpc_id)
  res = ec2_client.describe_nat_gateways({
                                           filter: [{ name: 'vpc-id', values: [vpc_id] }]
                                         })
  res.nat_gateways
end

#select_network_interface_by_vpc_id(vpc_id) ⇒ Object



98
99
100
101
102
103
# File 'lib/awspec/helper/finder/ec2.rb', line 98

def select_network_interface_by_vpc_id(vpc_id)
  res = ec2_client.describe_network_interfaces({
                                                 filters: [{ name: 'vpc-id', values: [vpc_id] }]
                                               })
  res.network_interfaces
end