awspec 0.14.1 → 0.15.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 +4 -4
- data/README.md +3 -2
- data/doc/resource_types.md +18 -0
- data/lib/awspec/generator/doc/type/cloudwatch_alarm.rb +17 -0
- data/lib/awspec/helper/finder.rb +3 -0
- data/lib/awspec/helper/finder/cloudwatch.rb +17 -0
- data/lib/awspec/helper/type.rb +1 -0
- data/lib/awspec/matcher.rb +3 -0
- data/lib/awspec/matcher/belong_to_metric.rb +13 -0
- data/lib/awspec/stub/cloudwatch_alarm.rb +39 -0
- data/lib/awspec/type/base.rb +4 -0
- data/lib/awspec/type/cloudwatch_alarm.rb +21 -0
- data/lib/awspec/version.rb +1 -1
- metadata +7 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 246f7601c47ebc923bd6296cdd04cf6ed1a642dd
|
4
|
+
data.tar.gz: 7da26f53af5ec2da25187659075122bc79cf93e2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c2bce6300309a639b3f7ae82c2d6a4019026c048552087d90d20eb525dd30cd79793c05c070b60358f1c78cbe79c054bdd33f2e360fbe81d4b97db283a20d67e
|
7
|
+
data.tar.gz: 024cc4b227c6abd11740fa7e70de441f0c9e73a3c53dea13559cb7df7cd11a72e68a8d2e2c6cb1f3cd8733e36c5d337178bc3ddd7597710c78adaf45619e9eb6
|
data/README.md
CHANGED
@@ -99,13 +99,14 @@ $ awspec generate ec2 vpc-ab123cde >> spec/ec2_spec.rb
|
|
99
99
|
- [x] IAM Role (`iam_role`)
|
100
100
|
- [x] IAM Policy (`iam_policy`)
|
101
101
|
- [x] ElastiCache (`elasticache`)
|
102
|
-
- [x] ElastiCache Cache Parameter Group
|
102
|
+
- [x] ElastiCache Cache Parameter Group (`elasticache_cache_parameter_group`)
|
103
|
+
- CloudWatch
|
104
|
+
- [x] CloudWatch Alarm (`cloudwatch_alarm`)
|
103
105
|
|
104
106
|
[Resource Types more infomation here](doc/resource_types.md)
|
105
107
|
|
106
108
|
### Next..?
|
107
109
|
|
108
|
-
- [ ] CloudWatch
|
109
110
|
- ...
|
110
111
|
|
111
112
|
## References
|
data/doc/resource_types.md
CHANGED
@@ -19,6 +19,7 @@
|
|
19
19
|
| [iam_policy](#iam_policy)
|
20
20
|
| [elasticache](#elasticache)
|
21
21
|
| [elasticache_cache_parameter_group](#elasticache_cache_parameter_group)
|
22
|
+
| [cloudwatch_alarm](#cloudwatch_alarm)
|
22
23
|
|
23
24
|
## <a name="ec2">ec2</a>
|
24
25
|
|
@@ -395,3 +396,20 @@ end
|
|
395
396
|
```
|
396
397
|
|
397
398
|
### exist
|
399
|
+
|
400
|
+
|
401
|
+
## <a name="cloudwatch_alarm">cloudwatch_alarm</a>
|
402
|
+
|
403
|
+
CloudwatchAlarm resource type.
|
404
|
+
|
405
|
+
### exist
|
406
|
+
|
407
|
+
### have_alarm_action
|
408
|
+
|
409
|
+
### have_insufficient_data_action
|
410
|
+
|
411
|
+
### have_ok_action
|
412
|
+
|
413
|
+
### belong_to_metric
|
414
|
+
|
415
|
+
#### its(:alarm_name), its(:alarm_arn), its(:alarm_description), its(:alarm_configuration_updated_timestamp), its(:actions_enabled), its(:state_value), its(:state_reason), its(:state_reason_data), its(:state_updated_timestamp), its(:metric_name), its(:namespace), its(:statistic), its(:period), its(:unit), its(:evaluation_periods), its(:threshold), its(:comparison_operator)
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Awspec::Generator
|
2
|
+
module Doc
|
3
|
+
module Type
|
4
|
+
class CloudwatchAlarm < Base
|
5
|
+
def initialize
|
6
|
+
super
|
7
|
+
@type_name = 'CloudwatchAlarm'
|
8
|
+
@type = Awspec::Type::CloudwatchAlarm.new('my-cloudwatch-alarm')
|
9
|
+
@ret = @type.resource
|
10
|
+
@matchers = %w(belong_to_metric)
|
11
|
+
@ignore_matchers = []
|
12
|
+
@describes = []
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
data/lib/awspec/helper/finder.rb
CHANGED
@@ -11,6 +11,7 @@ require 'awspec/helper/finder/elb'
|
|
11
11
|
require 'awspec/helper/finder/lambda'
|
12
12
|
require 'awspec/helper/finder/iam'
|
13
13
|
require 'awspec/helper/finder/elasticache'
|
14
|
+
require 'awspec/helper/finder/cloudwatch'
|
14
15
|
|
15
16
|
module Awspec::Helper
|
16
17
|
module Finder
|
@@ -27,6 +28,7 @@ module Awspec::Helper
|
|
27
28
|
include Awspec::Helper::Finder::Lambda
|
28
29
|
include Awspec::Helper::Finder::Iam
|
29
30
|
include Awspec::Helper::Finder::Elasticache
|
31
|
+
include Awspec::Helper::Finder::Cloudwatch
|
30
32
|
|
31
33
|
# rubocop:disable all
|
32
34
|
def initialize(id = nil)
|
@@ -39,6 +41,7 @@ module Awspec::Helper
|
|
39
41
|
@lambda_client = Aws::Lambda::Client.new
|
40
42
|
@iam_client = Aws::IAM::Client.new
|
41
43
|
@elasticache_client = Aws::ElastiCache::Client.new
|
44
|
+
@cloudwatch_client = Aws::CloudWatch::Client.new
|
42
45
|
end
|
43
46
|
end
|
44
47
|
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Awspec::Helper
|
2
|
+
module Finder
|
3
|
+
module Cloudwatch
|
4
|
+
def find_cloudwatch_alarm(id)
|
5
|
+
res = @cloudwatch_client.describe_alarms({
|
6
|
+
alarm_names: [id]
|
7
|
+
})
|
8
|
+
return res[:metric_alarms].first if res[:metric_alarms].count == 1
|
9
|
+
|
10
|
+
res = @cloudwatch_client.describe_alarms
|
11
|
+
res[:metric_alarms].find do |alarm|
|
12
|
+
alarm[:alarm_arn] == id
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
data/lib/awspec/helper/type.rb
CHANGED
data/lib/awspec/matcher.rb
CHANGED
@@ -0,0 +1,13 @@
|
|
1
|
+
RSpec::Matchers.define :belong_to_metric do |name|
|
2
|
+
match do |resource|
|
3
|
+
if @namespace
|
4
|
+
resource.namespace == @namespace && resource.metric_name == name
|
5
|
+
else
|
6
|
+
resource.metric_name == name
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
chain :namespace do |namespace|
|
11
|
+
@namespace = namespace
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# rubocop:disable all
|
2
|
+
Aws.config[:cloudwatch] = {
|
3
|
+
stub_responses: {
|
4
|
+
describe_alarms: {
|
5
|
+
metric_alarms: [
|
6
|
+
{
|
7
|
+
alarm_name: 'my-cloudwatch-alarm',
|
8
|
+
alarm_arn: 'arn:aws:cloudwatch:ap-northeast-1:1234567890:alarm:my_NumberOfProcesses',
|
9
|
+
alarm_description: 'my_NumberOfProcesses',
|
10
|
+
alarm_configuration_updated_timestamp: Time.new(2015, 1, 2, 10, 00, 00, '+00:00'),
|
11
|
+
actions_enabled: true,
|
12
|
+
ok_actions: ['arn:aws:sns:ap-northeast-1:1234567890:sns_alert'],
|
13
|
+
alarm_actions: ['arn:aws:sns:ap-northeast-1:1234567890:sns_alert'],
|
14
|
+
insufficient_data_actions: ['arn:aws:sns:ap-northeast-1:1234567890:sns_alert'],
|
15
|
+
state_value: 'OK',
|
16
|
+
state_reason: 'Threshold Crossed: 1 datapoint (53.0) was not less than or equal to the threshold (5.0).',
|
17
|
+
state_reason_data:
|
18
|
+
'{\'version\':\'1.0\',\'queryDate\':\'2015-04-04T01:06:26.904+0000\',\'startDate\':\'2015-04-04T01:01:00.000+0000\',\'statistic\':\'Average\',\'period\':300,\'recentDatapoints\':[53.0],\'threshold\':5.0}',
|
19
|
+
state_updated_timestamp: Time.new(2015, 1, 2, 10, 10, 00, '+00:00'),
|
20
|
+
metric_name: 'NumberOfProcesses',
|
21
|
+
namespace: 'my-cloudwatch-namespace',
|
22
|
+
statistic: 'Average',
|
23
|
+
dimensions:
|
24
|
+
[
|
25
|
+
{
|
26
|
+
name: 'name',
|
27
|
+
value: 'my-dimension'
|
28
|
+
}
|
29
|
+
],
|
30
|
+
period: 300,
|
31
|
+
unit: nil,
|
32
|
+
evaluation_periods: 1,
|
33
|
+
threshold: 5.0,
|
34
|
+
comparison_operator: 'LessThanOrEqualToThreshold'
|
35
|
+
}
|
36
|
+
]
|
37
|
+
}
|
38
|
+
}
|
39
|
+
}
|
data/lib/awspec/type/base.rb
CHANGED
@@ -0,0 +1,21 @@
|
|
1
|
+
module Awspec::Type
|
2
|
+
class CloudwatchAlarm < Base
|
3
|
+
def initialize(id)
|
4
|
+
super
|
5
|
+
@resource = find_cloudwatch_alarm(id)
|
6
|
+
@id = @resource[:alarm_arn] if @resource
|
7
|
+
end
|
8
|
+
|
9
|
+
def has_ok_action?(name)
|
10
|
+
@resource[:ok_actions].include?(name)
|
11
|
+
end
|
12
|
+
|
13
|
+
def has_alarm_action?(name)
|
14
|
+
@resource[:alarm_actions].include?(name)
|
15
|
+
end
|
16
|
+
|
17
|
+
def has_insufficient_data_action?(name)
|
18
|
+
@resource[:insufficient_data_actions].include?(name)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
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.
|
4
|
+
version: 0.15.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- k1LoW
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-09-
|
11
|
+
date: 2015-09-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -176,6 +176,7 @@ files:
|
|
176
176
|
- lib/awspec/generator/doc/type.rb
|
177
177
|
- lib/awspec/generator/doc/type/auto_scaling_group.rb
|
178
178
|
- lib/awspec/generator/doc/type/base.rb
|
179
|
+
- lib/awspec/generator/doc/type/cloudwatch_alarm.rb
|
179
180
|
- lib/awspec/generator/doc/type/ebs.rb
|
180
181
|
- lib/awspec/generator/doc/type/ec2.rb
|
181
182
|
- lib/awspec/generator/doc/type/elasticache.rb
|
@@ -205,6 +206,7 @@ files:
|
|
205
206
|
- lib/awspec/helper.rb
|
206
207
|
- lib/awspec/helper/finder.rb
|
207
208
|
- lib/awspec/helper/finder/auto_scaling.rb
|
209
|
+
- lib/awspec/helper/finder/cloudwatch.rb
|
208
210
|
- lib/awspec/helper/finder/ebs.rb
|
209
211
|
- lib/awspec/helper/finder/ec2.rb
|
210
212
|
- lib/awspec/helper/finder/elasticache.rb
|
@@ -223,6 +225,7 @@ files:
|
|
223
225
|
- lib/awspec/matcher/belong_to_cache_subnet_group.rb
|
224
226
|
- lib/awspec/matcher/belong_to_db_subnet_group.rb
|
225
227
|
- lib/awspec/matcher/belong_to_iam_group.rb
|
228
|
+
- lib/awspec/matcher/belong_to_metric.rb
|
226
229
|
- lib/awspec/matcher/belong_to_replication_group.rb
|
227
230
|
- lib/awspec/matcher/belong_to_subnet.rb
|
228
231
|
- lib/awspec/matcher/belong_to_vpc.rb
|
@@ -231,6 +234,7 @@ files:
|
|
231
234
|
- lib/awspec/setup.rb
|
232
235
|
- lib/awspec/stub.rb
|
233
236
|
- lib/awspec/stub/auto_scaling_group.rb
|
237
|
+
- lib/awspec/stub/cloudwatch_alarm.rb
|
234
238
|
- lib/awspec/stub/ebs.rb
|
235
239
|
- lib/awspec/stub/ec2.rb
|
236
240
|
- lib/awspec/stub/elasticache.rb
|
@@ -252,6 +256,7 @@ files:
|
|
252
256
|
- lib/awspec/toolbox.rb
|
253
257
|
- lib/awspec/type/auto_scaling_group.rb
|
254
258
|
- lib/awspec/type/base.rb
|
259
|
+
- lib/awspec/type/cloudwatch_alarm.rb
|
255
260
|
- lib/awspec/type/ebs.rb
|
256
261
|
- lib/awspec/type/ec2.rb
|
257
262
|
- lib/awspec/type/elasticache.rb
|