awsrm 0.2.0 → 0.3.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: 976c8d2e45a94a6163e43db6d5044b355072b8c9
4
- data.tar.gz: 7563888241911bf3ea66f5bd1ce2352bdedb6041
3
+ metadata.gz: 86f0c605e69441d6da297777d1b98f537481dfbf
4
+ data.tar.gz: 5ca6632d37b1ed91640298c0d61a9033bead58d5
5
5
  SHA512:
6
- metadata.gz: 1a4d35ec37e2a77c6f2bbd9b69e0a2c9df1ac26a9b63fa95c5c6707c0e22a7074d2bce57ec71bfe5ef52ceba4e11a71460074b498b8701c81a8289a56675fee3
7
- data.tar.gz: 34d3ded812ff526e952a10cb50eee2dddaa8d5b50ab0bbcce1c979c51d20e9fdacbf17c4ea2d6c77e9b123bed2b7e5dd2df98d289e66a3a47bae442cabdc1cc9
6
+ metadata.gz: 147042072ab06c7d69356524c0323f1f07fd69d3f72246940c837eb9b01e4c0b0f638567a700a5dbfa0897f885061db878d150f94547dc2f083d783d7c8832b0
7
+ data.tar.gz: afc88df4269db333b50101e12ab4ba21c08d148525afe174d940723c28931e8f0428f508597b41796b03830526cbce5fa8284f6d3ff7be167a5ec8d31185e97c
@@ -1,18 +1,46 @@
1
1
  # Resources
2
2
 
