awspec 0.25.3 → 0.26.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. checksums.yaml +4 -4
  2. data/awspec.gemspec +1 -0
  3. data/doc/_resource_types/s3_bucket.md +10 -0
  4. data/doc/resource_types.md +32 -21
  5. data/lib/awspec.rb +1 -0
  6. data/lib/awspec/generator/doc/type/autoscaling_group.rb +1 -1
  7. data/lib/awspec/generator/doc/type/base.rb +5 -2
  8. data/lib/awspec/generator/doc/type/cloudwatch_alarm.rb +1 -1
  9. data/lib/awspec/generator/doc/type/directconnect_virtual_interface.rb +1 -1
  10. data/lib/awspec/generator/doc/type/ebs.rb +1 -1
  11. data/lib/awspec/generator/doc/type/ec2.rb +1 -1
  12. data/lib/awspec/generator/doc/type/elasticache.rb +1 -1
  13. data/lib/awspec/generator/doc/type/elasticache_cache_parameter_group.rb +1 -1
  14. data/lib/awspec/generator/doc/type/elb.rb +1 -1
  15. data/lib/awspec/generator/doc/type/iam_group.rb +1 -1
  16. data/lib/awspec/generator/doc/type/iam_policy.rb +1 -1
  17. data/lib/awspec/generator/doc/type/iam_role.rb +1 -1
  18. data/lib/awspec/generator/doc/type/iam_user.rb +1 -1
  19. data/lib/awspec/generator/doc/type/lambda.rb +1 -1
  20. data/lib/awspec/generator/doc/type/network_acl.rb +1 -1
  21. data/lib/awspec/generator/doc/type/rds.rb +1 -1
  22. data/lib/awspec/generator/doc/type/route53_hosted_zone.rb +1 -1
  23. data/lib/awspec/generator/doc/type/route_table.rb +1 -1
  24. data/lib/awspec/generator/doc/type/s3_bucket.rb +1 -1
  25. data/lib/awspec/generator/doc/type/security_group.rb +1 -1
  26. data/lib/awspec/generator/doc/type/ses_identity.rb +1 -1
  27. data/lib/awspec/generator/doc/type/subnet.rb +1 -1
  28. data/lib/awspec/generator/doc/type/vpc.rb +1 -1
  29. data/lib/awspec/generator/template.rb +1 -1
  30. data/lib/awspec/matcher/be_allowed.rb +2 -2
  31. data/lib/awspec/matcher/be_allowed_action.rb +2 -2
  32. data/lib/awspec/matcher/be_denied.rb +2 -2
  33. data/lib/awspec/matcher/belong_to_cache_subnet_group.rb +2 -2
  34. data/lib/awspec/matcher/belong_to_db_subnet_group.rb +2 -2
  35. data/lib/awspec/matcher/belong_to_iam_group.rb +2 -2
  36. data/lib/awspec/matcher/belong_to_metric.rb +3 -3
  37. data/lib/awspec/matcher/belong_to_replication_group.rb +2 -2
  38. data/lib/awspec/matcher/belong_to_subnet.rb +12 -12
  39. data/lib/awspec/matcher/belong_to_vpc.rb +4 -4
  40. data/lib/awspec/resource_reader.rb +48 -0
  41. data/lib/awspec/type/autoscaling_group.rb +4 -4
  42. data/lib/awspec/type/base.rb +8 -4
  43. data/lib/awspec/type/cloudwatch_alarm.rb +5 -5
  44. data/lib/awspec/type/directconnect_virtual_interface.rb +3 -3
  45. data/lib/awspec/type/ebs.rb +6 -6
  46. data/lib/awspec/type/ec2.rb +5 -5
  47. data/lib/awspec/type/elasticache.rb +5 -5
  48. data/lib/awspec/type/elasticache_cache_parameter_group.rb +1 -1
  49. data/lib/awspec/type/elb.rb +7 -7
  50. data/lib/awspec/type/iam_group.rb +3 -3
  51. data/lib/awspec/type/iam_policy.rb +3 -3
  52. data/lib/awspec/type/iam_role.rb +3 -3
  53. data/lib/awspec/type/iam_user.rb +3 -3
  54. data/lib/awspec/type/lambda.rb +3 -3
  55. data/lib/awspec/type/network_acl.rb +6 -6
  56. data/lib/awspec/type/rds.rb +10 -10
  57. data/lib/awspec/type/rds_db_parameter_group.rb +1 -1
  58. data/lib/awspec/type/route53_hosted_zone.rb +4 -4
  59. data/lib/awspec/type/route_table.rb +4 -4
  60. data/lib/awspec/type/s3_bucket.rb +6 -2
  61. data/lib/awspec/type/security_group.rb +8 -8
  62. data/lib/awspec/type/ses_identity.rb +2 -2
  63. data/lib/awspec/type/subnet.rb +3 -3
  64. data/lib/awspec/type/vpc.rb +3 -3
  65. data/lib/awspec/version.rb +1 -1
  66. metadata +17 -2
