aws_ro 1.3.0 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e9ab865e5261c7f9598f2ecf824e3ba8baa851710f0fca6f68b2f15da226e30f
4
- data.tar.gz: 277c50739ed9e3f327874760be5007053e13a2b1444452d1a42820dbae40388d
3
+ metadata.gz: f69abfa68475c2fdc49264fd493e59bb33a8deefd64a33035baab3f25328fc2d
4
+ data.tar.gz: 6d5ca9ac20e1026f6a0571ba14d770450a10fe2d7abf853b3282fff498f4f1de
5
5
  SHA512:
6
- metadata.gz: 25dbefe6fa03dd1ac6c509ab2a15e48a908f3bc96762fcd666287458efb0f7fe9c22edd8a3eb7259e7d597f78ac71cc26b5bc889cc0a3b243af08bb00b236054
7
- data.tar.gz: 519ca583aad89b6ce36589329d81cd546b9af3dcc70f64baf06e5ffebce4d89a818cdcd48516cfaee60546857029989574cbf9f1036a69ec6f1ebeea12a9080f
6
+ metadata.gz: d627763b753232627cf12369423e6dce193bb82acd5850d39fdaf1e937d375b4ae0bbb6db4de25bcfac4e5e9588cc928959cc892f13163e8407e9fcdf9a20d7b
7
+ data.tar.gz: 99f6d3d582d87bb3289e6245600ab740cc218f84ddf096823cdbedf31c32b48fab9b00fa6fdc57a438c42ae4637a807b5cac810b3903f3790bb44e24698d4c73
@@ -74,6 +74,7 @@ module AwsRo
74
74
  attr_reader :client, :target_group_arn
75
75
  alias arn target_group_arn
76
76
  alias name target_group_name
77
+ alias type target_type
77
78
 
78
79
  def initialize(arn, client)
79
80
  @target_group_arn = arn
@@ -89,12 +90,32 @@ module AwsRo
89
90
  @target_group ||= client.describe_target_groups(target_group_arns: [arn]).target_groups.first
90
91
  end
91
92
 
93
+ def target_type
94
+ @target_type ||= target_group.target_type
95
+ end
96
+
92
97
  def instances(ec2_repository = nil)
98
+ return [] if health_descriptions.empty?
99
+
100
+ case type
101
+ when 'instance','ip'
102
+ ec2_instances(ec2_repository)
103
+ when 'lambda'
104
+ health_descriptions.values.map(&:target)
105
+ else
106
+ raise "Unsupported target-type: #{type}"
107
+ end
108
+ end
109
+
110
+ def ec2_instances(ec2_repository = nil)
93
111
  ec2_repository ||= AwsRo::EC2::Repository.new(
94
112
  region: client.config.region,
95
113
  credentials: client.config.credentials
96
114
  )
97
- health_descriptions.empty? ? [] : ec2_repository.instance_ids(health_descriptions.keys)
115
+ case type
116
+ when 'instance' then ec2_repository.instance_ids(health_descriptions.keys)
117
+ when 'ip' then ec2_repository.filters([{ name: 'network-interface.addresses.private-ip-address', values: health_descriptions.keys }])
118
+ end
98
119
  end
99
120
 
100
121
  private
@@ -1,3 +1,3 @@
1
1
  module AwsRo
2
- VERSION = "1.3.0"
2
+ VERSION = "1.4.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws_ro
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - takuto.komazaki
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-02-18 00:00:00.000000000 Z
11
+ date: 2019-11-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-ec2
@@ -201,7 +201,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
201
201
  - !ruby/object:Gem::Version
202
202
  version: '0'
203
203
  requirements: []
204
- rubygems_version: 3.0.1
204
+ rubygems_version: 3.0.3
205
205
  signing_key:
206
206
  specification_version: 4
207
207
  summary: Wrpper library of AWS SDK objects.