3
- [AutoscalingGroup](#autoscaling_group)
3
+ [Alb](#alb)
4
+ | [AlbListener](#alb_listener)
5
+ | [AutoscalingGroup](#autoscaling_group)
4
6
  | [Ec2](#ec2)
5
7
  | [RouteTable](#route_table)
6
8
  | [Subnet](#subnet)
7
9
  | [Vpc](#vpc)
8
10
  | [VpnConnection](#vpn_connection)
9
11
 
12
+ ## <a name="alb">Awsrm::Alb</a>
13
+
14
+ ### Filter
15
+
16
+ | key | replaced filter |
17
+ | - | - |
18
+ | id | `load_balancer_name` |
19
+ | arn | `load_balancer_arn` |
20
+ | name | `load_balancer_name` |
21
+ | dns_name | `dns_name` |
22
+ | tags | [`#<Proc>`](https://github.com/k1LoW/awsrm/blob/master/lib/awsrm/resources/alb.rb) |
23
+
24
+
25
+ ## <a name="alb_listener">Awsrm::AlbListener</a>
26
+
27
+ ### Filter
28
+
29
+ | key | replaced filter |
30
+ | - | - |
31
+ | id | `listener_arn` |
32
+ | arn | `listener_arn` |
33
+ | alb | [`#<Proc>`](https://github.com/k1LoW/awsrm/blob/master/lib/awsrm/resources/alb_listener.rb) |
34
+
35
+
10
36
  ## <a name="autoscaling_group">Awsrm::AutoscalingGroup</a>
11
37
 
12
38
  ### Filter
13
39
 
14
40
  | key | replaced filter |
15
41
  | - | - |
42
+ | id | [`#<Proc>`](https://github.com/k1LoW/awsrm/blob/master/lib/awsrm/resources/autoscaling_group.rb) |
43
+ | arn | [`#<Proc>`](https://github.com/k1LoW/awsrm/blob/master/lib/awsrm/resources/autoscaling_group.rb) |
16
44
  | name | [`#<Proc>`](https://github.com/k1LoW/awsrm/blob/master/lib/awsrm/resources/autoscaling_group.rb) |
17
45
  | tags | [`#<Proc>`](https://github.com/k1LoW/awsrm/blob/master/lib/awsrm/resources/autoscaling_group.rb) |
18
46
 
@@ -23,6 +51,8 @@
23
51
 
24
52
  | key | replaced filter |
25
53
  | - | - |
54
+ | id | `instance-id` |
55
+ | instance_id | `instance-id` |
26
56
  | name | `tag:Name` |
27
57
  | vpc_id | `vpc-id` |
28
58
  | vpc | [`#<Proc>`](https://github.com/k1LoW/awsrm/blob/master/lib/awsrm/resources/ec2.rb) |
@@ -34,6 +64,8 @@
34
64
 
35
65
  | key | replaced filter |
36
66
  | - | - |
67
+ | id | `route-table-id` |
68
+ | route_table_id | `route-table-id` |
37
69
  | name | `tag:Name` |
38
70
  | vpc_id | `vpc-id` |
39
71
  | vpc | [`#<Proc>`](https://github.com/k1LoW/awsrm/blob/master/lib/awsrm/resources/route_table.rb) |
@@ -45,6 +77,8 @@
45
77
 
46
78
  | key | replaced filter |
47
79
  | - | - |
80
+ | id | `subnet-id` |
81
+ | subnet_id | `subnet-id` |
48
82
  | name | `tag:Name` |
49
83
  | cidr | `cidrBlock` |
50
84
  | vpc_id | `vpc-id` |
@@ -57,6 +91,8 @@
57
91
 
58
92
  | key | replaced filter |
59
93
  | - | - |
94
+ | id | `vpc-id` |
95
+ | vpc_id | `vpc-id` |
60
96
  | name | `tag:Name` |
61
97
 
62
98
 
@@ -66,6 +102,8 @@
66
102
 
67
103
  | key | replaced filter |
68
104
  | - | - |
105
+ | id | `vpn-connection-id` |
106
+ | vpn_connection_id | `vpn-connection-id` |
69
107
  | name | `tag:Name` |
70
108
 
71
109
 
@@ -1,5 +1,7 @@
1
1
  require 'awsrm/error'
2
2
  require 'awsrm/resource'
3
+ require 'awsrm/resources/alb'
4
+ require 'awsrm/resources/alb_listener'
3
5
  require 'awsrm/resources/autoscaling_group'
4
6
  require 'awsrm/resources/ec2'
5
7
  require 'awsrm/resources/route_table'
@@ -0,0 +1,48 @@
1
+ module Awsrm
2
+ class Alb < Awsrm::Resource
3
+ FILTER_MAP = {
4
+ id: 'load_balancer_name',
5
+ arn: 'load_balancer_arn',
6
+ name: 'load_balancer_name',
7
+ dns_name: 'dns_name',
8
+ tags: ->(lb, value) { Alb.has_tags?(lb.load_balancer_arn, value) }
9
+ }.freeze
10
+
11
+ class << self
12
+ def all(params)
13
+ lbs = elbv2_client.describe_load_balancers.map do |responce|
14
+ responce.load_balancers
15
+ end.flatten
16
+ lbs.map do |lb|
17
+ ret = params.all? do |key, value|
18
+ raise UndefinedFilterParamError, key unless self::FILTER_MAP.key?(key)
19
+ next self::FILTER_MAP[key].call(lb, value) if self::FILTER_MAP[key].is_a?(Proc)
20
+ lb[self::FILTER_MAP[key]] == value
21
+ end
22
+ AlbReader.new(lb) if ret
23
+ end.compact
24
+ end
25
+
26
+ def filters(params) end
27
+
28
+ def has_tags?(arn, tag_hash)
29
+ tag_descriptions = elbv2_client.describe_tags(resource_arns: [arn]).tag_descriptions.flatten
30
+ ret = tag_descriptions.find do |desc|
31
+ desc.resource_arn == arn
32
+ end
33
+ return false if ret.nil?
34
+ tag_hash.all? do |key, value|
35
+ ret.tags.any? do |tag|
36
+ tag.key == key.to_s && tag.value == value.to_s
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
42
+
43
+ class AlbReader < Awsrm::ResourceReader
44
+ def id
45
+ @resource.load_balancer_name
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,33 @@
1
+ module Awsrm
2
+ class AlbListener < Awsrm::Resource
3
+ FILTER_MAP = {
4
+ id: 'listener_arn',
5
+ arn: 'listener_arn',
6
+ alb: ->(listener, value) { listener.load_balancer_arn == Awsrm::Alb.one(name: value).load_balancer_arn }
7
+ }.freeze
8
+
9
+ class << self
10
+ def all(params)
11
+ listeners = elbv2_client.describe_listeners.map do |responce|
12
+ responce.listeners
13
+ end.flatten
14
+ listeners.map do |listener|
15
+ ret = params.all? do |key, value|
16
+ raise UndefinedFilterParamError, key unless self::FILTER_MAP.key?(key)
17
+ next self::FILTER_MAP[key].call(listener, value) if self::FILTER_MAP[key].is_a?(Proc)
18
+ listener[self::FILTER_MAP[key]] == value
19
+ end
20
+ AlbListenerReader.new(listener) if ret
21
+ end.compact
22
+ end
23
+
24
+ def filters(params) end
25
+ end
26
+ end
27
+
28
+ class AlbListenerReader < Awsrm::ResourceReader
29
+ def id
30
+ @resource.listener_arn
31
+ end
32
+ end
33
+ end
@@ -1,6 +1,8 @@
1
1
  module Awsrm
2
2
  class AutoscalingGroup < Awsrm::Resource
3
3
  FILTER_MAP = {
4
+ id: ->(value) { [value] },
5
+ arn: ->(value) { [value.split('/').last] },
4
6
  name: ->(value) { [value] },
5
7
  tags: ->(value) { AutoscalingGroup.tags2names(value) }
6
8
  }.freeze
@@ -1,6 +1,8 @@
1
1
  module Awsrm
2
2
  class Ec2 < Awsrm::Resource
3
3
  FILTER_MAP = {
4
+ id: 'instance-id',
5
+ instance_id: 'instance-id',
4
6
  name: 'tag:Name',
5
7
  vpc_id: 'vpc-id',
6
8
  vpc: ->(value) { { name: 'vpc-id', values: [Awsrm::Vpc.one(name: value).id] } }
@@ -1,6 +1,8 @@
1
1
  module Awsrm
2
2
  class RouteTable < Awsrm::Resource
3
3
  FILTER_MAP = {
4
+ id: 'route-table-id',
5
+ route_table_id: 'route-table-id',
4
6
  name: 'tag:Name',
5
7
  vpc_id: 'vpc-id',
6
8
  vpc: ->(value) { { name: 'vpc-id', values: [Awsrm::Vpc.one(name: value).id] } }
@@ -1,6 +1,8 @@
1
1
  module Awsrm
2
2
  class Subnet < Awsrm::Resource
3
3
  FILTER_MAP = {
4
+ id: 'subnet-id',
5
+ subnet_id: 'subnet-id',
4
6
  name: 'tag:Name',
5
7
  cidr: 'cidrBlock',
6
8
  vpc_id: 'vpc-id',
@@ -1,6 +1,8 @@
1
1
  module Awsrm
2
2
  class Vpc < Awsrm::Resource
3
3
  FILTER_MAP = {
4
+ id: 'vpc-id',
5
+ vpc_id: 'vpc-id',
4
6
  name: 'tag:Name'
5
7
  }.freeze
6
8
 
@@ -1,6 +1,8 @@
1
1
  module Awsrm
2
2
  class VpnConnection < Awsrm::Resource
3
3
  FILTER_MAP = {
4
+ id: 'vpn-connection-id',
5
+ vpn_connection_id: 'vpn-connection-id',
4
6
  name: 'tag:Name'
5
7
  }.freeze
6
8
 
@@ -1,3 +1,3 @@
1
1
  module Awsrm
2
- VERSION = '0.2.0'.freeze
2
+ VERSION = '0.3.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.2.0
4
+ version: 0.3.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-07-27 00:00:00.000000000 Z
11
+ date: 2017-08-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk
@@ -180,6 +180,8 @@ files:
180
180
  - lib/awsrm/error.rb
181
181
  - lib/awsrm/generator/doc/resource.rb
182
182
  - lib/awsrm/resource.rb
183
+ - lib/awsrm/resources/alb.rb
184
+ - lib/awsrm/resources/alb_listener.rb
183
185
  - lib/awsrm/resources/autoscaling_group.rb
184
186
  - lib/awsrm/resources/ec2.rb
185
187
  - lib/awsrm/resources/route_table.rb