@@ -2,8 +2,8 @@ module Awspec::Type
2
2
  class IamGroup < Base
3
3
  def initialize(id)
4
4
  super
5
- @resource = find_iam_group(id)
6
- @id = @resource[:group_id] if @resource
5
+ @resource_via_client = find_iam_group(id)
6
+ @id = @resource_via_client[:group_id] if @resource_via_client
7
7
  end
8
8
 
9
9
  def has_iam_user?(user_id)
@@ -17,7 +17,7 @@ module Awspec::Type
17
17
  end
18
18
 
19
19
  def has_iam_policy?(policy_id)
20
- policies = select_iam_policy_by_group_name(@resource[:group_name])
20
+ policies = select_iam_policy_by_group_name(@resource_via_client[:group_name])
21
21
  policies.find do |policy|
22
22
  policy.policy_arn == policy_id || policy.policy_name == policy_id
23
23
  end
@@ -2,12 +2,12 @@ module Awspec::Type
2
2
  class IamPolicy < Base
3
3
  def initialize(id)
4
4
  super
5
- @resource = find_iam_policy(id)
6
- @id = @resource[:policy_id] if @resource
5
+ @resource_via_client = find_iam_policy(id)
6
+ @id = @resource_via_client[:policy_id] if @resource_via_client
7
7
  end
8
8
 
9
9
  def attachable?
10
- @resource.is_attachable
10
+ @resource_via_client.is_attachable
11
11
  end
12
12
 
13
13
  def attached_to_user?(user_id = nil)
@@ -2,12 +2,12 @@ module Awspec::Type
2
2
  class IamRole < Base
3
3
  def initialize(id)
4
4
  super
5
- @resource = find_iam_role(id)
6
- @id = @resource[:role_id] if @resource
5
+ @resource_via_client = find_iam_role(id)
6
+ @id = @resource_via_client[:role_id] if @resource_via_client
7
7
  end
8
8
 
9
9
  def has_iam_policy?(policy_id)
10
- policies = select_iam_policy_by_role_name(@resource[:role_name])
10
+ policies = select_iam_policy_by_role_name(@resource_via_client[:role_name])
11
11
  policies.find do |policy|
12
12
  policy.policy_arn == policy_id || policy.policy_name == policy_id
13
13
  end
@@ -2,12 +2,12 @@ module Awspec::Type
2
2
  class IamUser < Base
3
3
  def initialize(id)
4
4
  super
5
- @resource = find_iam_user(id)
6
- @id = @resource[:user_id] if @resource
5
+ @resource_via_client = find_iam_user(id)
6
+ @id = @resource_via_client[:user_id] if @resource_via_client
7
7
  end
8
8
 
9
9
  def has_iam_policy?(policy_id)
10
- policies = select_iam_policy_by_user_name(@resource[:user_name])
10
+ policies = select_iam_policy_by_user_name(@resource_via_client[:user_name])
11
11
  policies.find do |policy|
12
12
  policy.policy_arn == policy_id || policy.policy_name == policy_id
13
13
  end
@@ -2,12 +2,12 @@ module Awspec::Type
2
2
  class Lambda < Base
3
3
  def initialize(id)
4
4
  super
5
- @resource = find_lambda(id)
6
- @id = @resource[:function_arn] if @resource
5
+ @resource_via_client = find_lambda(id)
6
+ @id = @resource_via_client[:function_arn] if @resource_via_client
7
7
  end
8
8
 
9
9
  def timeout
10
- @resource[:timeout]
10
+ @resource_via_client[:timeout]
11
11
  end
12
12
 
13
13
  def has_event_source?(event_source_arn)
@@ -2,12 +2,12 @@ module Awspec::Type
2
2
  class NetworkAcl < Base
3
3
  def initialize(id)
4
4
  super
5
- @resource = find_network_acl(id)
6
- @id = @resource[:network_acl_id] if @resource
5
+ @resource_via_client = find_network_acl(id)
6
+ @id = @resource_via_client[:network_acl_id] if @resource_via_client
7
7
  end
