convection 0.2.19 → 0.2.20
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f87de219d4fc032f2a8572a29e659c04e0b8d0bf
|
4
|
+
data.tar.gz: 8a41f0823d8b246c7a2b4f899150462b10ba788a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6f0b4bb4091881c0d9168c2794e2dc03248cf0581ab4320cc88f46387ce24a48b5a36c5d149dea463c9fc9f97683aff85a38d14af5b68bee527fce5da6e62791
|
7
|
+
data.tar.gz: 15e53fcd02858735b88d9da7b8368b524de8028c147a687e42f719b70505ca2076c921e09e769980d557cafeca55566f275d818b59d179ea69c6b84ba8e77b3e
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'forwardable'
|
2
|
+
require_relative '../resource'
|
3
|
+
|
4
|
+
module Convection
|
5
|
+
module Model
|
6
|
+
class Template
|
7
|
+
class Resource
|
8
|
+
##
|
9
|
+
# AWS::EC2::VpcEndpoint
|
10
|
+
##
|
11
|
+
class EC2VPCEndpoint < Resource
|
12
|
+
extend Forwardable
|
13
|
+
|
14
|
+
type 'AWS::EC2::VPCEndpoint'
|
15
|
+
property :vpc, 'VpcId'
|
16
|
+
property :route_tables, 'RouteTableIds', :type => :list
|
17
|
+
property :service_name, 'ServiceName'
|
18
|
+
attr_reader :document # , 'PolicyDocument'
|
19
|
+
|
20
|
+
def_delegators :@document, :allow, :deny, :id, :version, :statement
|
21
|
+
def_delegator :@document, :name, :policy_name
|
22
|
+
|
23
|
+
def initialize(*args)
|
24
|
+
super
|
25
|
+
@document = Model::Mixin::Policy.new(:name => false, :template => @template)
|
26
|
+
end
|
27
|
+
|
28
|
+
def service(val)
|
29
|
+
properties['ServiceName'].set(join('', 'com.amazonaws.', fn_ref('AWS::Region'), val))
|
30
|
+
end
|
31
|
+
|
32
|
+
def render
|
33
|
+
super.tap do |r|
|
34
|
+
document.render(r['Properties'])
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require 'json'
|
3
|
+
require 'pp'
|
4
|
+
|
5
|
+
class TestVpcEndpoint < Minitest::Test
|
6
|
+
def setup
|
7
|
+
@template = ::Convection.template do
|
8
|
+
description 'VPC Endpoint Test Template'
|
9
|
+
|
10
|
+
ec2_vpc_endpoint 'TestVpcEndpoint' do
|
11
|
+
service 's3'
|
12
|
+
vpc 'vpc-foo'
|
13
|
+
route_tables %w(table1 table2)
|
14
|
+
|
15
|
+
allow do
|
16
|
+
s3_resource 'bucket-bar', '*'
|
17
|
+
action 's3:GetObject'
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def from_json
|
24
|
+
JSON.parse(@template.to_json)
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_endpoint
|
28
|
+
json = from_json['Resources']
|
29
|
+
|
30
|
+
endpoint = json['TestVpcEndpoint']
|
31
|
+
refute endpoint.nil?, 'VpcEndpoint not present in generated template'
|
32
|
+
|
33
|
+
props = endpoint['Properties']
|
34
|
+
assert_equal 'vpc-foo', props['VpcId']
|
35
|
+
|
36
|
+
service_name = props['ServiceName']
|
37
|
+
refute service_name.nil?, 'ServiceName not present in generated template'
|
38
|
+
|
39
|
+
assert service_name.is_a? Hash
|
40
|
+
s3_string_arr = service_name['Fn::Join']
|
41
|
+
refute s3_string_arr.nil?, 'ServiceName value is not specified as a string array'
|
42
|
+
|
43
|
+
assert s3_string_arr.is_a? Array
|
44
|
+
s3_path_as_array = s3_string_arr[1]
|
45
|
+
refute s3_path_as_array.nil?, "The path for S3 should be defined as an array in #{s3_string_arr}"
|
46
|
+
|
47
|
+
assert s3_path_as_array.last == 's3', "ServiceName (#{s3_path_as_array}) does not contain \'s3\' as final element"
|
48
|
+
end
|
49
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: convection
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.20
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Manero
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-04-
|
11
|
+
date: 2016-04-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk
|
@@ -148,6 +148,7 @@ files:
|
|
148
148
|
- lib/convection/model/template/resource/aws_ec2_subnet_route_table_association.rb
|
149
149
|
- lib/convection/model/template/resource/aws_ec2_volume.rb
|
150
150
|
- lib/convection/model/template/resource/aws_ec2_vpc.rb
|
151
|
+
- lib/convection/model/template/resource/aws_ec2_vpc_endpoint.rb
|
151
152
|
- lib/convection/model/template/resource/aws_ec2_vpc_gateway_attachment.rb
|
152
153
|
- lib/convection/model/template/resource/aws_elasticache_cluster.rb
|
153
154
|
- lib/convection/model/template/resource/aws_elasticache_parameter_group.rb
|
@@ -209,6 +210,7 @@ files:
|
|
209
210
|
- test/convection/model/test_rds.rb
|
210
211
|
- test/convection/model/test_template.rb
|
211
212
|
- test/convection/model/test_validation.rb
|
213
|
+
- test/convection/model/test_vpc_endpoint.rb
|
212
214
|
- test/test_helper.rb
|
213
215
|
homepage: https://github.com/rapid7/convection
|
214
216
|
licenses:
|
@@ -242,4 +244,5 @@ test_files:
|
|
242
244
|
- test/convection/model/test_rds.rb
|
243
245
|
- test/convection/model/test_template.rb
|
244
246
|
- test/convection/model/test_validation.rb
|
247
|
+
- test/convection/model/test_vpc_endpoint.rb
|
245
248
|
- test/test_helper.rb
|