Module: Awspec::Helper::Finder::Ec2
- Included in:
- Awspec::Helper::Finder
- Defined in:
- lib/awspec/helper/finder/ec2.rb
Instance Method Summary collapse
- #find_ec2(id) ⇒ Object
- #find_ec2_attribute(id, attribute) ⇒ Object
- #find_nat_gateway(gateway_id) ⇒ Object
- #find_security_group(sg_id) ⇒ Object
- #select_ec2_by_vpc_id(vpc_id) ⇒ Object
- #select_eip_by_instance_id(id) ⇒ Object
- #select_nat_gateway_by_vpc_id(vpc_id) ⇒ Object
Instance Method Details
#find_ec2(id) ⇒ Object
4 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 |
# File 'lib/awspec/helper/finder/ec2.rb', line 4 def find_ec2(id) if id.is_a?(Array) # Aws::EC2::Client.describe_instances native filters format res = ec2_client.describe_instances({ filters: id }) elsif id.is_a?(Hash) # syntax sugar filters = [] id.each do |k, v| filters.push({ name: k, values: Array(v) }) end res = ec2_client.describe_instances({ filters: filters }) elsif id.is_a?(String) # 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 else return nil end return res[:reservations].first[:instances].first if res[:reservations].count == 1 && \ res[:reservations].first[:instances].count == 1 end |
#find_ec2_attribute(id, attribute) ⇒ Object
39 40 41 42 43 |
# File 'lib/awspec/helper/finder/ec2.rb', line 39 def find_ec2_attribute(id, attribute) res = ec2_client.describe_instance_attribute({ instance_id: id, attribute: attribute }) end |
#find_nat_gateway(gateway_id) ⇒ Object
63 64 65 66 67 68 |
# File 'lib/awspec/helper/finder/ec2.rb', line 63 def find_nat_gateway(gateway_id) res = ec2_client.describe_nat_gateways({ filter: [{ name: 'nat-gateway-id', values: [gateway_id] }] }) return res['nat_gateways'].first if res['nat_gateways'].count == 1 end |
#find_security_group(sg_id) ⇒ Object
70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/awspec/helper/finder/ec2.rb', line 70 def find_security_group(sg_id) res = ec2_client.describe_security_groups({ filters: [{ name: 'group-id', values: [sg_id] }] }) return res[:security_groups].first if res[:security_groups].count == 1 res = ec2_client.describe_security_groups({ filters: [{ name: 'group-name', values: [sg_id] }] }) return res[:security_groups].first if res[:security_groups].count == 1 res = ec2_client.describe_security_groups({ filters: [{ name: 'tag:Name', values: [sg_id] }] }) return res[:security_groups].first if res[:security_groups].count == 1 end |
#select_ec2_by_vpc_id(vpc_id) ⇒ Object
85 86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'lib/awspec/helper/finder/ec2.rb', line 85 def select_ec2_by_vpc_id(vpc_id) res = ec2_client.describe_instances({ filters: [{ name: 'vpc-id', values: [vpc_id] }] }) instances = [] return instances unless res[:reservations].count > 0 res[:reservations].each do |reservation| reservation.instances.each do |instance| instances.push(instance) end end instances end |
#select_eip_by_instance_id(id) ⇒ Object
99 100 101 102 103 104 105 |
# File 'lib/awspec/helper/finder/ec2.rb', line 99 def select_eip_by_instance_id(id) res = ec2_client.describe_addresses({ filters: [{ name: 'instance-id', values: [id] }] }) return [] unless res[:addresses].count > 0 res[:addresses] end |
#select_nat_gateway_by_vpc_id(vpc_id) ⇒ Object
107 108 109 110 111 112 |
# File 'lib/awspec/helper/finder/ec2.rb', line 107 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 |