awsrm 0.2.0 → 0.3.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
  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