awspec 0.30.0 → 0.31.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/.rubocop.yml +15 -0
- data/awspec.gemspec +1 -1
- data/doc/_resource_types/ec2.md +8 -0
- data/doc/_resource_types/network_acl.md +8 -0
- data/doc/_resource_types/route_table.md +8 -0
- data/doc/_resource_types/subnet.md +8 -0
- data/doc/_resource_types/vpc.md +10 -2
- data/doc/resource_types.md +48 -3
- data/lib/awspec.rb +1 -0
- data/lib/awspec/command/generate.rb +4 -5
- data/lib/awspec/generator/spec/cloudwatch_alarm.rb +1 -1
- data/lib/awspec/generator/spec/directconnect.rb +1 -1
- data/lib/awspec/generator/spec/ebs.rb +1 -1
- data/lib/awspec/generator/spec/ec2.rb +1 -1
- data/lib/awspec/generator/spec/elb.rb +1 -2
- data/lib/awspec/generator/spec/iam_policy.rb +1 -1
- data/lib/awspec/generator/spec/nat_gateway.rb +1 -1
- data/lib/awspec/generator/spec/network_acl.rb +11 -11
- data/lib/awspec/generator/spec/rds.rb +1 -1
- data/lib/awspec/generator/spec/route53_hosted_zone.rb +2 -3
- data/lib/awspec/generator/spec/route_table.rb +1 -3
- data/lib/awspec/generator/spec/s3_bucket.rb +1 -1
- data/lib/awspec/generator/spec/security_group.rb +6 -6
- data/lib/awspec/generator/spec/subnet.rb +1 -1
- data/lib/awspec/generator/spec/vpc.rb +1 -1
- data/lib/awspec/helper.rb +0 -1
- data/lib/awspec/helper/finder/ec2.rb +1 -0
- data/lib/awspec/matcher.rb +1 -0
- data/lib/awspec/matcher/have_tag.rb +9 -0
- data/lib/awspec/resource_reader.rb +7 -10
- data/lib/awspec/setup.rb +1 -1
- data/lib/awspec/type/base.rb +8 -0
- data/lib/awspec/type/ec2.rb +1 -0
- data/lib/awspec/type/network_acl.rb +1 -0
- data/lib/awspec/type/route53_hosted_zone.rb +2 -1
- data/lib/awspec/type/route_table.rb +1 -0
- data/lib/awspec/type/security_group.rb +2 -5
- data/lib/awspec/type/subnet.rb +1 -0
- data/lib/awspec/type/vpc.rb +1 -0
- data/lib/awspec/version.rb +1 -1
- metadata +8 -8
- data/lib/awspec/helper/credentials_loader.rb +0 -30
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8160e6d118ed605184bcc364565d0a5c0653ee65
|
4
|
+
data.tar.gz: eee4aee22a2cb01f93b81a194a251f79b4ab4560
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1c150a676daa377f6b74514572b6af6a123dc9d269f3bb1cea0822945e57bd367947f66ace85627eec04eb2d79f32c3254fa0f1c8185c3d1cc654c4be4adeaea
|
7
|
+
data.tar.gz: c9b2d48ec1c1db7e08f59a13df0e6feeecc5cbc3652a9379f103395a15e7c784be6cd1cfcc51627fc230305f76237200a3a9f3ed5ffd9310eb7fefe8a21d2d7f
|
data/.rubocop.yml
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
AllCops:
|
2
|
+
TargetRubyVersion: 2.1
|
3
|
+
|
1
4
|
Lint/Eval:
|
2
5
|
Enabled: false
|
3
6
|
|
@@ -25,6 +28,12 @@ Metrics/MethodLength:
|
|
25
28
|
Metrics/PerceivedComplexity:
|
26
29
|
Max: 15
|
27
30
|
|
31
|
+
Performance/StringReplacement:
|
32
|
+
Enabled: false
|
33
|
+
|
34
|
+
Style/Alias:
|
35
|
+
Enabled: false
|
36
|
+
|
28
37
|
Style/BarePercentLiterals:
|
29
38
|
Enabled: false
|
30
39
|
|
@@ -34,6 +43,12 @@ Style/ClassAndModuleChildren:
|
|
34
43
|
Style/Documentation:
|
35
44
|
Enabled: false
|
36
45
|
|
46
|
+
Style/MutableConstant:
|
47
|
+
Enabled: false
|
48
|
+
|
49
|
+
Style/MultilineOperationIndentation:
|
50
|
+
Enabled: false
|
51
|
+
|
37
52
|
Style/StabbyLambdaParentheses:
|
38
53
|
Enabled: false
|
39
54
|
|
data/awspec.gemspec
CHANGED
@@ -23,7 +23,7 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.add_runtime_dependency 'rspec', '~> 3.0'
|
24
24
|
spec.add_runtime_dependency 'rspec-its'
|
25
25
|
spec.add_runtime_dependency 'aws-sdk', '~> 2.1'
|
26
|
-
spec.add_runtime_dependency '
|
26
|
+
spec.add_runtime_dependency 'awsecrets', '~> 0.2'
|
27
27
|
spec.add_runtime_dependency 'thor'
|
28
28
|
spec.add_runtime_dependency 'activesupport'
|
29
29
|
spec.add_runtime_dependency 'term-ansicolor'
|
data/doc/_resource_types/ec2.md
CHANGED
@@ -26,6 +26,14 @@ describe route_table('my-route-table') do
|
|
26
26
|
end
|
27
27
|
```
|
28
28
|
|
29
|
+
### have_tag
|
30
|
+
|
31
|
+
```ruby
|
32
|
+
describe route_table('my-route-table') do
|
33
|
+
it { should have_tag('Name').value('my-route-table') }
|
34
|
+
end
|
35
|
+
```
|
36
|
+
|
29
37
|
### advanced
|
30
38
|
|
31
39
|
`route_table` can use `Aws::EC2::RouteTable` resource (see http://docs.aws.amazon.com/sdkforruby/api/Aws/EC2/RouteTable.html).
|
@@ -14,6 +14,14 @@ describe subnet('my-subnet') do
|
|
14
14
|
end
|
15
15
|
```
|
16
16
|
|
17
|
+
### have_tag
|
18
|
+
|
19
|
+
```ruby
|
20
|
+
describe subnet('my-subnet') do
|
21
|
+
it { should have_tag('Environment').value('QA') }
|
22
|
+
end
|
23
|
+
```
|
24
|
+
|
17
25
|
### advanced
|
18
26
|
|
19
27
|
`subnet` can use `Aws::EC2::Subnet` resource (see http://docs.aws.amazon.com/sdkforruby/api/Aws/EC2/Subnet.html).
|
data/doc/_resource_types/vpc.md
CHANGED
@@ -27,8 +27,16 @@ end
|
|
27
27
|
|
28
28
|
```ruby
|
29
29
|
describe vpc('vpc-ab123cde') do
|
30
|
-
it { should
|
31
|
-
it { should
|
30
|
+
it { should have_route_table('rtb-ab123cde') }
|
31
|
+
it { should have_route_table('my-route-table') }
|
32
|
+
end
|
33
|
+
```
|
34
|
+
|
35
|
+
### have_tag
|
36
|
+
|
37
|
+
```ruby
|
38
|
+
describe vpc('vpc-ab123cde') do
|
39
|
+
it { should have_tag('Stack').value('Networking') }
|
32
40
|
end
|
33
41
|
```
|
34
42
|
|
data/doc/resource_types.md
CHANGED
@@ -280,6 +280,15 @@ end
|
|
280
280
|
```
|
281
281
|
|
282
282
|
|
283
|
+
### have_tag
|
284
|
+
|
285
|
+
```ruby
|
286
|
+
describe ec2('my-ec2') do
|
287
|
+
it { should have_tag('Name').value('my-ec2') }
|
288
|
+
end
|
289
|
+
```
|
290
|
+
|
291
|
+
|
283
292
|
### belong_to_subnet
|
284
293
|
|
285
294
|
```ruby
|
@@ -639,7 +648,7 @@ end
|
|
639
648
|
|
640
649
|
This matcher does not support Amazon S3 event sources. ( [See SDK doc](http://docs.aws.amazon.com/sdkforruby/api/Aws/Lambda/Client.html#list_event_source_mappings-instance_method) )
|
641
650
|
|
642
|
-
### its(:function_name), its(:function_arn), its(:runtime), its(:role), its(:handler), its(:code_size), its(:description), its(:timeout), its(:memory_size), its(:last_modified), its(:code_sha_256), its(:version)
|
651
|
+
### its(:function_name), its(:function_arn), its(:runtime), its(:role), its(:handler), its(:code_size), its(:description), its(:timeout), its(:memory_size), its(:last_modified), its(:code_sha_256), its(:version), its(:vpc_config)
|
643
652
|
## <a name="launch_configuration">launch_configuration</a>
|
644
653
|
|
645
654
|
LaunchConfiguration resource type.
|
@@ -724,6 +733,15 @@ end
|
|
724
733
|
```
|
725
734
|
|
726
735
|
|
736
|
+
### have_tag
|
737
|
+
|
738
|
+
```ruby
|
739
|
+
describe network_acl('my-network-acl') do
|
740
|
+
it { should have_tag('Name').value('my-network-acl') }
|
741
|
+
end
|
742
|
+
```
|
743
|
+
|
744
|
+
|
727
745
|
### belong_to_vpc
|
728
746
|
|
729
747
|
```ruby
|
@@ -950,6 +968,15 @@ end
|
|
950
968
|
```
|
951
969
|
|
952
970
|
|
971
|
+
### have_tag
|
972
|
+
|
973
|
+
```ruby
|
974
|
+
describe route_table('my-route-table') do
|
975
|
+
it { should have_tag('Name').value('my-route-table') }
|
976
|
+
end
|
977
|
+
```
|
978
|
+
|
979
|
+
|
953
980
|
### its(:route_table_id), its(:vpc_id)
|
954
981
|
### :unlock: Advanced use
|
955
982
|
|
@@ -1160,6 +1187,15 @@ end
|
|
1160
1187
|
```
|
1161
1188
|
|
1162
1189
|
|
1190
|
+
### have_tag
|
1191
|
+
|
1192
|
+
```ruby
|
1193
|
+
describe subnet('my-subnet') do
|
1194
|
+
it { should have_tag('Environment').value('QA') }
|
1195
|
+
end
|
1196
|
+
```
|
1197
|
+
|
1198
|
+
|
1163
1199
|
### its(:subnet_id), its(:state), its(:vpc_id), its(:cidr_block), its(:available_ip_address_count), its(:availability_zone), its(:default_for_az), its(:map_public_ip_on_launch)
|
1164
1200
|
### :unlock: Advanced use
|
1165
1201
|
|
@@ -1215,8 +1251,17 @@ end
|
|
1215
1251
|
|
1216
1252
|
```ruby
|
1217
1253
|
describe vpc('vpc-ab123cde') do
|
1218
|
-
it { should
|
1219
|
-
it { should
|
1254
|
+
it { should have_route_table('rtb-ab123cde') }
|
1255
|
+
it { should have_route_table('my-route-table') }
|
1256
|
+
end
|
1257
|
+
```
|
1258
|
+
|
1259
|
+
|
1260
|
+
### have_tag
|
1261
|
+
|
1262
|
+
```ruby
|
1263
|
+
describe vpc('vpc-ab123cde') do
|
1264
|
+
it { should have_tag('Stack').value('Networking') }
|
1220
1265
|
end
|
1221
1266
|
```
|
1222
1267
|
|
data/lib/awspec.rb
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
require 'thor'
|
2
2
|
require 'awspec/setup'
|
3
|
-
require 'awspec/helper/credentials_loader'
|
4
3
|
|
5
4
|
module Awspec
|
6
5
|
class Generate < Thor
|
@@ -13,7 +12,7 @@ module Awspec
|
|
13
12
|
types.each do |type|
|
14
13
|
desc type + ' [vpc_id]', "Generate #{type} spec from VPC ID (or VPC \"Name\" tag)"
|
15
14
|
define_method type do |*args|
|
16
|
-
|
15
|
+
Awsecrets.load(profile: options[:profile])
|
17
16
|
vpc_id = args.first
|
18
17
|
eval "puts Awspec::Generator::Spec::#{type.camelize}.new.generate_by_vpc_id(vpc_id)"
|
19
18
|
end
|
@@ -21,13 +20,13 @@ module Awspec
|
|
21
20
|
|
22
21
|
desc 'route53_hosted_zone [example.com.]', 'Generate route53_hosted_zone spec from Domain name'
|
23
22
|
def route53_hosted_zone(hosted_zone)
|
24
|
-
|
23
|
+
Awsecrets.load(profile: options[:profile])
|
25
24
|
puts Awspec::Generator::Spec::Route53HostedZone.new.generate_by_domain_name(hosted_zone)
|
26
25
|
end
|
27
26
|
|
28
27
|
desc 's3_bucket [backet_name]', 'Generate s3_bucket spec from S3 bucket name. if NO args, Generate all.'
|
29
28
|
def s3_bucket(bucket_name = nil)
|
30
|
-
|
29
|
+
Awsecrets.load(profile: options[:profile])
|
31
30
|
if bucket_name
|
32
31
|
puts Awspec::Generator::Spec::S3Bucket.new.generate(bucket_name)
|
33
32
|
else
|
@@ -46,7 +45,7 @@ module Awspec
|
|
46
45
|
desc type, "Generate #{type} spec"
|
47
46
|
end
|
48
47
|
define_method type do
|
49
|
-
|
48
|
+
Awsecrets.load(profile: options[:profile])
|
50
49
|
eval "puts Awspec::Generator::Spec::#{type.camelize}.new.generate_all"
|
51
50
|
end
|
52
51
|
end
|
@@ -4,7 +4,7 @@ module Awspec::Generator
|
|
4
4
|
include Awspec::Helper::Finder
|
5
5
|
def generate_all
|
6
6
|
alarms = select_all_cloudwatch_alarms
|
7
|
-
|
7
|
+
raise 'Not Found alarm' if alarms.empty?
|
8
8
|
ERB.new(alarm_spec_template, nil, '-').result(binding).chomp
|
9
9
|
end
|
10
10
|
|
@@ -8,7 +8,7 @@ module Awspec::Generator
|
|
8
8
|
|
9
9
|
def generate_virtual_interface_all
|
10
10
|
virtual_interfaces = select_virtual_interfaces
|
11
|
-
|
11
|
+
raise 'Not Found virtual_interfaces' if virtual_interfaces.empty?
|
12
12
|
ERB.new(virtual_interface_spec_template, nil, '-').result(binding).chomp
|
13
13
|
end
|
14
14
|
|
@@ -4,7 +4,7 @@ module Awspec::Generator
|
|
4
4
|
include Awspec::Helper::Finder
|
5
5
|
def generate_all
|
6
6
|
volumes = select_all_attached_ebs
|
7
|
-
|
7
|
+
raise 'Not Found EBS' if volumes.empty?
|
8
8
|
specs = volumes.map do |volume|
|
9
9
|
attachment_specs = generate_attachment_specs(volume)
|
10
10
|
content = ERB.new(ebs_spec_template, nil, '-').result(binding).gsub(/^\n/, '')
|
@@ -8,7 +8,7 @@ module Awspec::Generator
|
|
8
8
|
instance_type private_ip_address public_ip_address
|
9
9
|
)
|
10
10
|
vpc = find_vpc(vpc_id)
|
11
|
-
|
11
|
+
raise 'Not Found VPC' unless vpc
|
12
12
|
@vpc_id = vpc[:vpc_id]
|
13
13
|
@vpc_tag_name = vpc.tag_name
|
14
14
|
instances = select_ec2_by_vpc_id(@vpc_id)
|
@@ -11,7 +11,7 @@ module Awspec::Generator
|
|
11
11
|
unhealthy_threshold healthy_threshold
|
12
12
|
)
|
13
13
|
vpc = find_vpc(vpc_id)
|
14
|
-
|
14
|
+
raise 'Not Found VPC' unless vpc
|
15
15
|
@vpc_id = vpc[:vpc_id]
|
16
16
|
@vpc_tag_name = vpc.tag_name
|
17
17
|
lbs = select_elb_by_vpc_id(@vpc_id)
|
@@ -22,7 +22,6 @@ module Awspec::Generator
|
|
22
22
|
specs.join("\n")
|
23
23
|
end
|
24
24
|
|
25
|
-
# rubocop:disable all
|
26
25
|
def elb_spec_template
|
27
26
|
template = <<-'EOF'
|
28
27
|
describe elb('<%= lb.load_balancer_name %>') do
|
@@ -4,7 +4,7 @@ module Awspec::Generator
|
|
4
4
|
include Awspec::Helper::Finder
|
5
5
|
def generate_all
|
6
6
|
policies = select_all_attached_policies
|
7
|
-
|
7
|
+
raise 'Not Found policy' if policies.empty?
|
8
8
|
ERB.new(policy_spec_template, nil, '-').result(binding).chomp
|
9
9
|
end
|
10
10
|
|
@@ -6,7 +6,7 @@ module Awspec::Generator
|
|
6
6
|
describes = %w(
|
7
7
|
)
|
8
8
|
vpc = find_vpc(vpc_id)
|
9
|
-
|
9
|
+
raise 'Not Found VPC' unless vpc
|
10
10
|
@vpc_id = vpc[:vpc_id]
|
11
11
|
@vpc_tag_name = vpc.tag_name
|
12
12
|
network_acls = select_network_acl_by_vpc_id(@vpc_id)
|
@@ -30,11 +30,11 @@ module Awspec::Generator
|
|
30
30
|
specs = []
|
31
31
|
acl.associations.each do |a|
|
32
32
|
subnet = find_subnet(a.subnet_id)
|
33
|
-
if subnet.tag_name
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
33
|
+
spec = if subnet.tag_name
|
34
|
+
"it { should have_subnet('" + subnet.tag_name + "') }"
|
35
|
+
else
|
36
|
+
"it { should have_subnet('" + subnet.subnet_id + "') }"
|
37
|
+
end
|
38
38
|
specs.push(spec)
|
39
39
|
end
|
40
40
|
specs
|
@@ -52,11 +52,11 @@ module Awspec::Generator
|
|
52
52
|
line += ' ' + actions[entry.rule_action.to_sym]
|
53
53
|
port_range = entry.port_range
|
54
54
|
unless port_range.nil?
|
55
|
-
if port_range.from == port_range.to
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
55
|
+
port = if port_range.from == port_range.to
|
56
|
+
port_range.from.to_s
|
57
|
+
else
|
58
|
+
"'" + port_range.from.to_s + '-' + port_range.to.to_s + "'"
|
59
|
+
end
|
60
60
|
line += '(' + port + ')'
|
61
61
|
end
|
62
62
|
line += ".protocol('" + protocols[entry.protocol.to_i] + "')"
|
@@ -7,7 +7,7 @@ module Awspec::Generator
|
|
7
7
|
db_instance_identifier db_instance_class multi_az availability_zone
|
8
8
|
)
|
9
9
|
vpc = find_vpc(vpc_id)
|
10
|
-
|
10
|
+
raise 'Not Found VPC' unless vpc
|
11
11
|
@vpc_id = vpc[:vpc_id]
|
12
12
|
@vpc_tag_name = vpc.tag_name
|
13
13
|
db_instances = select_rds_by_vpc_id(@vpc_id)
|
@@ -4,7 +4,7 @@ module Awspec::Generator
|
|
4
4
|
include Awspec::Helper::Finder
|
5
5
|
def generate_by_domain_name(id)
|
6
6
|
hosted_zone = find_hosted_zone(id)
|
7
|
-
|
7
|
+
raise 'Not Found Route53 Hosted Zone' unless hosted_zone
|
8
8
|
id = hosted_zone[:id]
|
9
9
|
res = @route53_client.list_resource_record_sets({
|
10
10
|
hosted_zone_id: id
|
@@ -24,7 +24,6 @@ it { should have_record_set('<%= name %>').<%= type %>('<%= v %>').ttl(<%= recor
|
|
24
24
|
EOF
|
25
25
|
v = record_set.resource_records.map { |r| r.value }.join("\n")
|
26
26
|
type = record_set.type.downcase
|
27
|
-
return ERB.new(template, nil, '-').result(binding)
|
28
27
|
else
|
29
28
|
# ALIAS
|
30
29
|
dns_name = record_set.alias_target.dns_name
|
@@ -32,8 +31,8 @@ EOF
|
|
32
31
|
template = <<-'EOF'
|
33
32
|
it { should have_record_set('<%= name %>').alias('<%= dns_name %>', '<%= hosted_zone_id %>') }
|
34
33
|
EOF
|
35
|
-
return ERB.new(template, nil, '-').result(binding)
|
36
34
|
end
|
35
|
+
ERB.new(template, nil, '-').result(binding)
|
37
36
|
end
|
38
37
|
|
39
38
|
def route53_hosted_zone_spec_template
|
@@ -6,7 +6,7 @@ module Awspec::Generator
|
|
6
6
|
describes = %w(
|
7
7
|
)
|
8
8
|
vpc = find_vpc(vpc_id)
|
9
|
-
|
9
|
+
raise 'Not Found VPC' unless vpc
|
10
10
|
@vpc_id = vpc[:vpc_id]
|
11
11
|
@vpc_tag_name = vpc.tag_name
|
12
12
|
route_tables = select_route_table_by_vpc_id(@vpc_id)
|
@@ -67,7 +67,6 @@ EOF
|
|
67
67
|
template
|
68
68
|
end
|
69
69
|
|
70
|
-
# rubocop:disable Metrics/LineLength
|
71
70
|
def route_table_spec_connection_linetemplate
|
72
71
|
template = <<-'EOF'
|
73
72
|
<%- if connection.tag_name -%>
|
@@ -78,7 +77,6 @@ it { should have_route('<%= route.destination_cidr_block %>').target(vpc_peering
|
|
78
77
|
EOF
|
79
78
|
template
|
80
79
|
end
|
81
|
-
# rubocop:enable Metrics/LineLength
|
82
80
|
|
83
81
|
def route_table_spec_nat_linetemplate
|
84
82
|
template = <<-'EOF'
|
@@ -7,7 +7,7 @@ module Awspec::Generator
|
|
7
7
|
group_id group_name
|
8
8
|
)
|
9
9
|
vpc = find_vpc(vpc_id)
|
10
|
-
|
10
|
+
raise 'Not Found VPC' unless vpc
|
11
11
|
@vpc_id = vpc[:vpc_id]
|
12
12
|
@vpc_tag_name = vpc.tag_name
|
13
13
|
sgs = select_security_group_by_vpc_id(@vpc_id)
|
@@ -35,11 +35,11 @@ module Awspec::Generator
|
|
35
35
|
next
|
36
36
|
end
|
37
37
|
|
38
|
-
if permission.from_port == permission.to_port
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
38
|
+
port = if permission.from_port == permission.to_port
|
39
|
+
permission.from_port
|
40
|
+
else
|
41
|
+
"'" + permission.from_port.to_s + '-' + permission.to_port.to_s + "'"
|
42
|
+
end
|
43
43
|
|
44
44
|
protocol = permission.ip_protocol
|
45
45
|
permission.ip_ranges.each do |ip_range|
|
data/lib/awspec/helper.rb
CHANGED
data/lib/awspec/matcher.rb
CHANGED
@@ -4,17 +4,14 @@ module Awspec
|
|
4
4
|
end
|
5
5
|
|
6
6
|
def method_missing_via_black_list(name, delegate_to: nil)
|
7
|
-
|
8
|
-
if match_black_list?(name)
|
9
|
-
|
7
|
+
raise ArguementError, 'delegate_to: must be specified' unless delegate_to
|
8
|
+
raise CalledMethodInBlackList, "Method call #{name.inspect} is black-listed" if match_black_list?(name)
|
9
|
+
attr = delegate_to.send(name)
|
10
|
+
case attr
|
11
|
+
when Aws::Resources::Resource
|
12
|
+
ResourceReader.new(attr)
|
10
13
|
else
|
11
|
-
attr
|
12
|
-
case attr
|
13
|
-
when Aws::Resources::Resource
|
14
|
-
ResourceReader.new(attr)
|
15
|
-
else
|
16
|
-
attr
|
17
|
-
end
|
14
|
+
attr
|
18
15
|
end
|
19
16
|
end
|
20
17
|
|
data/lib/awspec/setup.rb
CHANGED
@@ -13,7 +13,7 @@ module Awspec
|
|
13
13
|
def self.generate_spec_helper
|
14
14
|
content = <<-'EOF'
|
15
15
|
require 'awspec'
|
16
|
-
|
16
|
+
Awsecrets.load(secrets_path: File.expand_path('./secrets.yml', File.dirname(__FILE__)))
|
17
17
|
EOF
|
18
18
|
dir = 'spec'
|
19
19
|
if File.exist? dir
|
data/lib/awspec/type/base.rb
CHANGED
@@ -33,6 +33,14 @@ module Awspec::Type
|
|
33
33
|
end
|
34
34
|
end
|
35
35
|
|
36
|
+
def self.tags_allowed
|
37
|
+
define_method :has_tag? do |key, value|
|
38
|
+
tags = @resource_via_client[:tags]
|
39
|
+
return false unless tags
|
40
|
+
tags.any? { |t| t['key'] == key && t['value'] == value }
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
36
44
|
def method_missing(name)
|
37
45
|
describe = name.to_sym
|
38
46
|
if @resource_via_client.members.include?(describe)
|
data/lib/awspec/type/ec2.rb
CHANGED
@@ -11,7 +11,8 @@ module Awspec::Type
|
|
11
11
|
def has_record_set?(name, type, value, options = {})
|
12
12
|
name.gsub!(/\*/, '\\\052') # wildcard support
|
13
13
|
ret = @resource_via_client_record_sets.find do |record_set|
|
14
|
-
next if record_set.type != type.upcase
|
14
|
+
# next if record_set.type != type.upcase
|
15
|
+
next unless record_set.type.casecmp(type) == 0
|
15
16
|
options[:ttl] = record_set.ttl unless options[:ttl]
|
16
17
|
if !record_set.resource_records.empty?
|
17
18
|
v = record_set.resource_records.map { |r| r.value }.join("\n")
|
@@ -10,11 +10,8 @@ module Awspec::Type
|
|
10
10
|
end
|
11
11
|
|
12
12
|
def opened?(port = nil, protocol = nil, cidr = nil)
|
13
|
-
if @inbound
|
14
|
-
|
15
|
-
else
|
16
|
-
return outbound_opened?(port, protocol, cidr)
|
17
|
-
end
|
13
|
+
return inbound_opened?(port, protocol, cidr) if @inbound
|
14
|
+
outbound_opened?(port, protocol, cidr)
|
18
15
|
end
|
19
16
|
|
20
17
|
def inbound_opened?(port = nil, protocol = nil, cidr = nil)
|
data/lib/awspec/type/subnet.rb
CHANGED
data/lib/awspec/type/vpc.rb
CHANGED
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.31.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-
|
11
|
+
date: 2016-02-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -53,19 +53,19 @@ dependencies:
|
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '2.1'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: awsecrets
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
61
|
+
version: '0.2'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - "
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
68
|
+
version: '0.2'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: thor
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -281,7 +281,6 @@ files:
|
|
281
281
|
- lib/awspec/generator/template.rb
|
282
282
|
- lib/awspec/helper.rb
|
283
283
|
- lib/awspec/helper/color.rb
|
284
|
-
- lib/awspec/helper/credentials_loader.rb
|
285
284
|
- lib/awspec/helper/finder.rb
|
286
285
|
- lib/awspec/helper/finder/ami.rb
|
287
286
|
- lib/awspec/helper/finder/autoscaling.rb
|
@@ -314,6 +313,7 @@ files:
|
|
314
313
|
- lib/awspec/matcher/belong_to_vpc.rb
|
315
314
|
- lib/awspec/matcher/have_record_set.rb
|
316
315
|
- lib/awspec/matcher/have_route.rb
|
316
|
+
- lib/awspec/matcher/have_tag.rb
|
317
317
|
- lib/awspec/resource_reader.rb
|
318
318
|
- lib/awspec/setup.rb
|
319
319
|
- lib/awspec/stub.rb
|
@@ -1,30 +0,0 @@
|
|
1
|
-
require 'aws-sdk'
|
2
|
-
require 'aws_config'
|
3
|
-
|
4
|
-
module Awspec::Helper
|
5
|
-
module CredentialsLoader
|
6
|
-
def self.load(profile = nil)
|
7
|
-
profile = ENV['AWS_PROFILE'] if profile.nil?
|
8
|
-
if profile
|
9
|
-
# SharedCredentials
|
10
|
-
aws_config = AWSConfig.profiles[profile]
|
11
|
-
aws_config = AWSConfig.profiles['default'] unless aws_config
|
12
|
-
Aws.config[:region] = aws_config.config_hash[:region] if aws_config
|
13
|
-
Aws.config[:credentials] = Aws::SharedCredentials.new(profile_name: profile)
|
14
|
-
else
|
15
|
-
# secrets.yml
|
16
|
-
creds = YAML.load_file('spec/secrets.yml') if File.exist?('spec/secrets.yml')
|
17
|
-
creds = YAML.load_file('secrets.yml') if File.exist?('secrets.yml')
|
18
|
-
return if creds.nil?
|
19
|
-
Aws.config.update({
|
20
|
-
region: creds['region']
|
21
|
-
}) if creds.include?('region')
|
22
|
-
Aws.config.update({
|
23
|
-
credentials: Aws::Credentials.new(
|
24
|
-
creds['aws_access_key_id'],
|
25
|
-
creds['aws_secret_access_key'])
|
26
|
-
}) if creds.include?('aws_access_key_id') && creds.include?('aws_secret_access_key')
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|