awsrm 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +3 -0
- data/doc/resources.md +16 -0
- data/lib/awsrm.rb +1 -0
- data/lib/awsrm/resources/alb.rb +2 -1
- data/lib/awsrm/resources/alb_target_group.rb +43 -0
- data/lib/awsrm/resources/ec2.rb +5 -1
- data/lib/awsrm/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e5c3037e263dabefca2dc8f867304a61564fc7f3
|
4
|
+
data.tar.gz: 43b4f6fdd3df7a0923054f703002983e400d1beb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 48d2b8b8c1626beeff00817f6fabf2e729ed122acc75244690b7c7fe414f8d772acfadd873533132c722235bbb85c55114ae245c5483839546b56e461012b5c9
|
7
|
+
data.tar.gz: 9c1aeb352fd1f3fc56b45a1d8d049ca418856179cc37ac516a7304439df0caf3c82a0c33daeb93051902f02c6e959086368ecde1aa946de0548d3357602e8071
|
data/.rubocop.yml
CHANGED
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'
|
data/lib/awsrm/resources/alb.rb
CHANGED
@@ -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
|
data/lib/awsrm/resources/ec2.rb
CHANGED
@@ -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
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.
|
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-
|
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
|