awspec 0.84.0 → 0.84.1
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 +4 -4
- data/doc/_resource_types/alb_target_group.md +1 -1
- data/doc/_resource_types/autoscaling_group.md +7 -0
- data/doc/_resource_types/waf_web_acl.md +1 -1
- data/doc/resource_types.md +28 -0
- data/lib/awspec/generator/template.rb +1 -1
- data/lib/awspec/helper/finder/autoscaling.rb +7 -0
- data/lib/awspec/stub/autoscaling_group.rb +114 -0
- data/lib/awspec/type/autoscaling_group.rb +12 -4
- data/lib/awspec/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8913ea708bc0bd8af01f1197bc1d8783a41d9bb4
|
4
|
+
data.tar.gz: d1697374a5411d9659e057886609fc00f4f5d63e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ab84648f8284d3391d546958f5fd3c171e7ecbb30b72daab9b7e8049a104663683c1d228e2080d5f57cc04299e65f1982e8c97e678d084ac53aad1a46d907686
|
7
|
+
data.tar.gz: 0b9178cdcf47a9046ca84ef6e003f08679820c9d38ae77ead3810423ac59b4ff562382fc53be34a981d8903d29991228778005d6ace259d273a510d2daa17c24
|
@@ -5,6 +5,13 @@ describe autoscaling_group('my-auto-scaling-group') do
|
|
5
5
|
it { should exist }
|
6
6
|
end
|
7
7
|
```
|
8
|
+
### have_alb_target_group
|
9
|
+
|
10
|
+
```ruby
|
11
|
+
describe autoscaling_group('my-auto-scaling-group') do
|
12
|
+
it { should have_alb_target_group('my-alb-target-group') }
|
13
|
+
end
|
14
|
+
```
|
8
15
|
|
9
16
|
### have_ec2
|
10
17
|
|
data/doc/resource_types.md
CHANGED
@@ -162,6 +162,16 @@ AlbTargetGroup resource type.
|
|
162
162
|
|
163
163
|
### exist
|
164
164
|
|
165
|
+
```ruby
|
166
|
+
describe alb_target_group('my-alb-target-group') do
|
167
|
+
it { should exist }
|
168
|
+
its(:health_check_path) { should eq '/' }
|
169
|
+
its(:health_check_port) { should eq 'traffic-port' }
|
170
|
+
its(:health_check_protocol) { should eq 'HTTP' }
|
171
|
+
end
|
172
|
+
```
|
173
|
+
|
174
|
+
|
165
175
|
### have_ec2
|
166
176
|
|
167
177
|
```ruby
|
@@ -231,6 +241,14 @@ describe autoscaling_group('my-auto-scaling-group') do
|
|
231
241
|
end
|
232
242
|
```
|
233
243
|
|
244
|
+
### have_alb_target_group
|
245
|
+
|
246
|
+
```ruby
|
247
|
+
describe autoscaling_group('my-auto-scaling-group') do
|
248
|
+
it { should have_alb_target_group('my-alb-target-group') }
|
249
|
+
end
|
250
|
+
```
|
251
|
+
|
234
252
|
|
235
253
|
### have_ec2
|
236
254
|
|
@@ -2529,6 +2547,16 @@ WafWebAcl resource type.
|
|
2529
2547
|
|
2530
2548
|
### exist
|
2531
2549
|
|
2550
|
+
```ruby
|
2551
|
+
describe waf_web_acl('my-waf-web-acl') do
|
2552
|
+
it { should exist }
|
2553
|
+
its(:default_action) { should eq 'BLOCK' }
|
2554
|
+
it { should have_rule('my-waf-web-acl-allowed-ips') }
|
2555
|
+
it { should have_rule('my-waf-web-acl-allowed-ips').order(2).action('BLOCK') }
|
2556
|
+
end
|
2557
|
+
```
|
2558
|
+
|
2559
|
+
|
2532
2560
|
### have_rule
|
2533
2561
|
|
2534
2562
|
```ruby
|
@@ -15,6 +15,13 @@ module Awspec::Helper
|
|
15
15
|
res.launch_configurations.single_resource(id)
|
16
16
|
end
|
17
17
|
|
18
|
+
def select_alb_target_group_by_autoscaling_group_name(name)
|
19
|
+
res = autoscaling_client.describe_load_balancer_target_groups({
|
20
|
+
auto_scaling_group_name: name
|
21
|
+
})
|
22
|
+
res.load_balancer_target_groups
|
23
|
+
end
|
24
|
+
|
18
25
|
def find_block_device_mapping(id, device_id)
|
19
26
|
ret = find_launch_configuration(id).block_device_mappings.select do |device|
|
20
27
|
next true if device.device_name == device_id
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# rubocop:disable Metrics/LineLength
|
1
2
|
Aws.config[:autoscaling] = {
|
2
3
|
stub_responses: {
|
3
4
|
describe_auto_scaling_groups: {
|
@@ -71,6 +72,119 @@ Aws.config[:autoscaling] = {
|
|
71
72
|
value: 'WebServer'
|
72
73
|
}
|
73
74
|
]
|
75
|
+
},
|
76
|
+
describe_load_balancer_target_groups: {
|
77
|
+
load_balancer_target_groups: [
|
78
|
+
{
|
79
|
+
load_balancer_target_group_arn: 'arn:aws:elasticloadbalancing:ap-northeast-1:1234567890:123456789012:targetgroup/73e2d6bc24d8a067/73e2d6bc24d8a067',
|
80
|
+
state: 'Added'
|
81
|
+
}
|
82
|
+
]
|
83
|
+
}
|
84
|
+
}
|
85
|
+
}
|
86
|
+
|
87
|
+
Aws.config[:elasticloadbalancingv2] = {
|
88
|
+
stub_responses: {
|
89
|
+
describe_load_balancers: {
|
90
|
+
load_balancers: [
|
91
|
+
{
|
92
|
+
load_balancer_arn:
|
93
|
+
'arn:aws:elasticloadbalancing:ap-northeast-1:1234567890:loadbalancer/app/my-alb/1aa1bb1cc1ddee11',
|
94
|
+
dns_name:
|
95
|
+
'internal-my-elb-1551266724.ap-northeast-1.elb.amazonaws.com',
|
96
|
+
canonical_hosted_zone_id: 'A12BCDEDCBA34BC',
|
97
|
+
created_time: Time.new(2017, 4, 4, 9, 00, 00, '+00:00'),
|
98
|
+
load_balancer_name: 'my-alb',
|
99
|
+
scheme: 'internal',
|
100
|
+
vpc_id: 'vpc-ab123cde',
|
101
|
+
state:
|
102
|
+
{
|
103
|
+
code: 'active',
|
104
|
+
reason: nil
|
105
|
+
},
|
106
|
+
type: 'application',
|
107
|
+
availability_zones:
|
108
|
+
[
|
109
|
+
{
|
110
|
+
zone_name: 'ap-northeast-1a',
|
111
|
+
subnet_id: 'subnet-1234a567'
|
112
|
+
},
|
113
|
+
{
|
114
|
+
zone_name: 'ap-northeast-1c',
|
115
|
+
subnet_id: 'subnet-abcd7890'
|
116
|
+
}
|
117
|
+
],
|
118
|
+
security_groups: ['sg-1a2b3cd4'],
|
119
|
+
ip_address_type: 'ipv4'
|
120
|
+
}
|
121
|
+
],
|
122
|
+
next_marker: nil
|
123
|
+
},
|
124
|
+
describe_listeners: {
|
125
|
+
listeners: [
|
126
|
+
{
|
127
|
+
default_actions: [
|
128
|
+
{
|
129
|
+
target_group_arn: 'arn:aws:elasticloadbalancing:ap-northeast-1:1234567890:targetgroup/my-targets/73e2d6bc24d8a067',
|
130
|
+
type: 'forward'
|
131
|
+
}
|
132
|
+
],
|
133
|
+
listener_arn: 'arn:aws:elasticloadbalancing:ap-northeast-1:1234567890:listener/app/my-alb/1aa1bb1cc1ddee11/f2f7dc8efc522ab2',
|
134
|
+
load_balancer_arn: 'arn:aws:elasticloadbalancing:ap-northeast-1:1234567890:loadbalancer/app/my-alb/1aa1bb1cc1ddee11',
|
135
|
+
port: 80,
|
136
|
+
protocol: 'HTTP'
|
137
|
+
}
|
138
|
+
]
|
139
|
+
},
|
140
|
+
describe_target_groups: {
|
141
|
+
target_groups: [
|
142
|
+
{
|
143
|
+
health_check_interval_seconds: 30,
|
144
|
+
health_check_path: '/',
|
145
|
+
health_check_port: 'traffic-port',
|
146
|
+
health_check_protocol: 'HTTP',
|
147
|
+
health_check_timeout_seconds: 5,
|
148
|
+
healthy_threshold_count: 5,
|
149
|
+
load_balancer_arns: [
|
150
|
+
'arn:aws:elasticloadbalancing:ap-northeast-1:1234567890:loadbalancer/app/my-alb/1aa1bb1cc1ddee11'
|
151
|
+
],
|
152
|
+
matcher: {
|
153
|
+
http_code: '200'
|
154
|
+
},
|
155
|
+
port: 80,
|
156
|
+
protocol: 'HTTP',
|
157
|
+
target_group_arn: 'arn:aws:elasticloadbalancing:ap-northeast-1:1234567890:123456789012:targetgroup/73e2d6bc24d8a067/73e2d6bc24d8a067',
|
158
|
+
target_group_name: 'my-alb-target-group',
|
159
|
+
unhealthy_threshold_count: 2,
|
160
|
+
vpc_id: 'vpc-ab123cde'
|
161
|
+
}
|
162
|
+
]
|
163
|
+
},
|
164
|
+
describe_target_health: {
|
165
|
+
target_health_descriptions: [
|
166
|
+
{
|
167
|
+
target: {
|
168
|
+
id: 'i-0f76fade',
|
169
|
+
port: 80
|
170
|
+
},
|
171
|
+
target_health: {
|
172
|
+
description: 'Given target group is not configured to receive traffic from ELB',
|
173
|
+
reason: 'Target.NotInUse',
|
174
|
+
state: 'unused'
|
175
|
+
}
|
176
|
+
},
|
177
|
+
{
|
178
|
+
health_check_port: '80',
|
179
|
+
target: {
|
180
|
+
id: 'i-ec12345a',
|
181
|
+
port: 80
|
182
|
+
},
|
183
|
+
target_health: {
|
184
|
+
state: 'healthy'
|
185
|
+
}
|
186
|
+
}
|
187
|
+
]
|
74
188
|
}
|
75
189
|
}
|
76
190
|
}
|
@@ -12,7 +12,7 @@ module Awspec::Type
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def has_elb?(name)
|
15
|
-
resource_via_client.load_balancer_names.
|
15
|
+
resource_via_client.load_balancer_names.one? do |lb_name|
|
16
16
|
lb_name == name
|
17
17
|
end
|
18
18
|
end
|
@@ -20,15 +20,23 @@ module Awspec::Type
|
|
20
20
|
def has_ec2?(id)
|
21
21
|
ec2 = find_ec2(id)
|
22
22
|
return nil unless ec2
|
23
|
-
resource_via_client.instances.
|
24
|
-
instance.instance_id
|
23
|
+
resource_via_client.instances.one? do |instance|
|
24
|
+
instance.instance_id == ec2.instance_id
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
28
|
def has_suspended_process?(id)
|
29
|
-
resource_via_client.suspended_processes.
|
29
|
+
resource_via_client.suspended_processes.one? do |process|
|
30
30
|
process.process_name == id
|
31
31
|
end
|
32
32
|
end
|
33
|
+
|
34
|
+
def has_alb_target_group?(id)
|
35
|
+
target_group = find_alb_target_group(id)
|
36
|
+
target_groups = select_alb_target_group_by_autoscaling_group_name(@resource_via_client.auto_scaling_group_name)
|
37
|
+
target_groups.one? do |tg|
|
38
|
+
tg.load_balancer_target_group_arn == target_group.target_group_arn
|
39
|
+
end
|
40
|
+
end
|
33
41
|
end
|
34
42
|
end
|
data/lib/awspec/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: awspec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.84.
|
4
|
+
version: 0.84.1
|
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-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|