awsrm 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 86f0c605e69441d6da297777d1b98f537481dfbf
4
- data.tar.gz: 5ca6632d37b1ed91640298c0d61a9033bead58d5
3
+ metadata.gz: e5c3037e263dabefca2dc8f867304a61564fc7f3
4
+ data.tar.gz: 43b4f6fdd3df7a0923054f703002983e400d1beb
5
5
  SHA512:
6
- metadata.gz: 147042072ab06c7d69356524c0323f1f07fd69d3f72246940c837eb9b01e4c0b0f638567a700a5dbfa0897f885061db878d150f94547dc2f083d783d7c8832b0
7
- data.tar.gz: afc88df4269db333b50101e12ab4ba21c08d148525afe174d940723c28931e8f0428f508597b41796b03830526cbce5fa8284f6d3ff7be167a5ec8d31185e97c
6
+ metadata.gz: 48d2b8b8c1626beeff00817f6fabf2e729ed122acc75244690b7c7fe414f8d772acfadd873533132c722235bbb85c55114ae245c5483839546b56e461012b5c9
7
+ data.tar.gz: 9c1aeb352fd1f3fc56b45a1d8d049ca418856179cc37ac516a7304439df0caf3c82a0c33daeb93051902f02c6e959086368ecde1aa946de0548d3357602e8071
data/.rubocop.yml CHANGED
@@ -47,6 +47,9 @@ Style/ClassAndModuleChildren:
47
47
  Style/Documentation:
48
48
  Enabled: false
49
49
 
50
+ Style/Lambda:
51
+ Enabled: false
52
+
50
53
  Style/MethodMissing:
51
54
  Enabled: false
52
55
 