8
8
 
9
9
  def has_subnet?(subnet_id)
10
- @resource.associations.find do |a|
10
+ @resource_via_client.associations.find do |a|
11
11
  next true if a.subnet_id == subnet_id
12
12
  subnet = find_subnet(subnet_id)
13
13
  next false unless subnet
@@ -36,13 +36,13 @@ module Awspec::Type
36
36
  end
37
37
 
38
38
  def inbound_entries_count
39
- @resource[:entries].count do |entry|
39
+ @resource_via_client[:entries].count do |entry|
40
40
  entry.egress == false
41
41
  end
42
42
  end
43
43
 
44
44
  def outbound_entries_count
45
- @resource[:entries].count do |entry|
45
+ @resource_via_client[:entries].count do |entry|
46
46
  entry.egress == true
47
47
  end
48
48
  end
@@ -68,7 +68,7 @@ module Awspec::Type
68
68
  private
69
69
 
70
70
  def entry?(rule_action, port = nil, protocol = nil, cidr = nil, rule_number = nil)
71
- @resource[:entries].find do |entry|
71
+ @resource_via_client[:entries].find do |entry|
72
72
  # egress rule_action
73
73
  next false if entry.egress != @egress
74
74
  next false if entry.rule_action != rule_action
@@ -2,8 +2,8 @@ module Awspec::Type
2
2
  class Rds < Base
3
3
  def initialize(id)
4
4
  super
5
- @resource = find_rds(id)
6
- @id = @resource[:db_instance_identifier] if @resource
5
+ @resource_via_client = find_rds(id)
6
+ @id = @resource_via_client[:db_instance_identifier] if @resource_via_client
7
7
  end
8
8
 
