awspec 0.49.0 → 0.50.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: 4e887eb0d5e0741174c231bb5b64c3f5d247d3da
4
- data.tar.gz: 672fda187ff89b4aa2333245730851c6724a4ce8
3
+ metadata.gz: e0115d1e32df283cce263ed572dc81184da88922
4
+ data.tar.gz: 01b94d7a11b2ca745a69933b61547072a422be36
5
5
  SHA512:
6
- metadata.gz: 000e10e5a1dbe7df91c8621eff84a9cce98329d3321c22d583faef85f8e831e56fe78948e9a1a01092800a073023adf292936c0bc6d407dff8296de86ca504dd
7
- data.tar.gz: 47a3ce1589738cde0c693e3b2ac1198ef114d37252c5c0e99b554fa7f4f10ccd36c488202431c0cc3aad67800320086b63fb4351f6bd6a1ff23ae0438bdda2e6
6
+ metadata.gz: 7d14db16d8c43130e70e4d046f7403b2dd402acbff5e1529435839c03965ded951b875e0c8a164058b12e0fea61a1543144395756d79b4d20d5109cbe8cf003b
7
+ data.tar.gz: 2484777564f8c4657072b83627cb11018498ba0b5e6e694f20ee7a26cf018c15780f0b7d5657c58259805ffb08dd785180c2bde17069c41e4710b86b305ea374
data/.travis.yml CHANGED
@@ -1,7 +1,8 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.2.3
4
- - 2.1.7
3
+ - 2.3.1
4
+ - 2.2.5
5
+ - 2.1.10
5
6
 
6
7
  before_install:
7
8
  - gem update bundler
data/README.md CHANGED
@@ -96,6 +96,10 @@ $ AWS_PROFILE=mycreds bundle exec rake spec
96
96
 
97
97
  [Resource Types infomation here](doc/resource_types.md)
98
98
 