data/doc/resources.md CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  [Alb](#alb)
4
4
  | [AlbListener](#alb_listener)
5
+ | [AlbTargetGroup](#alb_target_group)
5
6
  | [AutoscalingGroup](#autoscaling_group)
6
7
  | [Ec2](#ec2)
7
8
  | [RouteTable](#route_table)
@@ -20,6 +21,7 @@
20
21
  | name | `load_balancer_name` |
21
22
  | dns_name | `dns_name` |
22
23
  | tags | [`#<Proc>`](https://github.com/k1LoW/awsrm/blob/master/lib/awsrm/resources/alb.rb) |
24
+ | vpc | [`#<Proc>`](https://github.com/k1LoW/awsrm/blob/master/lib/awsrm/resources/alb.rb) |
23
25
 
24
26
 
25
27
  ## <a name="alb_listener">Awsrm::AlbListener</a>
@@ -33,6 +35,19 @@
33
35
  | alb | [`#<Proc>`](https://github.com/k1LoW/awsrm/blob/master/lib/awsrm/resources/alb_listener.rb) |
34
36
 
35
37
 
38
+ ## <a name="alb_target_group">Awsrm::AlbTargetGroup</a>
39
+
40
+ ### Filter
41
+
42
+ | key | replaced filter |
43
+ | - | - |
44
+ | id | `target_group_name` |
45
+ | arn | `target_group_arn` |
46
+ | name | `target_group_name` |
47
+ | alb | [`#<Proc>`](https://github.com/k1LoW/awsrm/blob/master/lib/awsrm/resources/alb_target_group.rb) |
48
+ | vpc | [`#<Proc>`](https://github.com/k1LoW/awsrm/blob/master/lib/awsrm/resources/alb_target_group.rb) |
49
+
50
+
36
51
  ## <a name="autoscaling_group">Awsrm::AutoscalingGroup</a>
37
52
 
38
53
  ### Filter
@@ -56,6 +71,7 @@
56
71
  | name | `tag:Name` |
57
72
  | vpc_id | `vpc-id` |
58
73
  | vpc | [`#<Proc>`](https://github.com/k1LoW/awsrm/blob/master/lib/awsrm/resources/ec2.rb) |
74
+ | alb_target_group | [`#<Proc>`](https://github.com/k1LoW/awsrm/blob/master/lib/awsrm/resources/ec2.rb) |
59
75
 
60
76
 
61
77
  ## <a name="route_table">Awsrm::RouteTable</a>
data/lib/awsrm.rb CHANGED
@@ -2,6 +2,7 @@ require 'awsrm/error'
2
2
  require 'awsrm/resource'
3
3
  require 'awsrm/resources/alb'
4
4
  require 'awsrm/resources/alb_listener'
5
+ require 'awsrm/resources/alb_target_group'
5
6
  require 'awsrm/resources/autoscaling_group'
6
7
  require 'awsrm/resources/ec2'
7
8
  require 'awsrm/resources/route_table'
@@ -5,7 +5,8 @@ module Awsrm
5
5
  arn: 'load_balancer_arn',
6
6
  name: 'load_balancer_name',
7
7
  dns_name: 'dns_name',
8
- tags: ->(lb, value) { Alb.has_tags?(lb.load_balancer_arn, value) }
8
+ tags: ->(lb, value) { Alb.has_tags?(lb.load_balancer_arn, value) },
9
+ vpc: ->(lb, value) { lb.vpc_id == Awsrm::Vpc.one(name: value).id }
9
10
  }.freeze
10
11
 
11
12
  class << self
@@ -0,0 +1,43 @@
1
+ module Awsrm
2
+ class AlbTargetGroup < Awsrm::Resource
3
+ FILTER_MAP = {
4
+ id: 'target_group_name',
5
+ arn: 'target_group_arn',
6
+ name: 'target_group_name',
7
+ alb: ->(target, value) { target.load_balancer_arns.include?(Awsrm::Alb.one(name: value).load_balancer_arn) },
8
+ vpc: ->(target, value) { target.vpc_id == Awsrm::Vpc.one(name: value).id }
9
+ }.freeze
10
+
11
+ class << self
12
+ def all(params)
13
+ target_groups = elbv2_client.describe_target_groups.map do |responce|
14
+ responce.target_groups
15
+ end.flatten
16
+ target_groups.map do |target|
17
+ ret = params.all? do |key, value|
18
+ raise UndefinedFilterParamError, key unless self::FILTER_MAP.key?(key)
19
+ next self::FILTER_MAP[key].call(target, value) if self::FILTER_MAP[key].is_a?(Proc)
20
+ target[self::FILTER_MAP[key]] == value
21
+ end
22
+ AlbTargetGroupReader.new(target) if ret
23
+ end.compact
24
+ end
25
+
26
+ def filters(params) end
27
+ end
28
+ end
29
+
30
+ class AlbTargetGroupReader < Awsrm::ResourceReader
31
+ def id
32
+ @resource.target_group_name
33
+ end
34
+
35
+ def instance_ids
36
+ Awsrm::Resource.elbv2_client.describe_target_health(
37
+ target_group_arn: @resource.target_group_arn
38
+ ).target_health_descriptions.map do |desc|
39
+ desc.target.id
40
+ end
41
+ end
42
+ end
43
+ end
@@ -5,7 +5,11 @@ module Awsrm
5
5
  instance_id: 'instance-id',
6
6
  name: 'tag:Name',
7
7
  vpc_id: 'vpc-id',
8
- vpc: ->(value) { { name: 'vpc-id', values: [Awsrm::Vpc.one(name: value).id] } }
8
+ vpc: ->(value) { { name: 'vpc-id', values: [Awsrm::Vpc.one(name: value).id] } },
9
+ alb_target_group: ->(value) do
10
+ { name: 'instance-id',
11
+ values: Awsrm::AlbTargetGroup.one(name: value).instance_ids }
12
+ end
9
13
  }.freeze
10
14
 
11
15
  class << self
data/lib/awsrm/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Awsrm
2
- VERSION = '0.3.0'.freeze
2
+ VERSION = '0.4.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: awsrm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - k1LoW
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-08-02 00:00:00.000000000 Z
11
+ date: 2017-08-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk
@@ -182,6 +182,7 @@ files:
182
182
  - lib/awsrm/resource.rb
183
183
  - lib/awsrm/resources/alb.rb
184
184
  - lib/awsrm/resources/alb_listener.rb
185
+ - lib/awsrm/resources/alb_target_group.rb
185
186
  - lib/awsrm/resources/autoscaling_group.rb
186
187
  - lib/awsrm/resources/ec2.rb
187
188
  - lib/awsrm/resources/route_table.rb