14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# File 'lib/ec2/host/client_util.rb', line 14
def self.instances(condition)
describe_instances =
if instance_id = condition[:instance_id]
ec2.describe_instances(instance_ids: Array(instance_id))
elsif role = (condition[:role] || condition[:usage]) and role.size == 1
ec2.describe_instances(filters: [{name: "tag:#{Config.roles_tag}", values: ["*#{role.first}*"]}])
elsif role1 = (condition[:role1] || condition[:usage1]) and role1.size == 1
ec2.describe_instances(filters: [{name: "tag:#{Config.roles_tag}", values: ["*#{role1.first}*"]}])
elsif role2 = (condition[:role2] || condition[:usage2]) and role2.size == 1
ec2.describe_instances(filters: [{name: "tag:#{Config.roles_tag}", values: ["*#{role2.first}*"]}])
elsif role3 = (condition[:role3] || condition[:usage3]) and role3.size == 1
ec2.describe_instances(filters: [{name: "tag:#{Config.roles_tag}", values: ["*#{role3.first}*"]}])
else
ec2.describe_instances
end
describe_instances.reservations.map(&:instances).flatten
end
|