9
9
  STATES = %w(
@@ -18,12 +18,12 @@ module Awspec::Type
18
18
 
19
19
  STATES.each do |state|
20
20
  define_method state.tr('-', '_') + '?' do
21
- @resource[:db_instance_status] == state
21
+ @resource_via_client[:db_instance_status] == state
22
22
  end
23
23
  end
24
24
 
25
25
  def vpc_id
26
- @resource[:db_subnet_group][:vpc_id]
26
+ @resource_via_client[:db_subnet_group][:vpc_id]
27
27
  end
28
28
 
29
29
  def has_security_group?(sg_id)
@@ -34,14 +34,14 @@ module Awspec::Type
34
34
  end
35
35
 
36
36
  def has_db_parameter_group?(name)
37
- pgs = @resource[:db_parameter_groups]
37
+ pgs = @resource_via_client[:db_parameter_groups]
38
38
  pgs.find do |pg|
39
39
  pg[:db_parameter_group_name] == name
40
40
  end
41
41
  end
42
42
 
43
43
  def has_option_group?(name)
44
- ogs = @resource[:option_group_memberships]
44
+ ogs = @resource_via_client[:option_group_memberships]
45
45
  ogs.find do |og|
46
46
  og[:option_group_name] == name
47
47
  end
@@ -50,14 +50,14 @@ module Awspec::Type
50
50
  private
51
51
 
52
52
  def has_vpc_security_group_id?(sg_id)
53
- sgs = @resource[:vpc_security_groups]
53
+ sgs = @resource_via_client[:vpc_security_groups]
54
54
  sgs.find do |sg|
55
55
  sg[:vpc_security_group_id] == sg_id
56
56
  end
57
57
  end
58
58
 
59
59
  def has_vpc_security_group_name?(sg_id)
60
- sgs = @resource[:vpc_security_groups]
60
+ sgs = @resource_via_client[:vpc_security_groups]
61
61
  res = @ec2_client.describe_security_groups({
62
62
  filters: [{ name: 'group-name', values: [sg_id] }]
63
63
  })
@@ -68,7 +68,7 @@ module Awspec::Type
68
68
  end
69
69
 
70
70
  def has_vpc_security_group_tag_name?(sg_id)
71
- sgs = @resource[:vpc_security_groups]
71
+ sgs = @resource_via_client[:vpc_security_groups]
72
72
  res = @ec2_client.describe_security_groups({
73
73
  filters: [{ name: 'tag:Name', values: [sg_id] }]
74
74
  })
@@ -79,7 +79,7 @@ module Awspec::Type
79
79
  end
80
80
 
81
81
  def has_db_security_group_name?(sg_id)
82
- sgs = @resource[:db_security_groups]
82
+ sgs = @resource_via_client[:db_security_groups]
83
83
  sgs.find do |sg|
84
84
  sg[:db_security_group_name] == sg_id
85
85
  end
@@ -17,7 +17,7 @@ module Awspec::Type
17
17
  end
18
18
 
19
19
  @id = name unless @parameters.empty?
20
- @resource = @parameters
20
+ @resource_via_client = @parameters
21
21
  end
22
22
 
23
23
  def method_missing(name)
@@ -4,15 +4,15 @@ module Awspec::Type
4
4
 
5
5
  def initialize(id)
6
6
  super
7
- @resource = find_hosted_zone(id)
8
- @id = @resource[:id] if @resource
7
+ @resource_via_client = find_hosted_zone(id)
8
+ @id = @resource_via_client[:id] if @resource_via_client
9
9
  return unless @id
10
- @resource_record_sets = select_record_sets_by_hosted_zone_id(@id)
10
+ @resource_via_client_record_sets = select_record_sets_by_hosted_zone_id(@id)
11
11
  end
12
12
 
13
13
  def has_record_set?(name, type, value, options = {})
14
14
  name.gsub!(/\*/, '\\\052') # wildcard support
15
- ret = @resource_record_sets.find do |record_set|
15
+ ret = @resource_via_client_record_sets.find do |record_set|
16
16
  next if record_set.type != type.upcase
17
17
  options[:ttl] = record_set.ttl unless options[:ttl]
18
18
  if !record_set.resource_records.empty?
@@ -2,12 +2,12 @@ module Awspec::Type
2
2
  class RouteTable < Base
3
3
  def initialize(id)
4
4
  super
5
- @resource = find_route_table(id)
6
- @id = @resource[:route_table_id] if @resource
5
+ @resource_via_client = find_route_table(id)
6
+ @id = @resource_via_client[:route_table_id] if @resource_via_client
7
7
  end
8
8
 
9
9
  def has_route?(destination, gateway_id = nil, instance_id = nil, vpc_peering_connection_id = nil)
10
- @resource.routes.find do |route|
10
+ @resource_via_client.routes.find do |route|
11
11
  if destination
12
12
  next false unless route.destination_cidr_block == destination
13
13
  end
@@ -20,7 +20,7 @@ module Awspec::Type
20
20
  def has_subnet?(subnet_id)
21
21
  subnet = find_subnet(subnet_id)
22
22
  return false unless subnet
23
- @resource.associations.find do |a|
23
+ @resource_via_client.associations.find do |a|
24
24
  a[:subnet_id] == subnet[:subnet_id]
25
25
  end
26
26
  end
@@ -2,8 +2,8 @@ module Awspec::Type
2
2
  class S3Bucket < Base
3
3
  def initialize(id)
4
4
  super
5
- @resource = find_bucket(id)
6
- @id = id if @resource
5
+ @resource_via_client = find_bucket(id)
6
+ @id = id if @resource_via_client
7
7
  end
8
8
 
9
9
  def has_object?(key)
@@ -58,6 +58,10 @@ module Awspec::Type
58
58
  bp ? (bp.policy.read == policy.gsub(/(\n|\r|\r\n|\s|\t)/, '')) : false
59
59
  end
60
60
 
61
+ def hogehoge
62
+ @hogehoge ||= Awspec::ResourceReader.new(Aws::S3::Bucket.new(@id))
63
+ end
64
+
61
65
  private
62
66
 
63
67
  def cors_rules
@@ -6,8 +6,8 @@ module Awspec::Type
6
6
  super
7
7
  @client = @ec2_client
8
8
  @inbound = true
9
- @resource = find_security_group(id)
10
- @id = @resource[:group_id] if @resource
9
+ @resource_via_client = find_security_group(id)
10
+ @id = @resource_via_client[:group_id] if @resource_via_client
11
11
  end
12
12
 
13
13
  def opened?(port = nil, protocol = nil, cidr = nil)
@@ -19,7 +19,7 @@ module Awspec::Type
19
19
  end
20
20
 
21
21
  def inbound_opened?(port = nil, protocol = nil, cidr = nil)
22
- @resource[:ip_permissions].find do |permission|
22
+ @resource_via_client[:ip_permissions].find do |permission|
23
23
  next true unless port
24
24
  next true unless permission[:from_port]
25
25
  next true unless permission[:to_port]
@@ -43,7 +43,7 @@ module Awspec::Type
43
43
  end
44
44
 
45
45
  def outbound_opened?(port = nil, protocol = nil, cidr = nil)
46
- @resource[:ip_permissions_egress].find do |permission|
46
+ @resource_via_client[:ip_permissions_egress].find do |permission|
47
47
  next true unless port
48
48
  next true unless permission[:from_port]
49
49
  next true unless permission[:to_port]
@@ -77,23 +77,23 @@ module Awspec::Type
77
77
  end
78
78
 
79
79
  def ip_permissions_count
80
- @resource[:ip_permissions].count
80
+ @resource_via_client[:ip_permissions].count
81
81
  end
82
82
  alias_method :inbound_permissions_count, :ip_permissions_count
83
83
 
84
84
  def ip_permissions_egress_count
85
- @resource[:ip_permissions_egress].count
85
+ @resource_via_client[:ip_permissions_egress].count
86
86
  end
87
87
  alias_method :outbound_permissions_count, :ip_permissions_egress_count
88
88
 
89
89
  def inbound_rule_count
90
- @resource[:ip_permissions].reduce(0) do |sum, permission|
90
+ @resource_via_client[:ip_permissions].reduce(0) do |sum, permission|
91
91
  sum += permission.ip_ranges.count + permission.user_id_group_pairs.count
92
92
  end
93
93
  end
94
94
 
95
95
  def outbound_rule_count
96
- @resource[:ip_permissions_egress].reduce(0) do |sum, permission|
96
+ @resource_via_client[:ip_permissions_egress].reduce(0) do |sum, permission|
97
97
  sum += permission.ip_ranges.count + permission.user_id_group_pairs.count
98
98
  end
99
99
  end
@@ -2,8 +2,8 @@ module Awspec::Type
2
2
  class SesIdentity < Base
3
3
  def initialize(id)
4
4
  super
5
- @resource = find_ses_identity(id)
6
- @id = @resource if @resource
5
+ @resource_via_client = find_ses_identity(id)
6
+ @id = @resource_via_client if @resource_via_client
7
7
  end
8
8
 
9
9
  def has_identity_policy?(name)
@@ -2,8 +2,8 @@ module Awspec::Type
2
2
  class Subnet < Base
3
3
  def initialize(id)
4
4
  super
5
- @resource = find_subnet(id)
6
- @id = @resource[:subnet_id] if @resource
5
+ @resource_via_client = find_subnet(id)
6
+ @id = @resource_via_client[:subnet_id] if @resource_via_client
7
7
  end
8
8
 
9
9
  STATES = %w(
@@ -12,7 +12,7 @@ module Awspec::Type
12
12
 
13
13
  STATES.each do |state|
14
14
  define_method state + '?' do
15
- @resource[:state] == state
15
+ @resource_via_client[:state] == state
16
16
  end
17
17
  end
18
18
  end
@@ -5,8 +5,8 @@ module Awspec::Type
5
5
  def initialize(id)
6
6
  super
7
7
  @client = @ec2_client
8
- @resource = find_vpc(id)
9
- @id = @resource[:vpc_id] if @resource
8
+ @resource_via_client = find_vpc(id)
9
+ @id = @resource_via_client[:vpc_id] if @resource_via_client
10
10
  end
11
11
 
12
12
  STATES = %w(
@@ -15,7 +15,7 @@ module Awspec::Type
15
15
 
16
16
  STATES.each do |state|
17
17
  define_method state + '?' do
18
- @resource[:state] == state
18
+ @resource_via_client[:state] == state
19
19
  end
20
20
  end
21
21
 
@@ -1,3 +1,3 @@
1
1
  module Awspec
2
- VERSION = '0.25.3'
2
+ VERSION = '0.26.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.25.3
4
+ version: 0.26.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-12-09 00:00:00.000000000 Z
11
+ date: 2015-12-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -164,6 +164,20 @@ dependencies:
164
164
  - - ">="
165
165
  - !ruby/object:Gem::Version
166
166
  version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: pry
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
167
181
  description: RSpec tests for your AWS resources.
168
182
  email:
169
183
  - k1lowxb@gmail.com
@@ -290,6 +304,7 @@ files:
290
304
  - lib/awspec/matcher/belong_to_vpc.rb
291
305
  - lib/awspec/matcher/have_record_set.rb
292
306
  - lib/awspec/matcher/have_route.rb
307
+ - lib/awspec/resource_reader.rb
293
308
  - lib/awspec/setup.rb
294
309
  - lib/awspec/stub.rb
295
310
  - lib/awspec/stub/autoscaling_group.rb