awspec 0.27.1 → 0.27.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/doc/resource_types.md +1 -1
- data/lib/awspec/generator/spec/route_table.rb +10 -0
- data/lib/awspec/helper/finder/ec2.rb +2 -2
- data/lib/awspec/matcher/have_route.rb +2 -1
- data/lib/awspec/stub/route_table.rb +24 -0
- data/lib/awspec/type/route_table.rb +13 -1
- data/lib/awspec/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cdaf7283fd3ad83496a8d7e26f99250fda35c333
|
4
|
+
data.tar.gz: f91c17c13d033c634c758ce807f5c4dedec8f5ae
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 74d3b19c417e76c287b62575cc0115eb54b96157eaa8996eefbe666fc86f9ba8fb8f3b68bb7284c5c5142d1880df5ee7345007a22cdcbbd25f34044cf932d42f
|
7
|
+
data.tar.gz: a3e07e7c7b5ab90415e6bba0e0fee0c8c223f42c6aa026e799dd5e1e2a7dcf3b66331523f5746d8044e8f0369a5be8f62070f022d830e0a87fa283272b9b7280
|
data/doc/resource_types.md
CHANGED
@@ -202,7 +202,7 @@ end
|
|
202
202
|
```
|
203
203
|
|
204
204
|
|
205
|
-
### 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)
|
205
|
+
### 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)
|
206
206
|
### :unlock: Advanced use
|
207
207
|
|
208
208
|
`rds` can use `Aws::RDS::DBInstance` resource (see http://docs.aws.amazon.com/sdkforruby/api/Aws/RDS/DBInstance.html).
|
@@ -32,6 +32,9 @@ module Awspec::Generator
|
|
32
32
|
connection = find_vpc_peering_connection(route.vpc_peering_connection_id)
|
33
33
|
linespecs.push(ERB.new(route_table_spec_connection_linetemplate, nil, '-').result(binding)) if connection
|
34
34
|
end
|
35
|
+
if route.nat_gateway_id
|
36
|
+
linespecs.push(ERB.new(route_table_spec_nat_linetemplate, nil, '-').result(binding))
|
37
|
+
end
|
35
38
|
end
|
36
39
|
linespecs
|
37
40
|
end
|
@@ -77,6 +80,13 @@ EOF
|
|
77
80
|
end
|
78
81
|
# rubocop:enable Metrics/LineLength
|
79
82
|
|
83
|
+
def route_table_spec_nat_linetemplate
|
84
|
+
template = <<-'EOF'
|
85
|
+
it { should have_route('<%= route.destination_cidr_block %>').target(nat: '<%= route.nat_gateway_id %>') }
|
86
|
+
EOF
|
87
|
+
template
|
88
|
+
end
|
89
|
+
|
80
90
|
def route_table_spec_subnet_linetemplate
|
81
91
|
template = <<-'EOF'
|
82
92
|
<%- if subnet.tag_name -%>
|
@@ -42,8 +42,8 @@ module Awspec::Helper
|
|
42
42
|
})
|
43
43
|
end
|
44
44
|
|
45
|
-
#
|
46
|
-
gateway_types = %w(internet vpn
|
45
|
+
# find_internet_gateway find_vpn_gateway find_customer_gateway find_nat_gateway
|
46
|
+
gateway_types = %w(internet vpn customer nat)
|
47
47
|
gateway_types.each do |type|
|
48
48
|
define_method 'find_' + type + '_gateway' do |*args|
|
49
49
|
gateway_id = args.first
|
@@ -7,13 +7,14 @@ RSpec::Matchers.define :have_route do |destination|
|
|
7
7
|
else
|
8
8
|
@destination = destination
|
9
9
|
end
|
10
|
-
route_table.has_route?(@destination, @gateway_id, @instance_id, @vpc_peering_connection_id)
|
10
|
+
route_table.has_route?(@destination, @gateway_id, @instance_id, @vpc_peering_connection_id, @nat_gateway_id)
|
11
11
|
end
|
12
12
|
|
13
13
|
chain :target do |target|
|
14
14
|
@gateway_id = target[:gateway]
|
15
15
|
@instance_id = target[:instance]
|
16
16
|
@vpc_peering_connection_id = target[:vpc_peering_connection]
|
17
|
+
@nat_gateway_id = target[:nat]
|
17
18
|
end
|
18
19
|
|
19
20
|
chain :destination do |dest|
|
@@ -67,6 +67,7 @@ Aws.config[:ec2] = {
|
|
67
67
|
gateway_id: 'local',
|
68
68
|
instance_id: nil,
|
69
69
|
instance_owner_id: nil,
|
70
|
+
nat_gateway_id: nil,
|
70
71
|
network_interface_id: nil,
|
71
72
|
vpc_peering_connection_id: nil,
|
72
73
|
state: 'active'
|
@@ -77,6 +78,7 @@ Aws.config[:ec2] = {
|
|
77
78
|
gateway_id: 'igw-1ab2345c',
|
78
79
|
instance_id: nil,
|
79
80
|
instance_owner_id: nil,
|
81
|
+
nat_gateway_id: nil,
|
80
82
|
network_interface_id: nil,
|
81
83
|
vpc_peering_connection_id: nil,
|
82
84
|
state: 'active'
|
@@ -87,6 +89,7 @@ Aws.config[:ec2] = {
|
|
87
89
|
gateway_id: nil,
|
88
90
|
instance_id: 'i-ec12345a',
|
89
91
|
instance_owner_id: nil,
|
92
|
+
nat_gateway_id: nil,
|
90
93
|
network_interface_id: nil,
|
91
94
|
vpc_peering_connection_id: nil,
|
92
95
|
state: 'active'
|
@@ -97,9 +100,21 @@ Aws.config[:ec2] = {
|
|
97
100
|
gateway_id: nil,
|
98
101
|
instance_id: nil,
|
99
102
|
instance_owner_id: nil,
|
103
|
+
nat_gateway_id: nil,
|
100
104
|
network_interface_id: nil,
|
101
105
|
vpc_peering_connection_id: 'pcx-c56789de',
|
102
106
|
state: 'active'
|
107
|
+
},
|
108
|
+
{
|
109
|
+
destination_cidr_block: '192.168.3.0/24',
|
110
|
+
destination_prefix_list_id: nil,
|
111
|
+
gateway_id: nil,
|
112
|
+
instance_id: nil,
|
113
|
+
instance_owner_id: nil,
|
114
|
+
nat_gateway_id: 'nat-7ff7777f',
|
115
|
+
network_interface_id: nil,
|
116
|
+
vpc_peering_connection_id: nil,
|
117
|
+
state: 'active'
|
103
118
|
}
|
104
119
|
],
|
105
120
|
associations: [
|
@@ -155,6 +170,15 @@ Aws.config[:ec2] = {
|
|
155
170
|
}
|
156
171
|
]
|
157
172
|
},
|
173
|
+
describe_nat_gateways: {
|
174
|
+
nat_gateways: [
|
175
|
+
{
|
176
|
+
nat_gateway_id: 'nat-7ff7777f',
|
177
|
+
vpc_id: 'vpc-ab123cde',
|
178
|
+
state: 'available'
|
179
|
+
}
|
180
|
+
]
|
181
|
+
},
|
158
182
|
describe_vpc_peering_connections: {
|
159
183
|
vpc_peering_connections: [
|
160
184
|
{
|
@@ -8,7 +8,11 @@ module Awspec::Type
|
|
8
8
|
@id = @resource_via_client[:route_table_id] if @resource_via_client
|
9
9
|
end
|
10
10
|
|
11
|
-
def has_route?(destination,
|
11
|
+
def has_route?(destination,
|
12
|
+
gateway_id = nil,
|
13
|
+
instance_id = nil,
|
14
|
+
vpc_peering_connection_id = nil,
|
15
|
+
nat_gateway_id = nil)
|
12
16
|
@resource_via_client.routes.find do |route|
|
13
17
|
if destination
|
14
18
|
next false unless route.destination_cidr_block == destination
|
@@ -16,6 +20,7 @@ module Awspec::Type
|
|
16
20
|
next target_gateway?(route, gateway_id) if gateway_id
|
17
21
|
next target_instance?(route, instance_id) if instance_id
|
18
22
|
next target_vpc_peering_connection?(route, vpc_peering_connection_id) if vpc_peering_connection_id
|
23
|
+
next target_nat?(route, nat_gateway_id) if nat_gateway_id
|
19
24
|
end
|
20
25
|
end
|
21
26
|
|
@@ -41,6 +46,8 @@ module Awspec::Type
|
|
41
46
|
# customer gateway
|
42
47
|
cgw = find_customer_gateway(gateway_id)
|
43
48
|
return true if cgw && cgw.tag_name == gateway_id
|
49
|
+
# nat gateway
|
50
|
+
return true if route.nat_gateway_id == gateway_id
|
44
51
|
false
|
45
52
|
end
|
46
53
|
|
@@ -52,6 +59,11 @@ module Awspec::Type
|
|
52
59
|
false
|
53
60
|
end
|
54
61
|
|
62
|
+
def target_nat?(route, nat_gateway_id)
|
63
|
+
# nat
|
64
|
+
route.nat_gateway_id == nat_gateway_id
|
65
|
+
end
|
66
|
+
|
55
67
|
def target_vpc_peering_connection?(route, vpc_peering_connection_id)
|
56
68
|
# vpc_peering_connection_id
|
57
69
|
return true if route.vpc_peering_connection_id == vpc_peering_connection_id
|
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.27.
|
4
|
+
version: 0.27.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- k1LoW
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-12-
|
11
|
+
date: 2015-12-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|