awspec 0.30.0 → 0.31.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|