99
+ ## awspec AWS key/secrets precedence
100
+
101
+ Dependent on [awsecrets](https://github.com/k1LoW/awsecrets#awsecrets-config-precedence).
102
+
99
103
  ## References
100
104
 
101
105
  awspec is inspired by Serverspec.
@@ -4,6 +4,7 @@
4
4
  | [autoscaling_group](#autoscaling_group)
5
5
  | [cloudtrail](#cloudtrail)
6
6
  | [cloudwatch_alarm](#cloudwatch_alarm)
7
+ | [cloudwatch_event](#cloudwatch_event)
7
8
  | [directconnect_virtual_interface](#directconnect_virtual_interface)
8
9
  | [ebs](#ebs)
9
10
  | [ec2](#ec2)
@@ -188,6 +189,17 @@ end
188
189
  ```
189
190
 
190
191
  ### 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)
192
+ ## <a name="cloudwatch_event">cloudwatch_event</a>
193
+
194
+ CloudwatchEvent resource type.
195
+
196
+ ### exist
197
+
198
+ ### be_enable
199
+
200
+ ### be_scheduled
201
+
202
+ ### its(:name), its(:arn), its(:event_pattern), its(:state), its(:description), its(:schedule_expression), its(:role_arn)
191
203
  ## <a name="directconnect_virtual_interface">directconnect_virtual_interface</a>
192
204
 
193
205
  DirectconnectVirtualInterface resource type.
@@ -1140,7 +1152,7 @@ end
1140
1152
  ```
1141
1153
 
1142
1154
 
1143
- ### its(:vpc_id), its(:db_instance_identifier), its(:db_instance_class), its(:engine), its(:db_instance_status), its(:master_username), its(:db_name), its(:endpoint), its(:allocated_storage), its(:instance_create_time), its(:preferred_backup_window), its(:backup_retention_period), its(:availability_zone), its(:preferred_maintenance_window), its(:pending_modified_values), its(:latest_restorable_time), its(:multi_az), its(:engine_version), its(:auto_minor_version_upgrade), its(:read_replica_source_db_instance_identifier), its(:license_model), its(:iops), its(:character_set_name), its(:secondary_availability_zone), its(:publicly_accessible), its(:storage_type), its(:tde_credential_arn), its(:db_instance_port), its(:db_cluster_identifier), its(:storage_encrypted), its(:kms_key_id), its(:dbi_resource_id), its(:ca_certificate_identifier), its(:copy_tags_to_snapshot), its(:monitoring_interval), its(:enhanced_monitoring_resource_arn), its(:monitoring_role_arn), its(:promotion_tier)
1155
+ ### its(:vpc_id), its(:db_instance_identifier), its(:db_instance_class), its(:engine), its(:db_instance_status), its(:master_username), its(:db_name), its(:endpoint), its(:allocated_storage), its(:instance_create_time), its(:preferred_backup_window), its(:backup_retention_period), its(:availability_zone), its(:preferred_maintenance_window), its(:pending_modified_values), its(:latest_restorable_time), its(:multi_az), its(:engine_version), its(:auto_minor_version_upgrade), its(:read_replica_source_db_instance_identifier), its(:license_model), its(:iops), its(:character_set_name), its(:secondary_availability_zone), its(:publicly_accessible), its(:storage_type), its(:tde_credential_arn), its(:db_instance_port), its(:db_cluster_identifier), its(:storage_encrypted), its(:kms_key_id), its(:dbi_resource_id), its(:ca_certificate_identifier), its(:copy_tags_to_snapshot), its(:monitoring_interval), its(:enhanced_monitoring_resource_arn), its(:monitoring_role_arn), its(:promotion_tier), its(:db_instance_arn)
1144
1156
  ### :unlock: Advanced use
1145
1157
 
1146
1158
  `rds` can use `Aws::RDS::DBInstance` resource (see http://docs.aws.amazon.com/sdkforruby/api/Aws/RDS/DBInstance.html).
@@ -1671,7 +1683,7 @@ describe cloudfront_distribution('123456789zyxw.cloudfront.net') do
1671
1683
  end
1672
1684
  ```
1673
1685
 
1674
- ### its(:id), its(:status), its(:last_modified_time), its(:domain_name), its(:comment), its(:price_class), its(:enabled), its(:web_acl_id)
1686
+ ### its(:id), its(:arn), its(:status), its(:last_modified_time), its(:domain_name), its(:comment), its(:price_class), its(:enabled), its(:web_acl_id)
1675
1687
  ## <a name="elastictranscoder_pipeline">elastictranscoder_pipeline</a>
1676
1688
 
1677
1689
  ElastictranscoderPipeline resource type.
@@ -7,6 +7,7 @@ require 'awspec/generator/spec/route53_hosted_zone'
7
7
  require 'awspec/generator/spec/elb'
8
8
  require 'awspec/generator/spec/iam_policy'
9
9
  require 'awspec/generator/spec/cloudwatch_alarm'
10
+ require 'awspec/generator/spec/cloudwatch_event'
10
11
  require 'awspec/generator/spec/network_acl'
11
12
  require 'awspec/generator/spec/route_table'
12
13
  require 'awspec/generator/spec/subnet'
@@ -0,0 +1,17 @@
1
+ module Awspec::Generator
2
+ module Doc
3
+ module Type
4
+ class CloudwatchEvent < Base
5
+ def initialize
6
+ super
7
+ @type_name = 'CloudwatchEvent'
8
+ @type = Awspec::Type::CloudwatchEvent.new('my-cloudwatch-event')
9
+ @ret = @type.resource_via_client
10
+ @matchers = []
11
+ @ignore_matchers = []
12
+ @describes = []
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,27 @@
1
+ module Awspec::Generator
2
+ module Spec
3
+ class CloudwatchEvent
4
+ include Awspec::Helper::Finder
5
+ def generate_all
6
+ events = select_all_cloudwatch_events
7
+ raise 'Not Found alarm' if events.empty?
8
+ ERB.new(event_spec_template, nil, '-').result(binding).chomp
9
+ end
10
+
11
+ def event_spec_template
12
+ template = <<-'EOF'
13
+ <% events.each do |event| %>
14
+ describe cloudwatch_event('<%= event.name %>') do
15
+ it { should exist }
16
+ <%- if event.state == 'ENABLED' -%>
17
+ it { should be_enable }
18
+ <% end -%>
19
+ it { should be_scheduled('<%= event.schedule_expression %>') }
20
+ end
21
+ <% end %>
22
+ EOF
23
+ template
24
+ end
25
+ end
26
+ end
27
+ end
@@ -13,6 +13,7 @@ require 'awspec/helper/finder/lambda'
13
13
  require 'awspec/helper/finder/iam'
14
14
  require 'awspec/helper/finder/elasticache'
15
15
  require 'awspec/helper/finder/cloudwatch'
16
+ require 'awspec/helper/finder/cloudwatch_event'
16
17
  require 'awspec/helper/finder/ses'
17
18
  require 'awspec/helper/finder/directconnect'
18
19
  require 'awspec/helper/finder/ami'
@@ -36,6 +37,7 @@ module Awspec::Helper
36
37
  include Awspec::Helper::Finder::Iam
37
38
  include Awspec::Helper::Finder::Elasticache
38
39
  include Awspec::Helper::Finder::Cloudwatch
40
+ include Awspec::Helper::Finder::CloudwatchEvent
39
41
  include Awspec::Helper::Finder::Ses
40
42
  include Awspec::Helper::Finder::Directconnect
41
43
  include Awspec::Helper::Finder::Ami
@@ -54,6 +56,7 @@ module Awspec::Helper
54
56
  iam_client: Aws::IAM::Client,
55
57
  elasticache_client: Aws::ElastiCache::Client,
56
58
  cloudwatch_client: Aws::CloudWatch::Client,
59
+ cloudwatch_event_client: Aws::CloudWatchEvents::Client,
57
60
  ses_client: Aws::SES::Client,
58
61
  directconnect_client: Aws::DirectConnect::Client,
59
62
  cloudfront_client: Aws::CloudFront::Client,
@@ -0,0 +1,15 @@
1
+ module Awspec::Helper
2
+ module Finder
3
+ module CloudwatchEvent
4
+ def find_cloudwatch_event(id)
5
+ cloudwatch_event_client.list_rules.rules.find do |rule|
6
+ rule.name == id || rule.arn == id
7
+ end
8
+ end
9
+
10
+ def select_all_cloudwatch_events
11
+ cloudwatch_event_client.list_rules.rules
12
+ end
13
+ end
14
+ end
15
+ end
@@ -4,7 +4,7 @@ module Awspec
4
4
  require 'awspec/type/base'
5
5
 
6
6
  TYPES = %w(
7
- ami autoscaling_group cloudtrail cloudwatch_alarm directconnect_virtual_interface
7
+ ami autoscaling_group cloudtrail cloudwatch_alarm cloudwatch_event directconnect_virtual_interface
8
8
  ebs ec2 elasticache elasticache_cache_parameter_group elb iam_group
9
9
  iam_policy iam_role iam_user lambda launch_configuration nat_gateway
10
10
  network_acl network_interface rds rds_db_cluster_parameter_group rds_db_parameter_group route53_hosted_zone
@@ -11,6 +11,7 @@ Aws.config[:cloudfront] = {
11
11
  [
12
12
  {
13
13
  id: 'E1ABCDEFG2HIJK',
14
+ arn: 'arn:aws:cloudfront:ap-northeast-1:1234567890:alarm:my-cloudfront-1',
14
15
  status: 'Deployed',
15
16
  last_modified_time: Time.new(2015, 1, 2, 10, 00, 00, '+00:00'),
16
17
  domain_name: 'abcdefghijklmn.cloudfront.net',
@@ -106,6 +107,7 @@ Aws.config[:cloudfront] = {
106
107
  },
107
108
  {
108
109
  id: 'E2CLOUDFRONTXX',
110
+ arn: 'arn:aws:cloudfront:ap-northeast-1:1234567890:alarm:my-cloudfront-2',
109
111
  status: 'Deployed',
110
112
  last_modified_time: Time.new(2016, 3, 2, 10, 00, 00, '+00:00'),
111
113
  domain_name: '123456789zyxw.cloudfront.net',
@@ -0,0 +1,15 @@
1
+ # rubocop:disable all
2
+ Aws.config[:cloudwatchevents] = {
3
+ stub_responses: {
4
+ list_rules: {
5
+ rules: [
6
+ {
7
+ name: 'my-cloudwatch-event',
8
+ state: 'ENABLED',
9
+ schedule_expression: 'cron(* * * * * *)',
10
+ arn: 'arn:aws:events:ap-northeast-1:1234567890:rule/my_cloudwatch_event'
11
+ }
12
+ ]
13
+ }
14
+ }
15
+ }
@@ -0,0 +1,17 @@
1
+ module Awspec::Type
2
+ class CloudwatchEvent < Base
3
+ def initialize(id)
4
+ super
5
+ @resource_via_client = find_cloudwatch_event(id)
6
+ @id = @resource_via_client.arn if @resource_via_client
7
+ end
8
+
9
+ def enable?
10
+ @resource_via_client.state == 'ENABLED'
11
+ end
12
+
13
+ def scheduled?(schedule)
14
+ @resource_via_client.schedule_expression == schedule
15
+ end
16
+ end
17
+ end
@@ -1,3 +1,3 @@
1
1
  module Awspec
2
- VERSION = '0.49.0'
2
+ VERSION = '0.50.0'
3
3
  end
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.49.0
4
+ version: 0.50.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - k1LoW
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-08-09 00:00:00.000000000 Z
11
+ date: 2016-08-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -255,6 +255,7 @@ files:
255
255
  - lib/awspec/generator/doc/type/cloudfront_distribution.rb
256
256
  - lib/awspec/generator/doc/type/cloudtrail.rb
257
257
  - lib/awspec/generator/doc/type/cloudwatch_alarm.rb
258
+ - lib/awspec/generator/doc/type/cloudwatch_event.rb
258
259
  - lib/awspec/generator/doc/type/directconnect_virtual_interface.rb
259
260
  - lib/awspec/generator/doc/type/ebs.rb
260
261
  - lib/awspec/generator/doc/type/ec2.rb
@@ -282,6 +283,7 @@ files:
282
283
  - lib/awspec/generator/doc/type/subnet.rb
283
284
  - lib/awspec/generator/doc/type/vpc.rb
284
285
  - lib/awspec/generator/spec/cloudwatch_alarm.rb
286
+ - lib/awspec/generator/spec/cloudwatch_event.rb
285
287
  - lib/awspec/generator/spec/directconnect.rb
286
288
  - lib/awspec/generator/spec/ebs.rb
287
289
  - lib/awspec/generator/spec/ec2.rb
@@ -310,6 +312,7 @@ files:
310
312
  - lib/awspec/helper/finder/cloudfront.rb
311
313
  - lib/awspec/helper/finder/cloudtrail.rb
312
314
  - lib/awspec/helper/finder/cloudwatch.rb
315
+ - lib/awspec/helper/finder/cloudwatch_event.rb
313
316
  - lib/awspec/helper/finder/directconnect.rb
314
317
  - lib/awspec/helper/finder/ebs.rb
315
318
  - lib/awspec/helper/finder/ec2.rb
@@ -354,6 +357,7 @@ files:
354
357
  - lib/awspec/stub/cloudfront_distribution.rb
355
358
  - lib/awspec/stub/cloudtrail.rb
356
359
  - lib/awspec/stub/cloudwatch_alarm.rb
360
+ - lib/awspec/stub/cloudwatch_event.rb
357
361
  - lib/awspec/stub/directconnect_virtual_interface.rb
358
362
  - lib/awspec/stub/duplicated_resource_type.rb
359
363
  - lib/awspec/stub/ebs.rb
@@ -388,6 +392,7 @@ files:
388
392
  - lib/awspec/type/cloudfront_distribution.rb
389
393
  - lib/awspec/type/cloudtrail.rb
390
394
  - lib/awspec/type/cloudwatch_alarm.rb
395
+ - lib/awspec/type/cloudwatch_event.rb
391
396
  - lib/awspec/type/directconnect_virtual_interface.rb
392
397
  - lib/awspec/type/ebs.rb
393
398
  - lib/awspec/type/ec2.rb
@@ -435,7 +440,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
435
440
  version: '0'
436
441
  requirements: []
437
442
  rubyforge_project:
438
- rubygems_version: 2.2.2
443
+ rubygems_version: 2.5.1
439
444
  signing_key:
440
445
  specification_version: 4
441
446
  summary: RSpec tests for your AWS resources.