awspec 0.49.0 → 0.50.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: 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.