cfndsl 0.16.2 → 0.16.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +15 -2
- data/Rakefile +1 -3
- data/cfndsl.gemspec +1 -1
- data/lib/cfndsl/external_parameters.rb +6 -6
- data/lib/cfndsl/json_serialisable_object.rb +2 -2
- data/lib/cfndsl/jsonable.rb +11 -10
- data/lib/cfndsl/orchestration_template.rb +3 -5
- data/lib/cfndsl/patches.rb +1 -0
- data/lib/cfndsl/specification.rb +5 -2
- data/lib/cfndsl/version.rb +1 -1
- data/lib/deep_merge/core.rb +3 -3
- data/spec/cfndsl_spec.rb +7 -0
- data/spec/spec_helper.rb +3 -3
- data/spec/types_definition_spec.rb +2 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1dda569f61cd962d5edcf67c2732fc4ddd80259b21e3bd5858fe0a1d1065d51e
|
4
|
+
data.tar.gz: bf43293eef2e64331159bf403c8b9d13f5fb2bca54821b82aaae7b35770e97aa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 79b518eff156a5fabf5d2035a63299fca23c05dcafe48781f86c0896b38c14e0de8690508be9405599bb74115b427dac88b965660fcf7dee155f5c4f49f493eb
|
7
|
+
data.tar.gz: 5655ab233f107f9ebed98ab42cd88d566236acad019bd004eae8c5a086b688d63c79bfe0ff7ffc3a405cae42c0345d3f36c474a6ee26dcda5d3a60292b25b8f0
|
data/CHANGELOG.md
CHANGED
@@ -1,7 +1,20 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
-
## [0.16.
|
4
|
-
[Full Changelog](https://github.com/cfndsl/cfndsl/compare/v0.16.
|
3
|
+
## [0.16.3](https://github.com/cfndsl/cfndsl/tree/0.16.3) (2018-03-20)
|
4
|
+
[Full Changelog](https://github.com/cfndsl/cfndsl/compare/v0.16.2...0.16.3)
|
5
|
+
|
6
|
+
**Closed issues:**
|
7
|
+
|
8
|
+
- Schedule Event Rule creates an invalid JSON on FnGetAtt Arn. [\#344](https://github.com/cfndsl/cfndsl/issues/344)
|
9
|
+
|
10
|
+
**Merged pull requests:**
|
11
|
+
|
12
|
+
- add Fn::Cidr [\#364](https://github.com/cfndsl/cfndsl/pull/364) ([gergnz](https://github.com/gergnz))
|
13
|
+
- fixes for rubocop [\#363](https://github.com/cfndsl/cfndsl/pull/363) ([gergnz](https://github.com/gergnz))
|
14
|
+
- 0.x changes to 1.0.0.pre [\#361](https://github.com/cfndsl/cfndsl/pull/361) ([gergnz](https://github.com/gergnz))
|
15
|
+
|
16
|
+
## [v0.16.2](https://github.com/cfndsl/cfndsl/tree/v0.16.2) (2017-12-07)
|
17
|
+
[Full Changelog](https://github.com/cfndsl/cfndsl/compare/v0.16.1...v0.16.2)
|
5
18
|
|
6
19
|
**Closed issues:**
|
7
20
|
|
data/Rakefile
CHANGED
@@ -35,9 +35,7 @@ task :bump, :type do |_, args|
|
|
35
35
|
|
36
36
|
raise unless types.include?(type)
|
37
37
|
|
38
|
-
if `git rev-parse --abbrev-ref HEAD`.strip != 'master'
|
39
|
-
raise "Looks like you're trying to create a release in a branch, you can only create one in 'master'"
|
40
|
-
end
|
38
|
+
raise "Looks like you're trying to create a release in a branch, you can only create one in 'master'" if `git rev-parse --abbrev-ref HEAD`.strip != 'master'
|
41
39
|
|
42
40
|
version_segments = CfnDsl::VERSION.split('.').map(&:to_i)
|
43
41
|
|
data/cfndsl.gemspec
CHANGED
@@ -27,16 +27,16 @@ module CfnDsl
|
|
27
27
|
@parameters = self.class.defaults.clone
|
28
28
|
end
|
29
29
|
|
30
|
-
def set_param(
|
31
|
-
parameters[
|
30
|
+
def set_param(key, val)
|
31
|
+
parameters[key.to_sym] = val
|
32
32
|
end
|
33
33
|
|
34
|
-
def merge_param(
|
35
|
-
parameters.deep_merge!(
|
34
|
+
def merge_param(xray)
|
35
|
+
parameters.deep_merge!(xray)
|
36
36
|
end
|
37
37
|
|
38
|
-
def get_param(
|
39
|
-
parameters[
|
38
|
+
def get_param(key)
|
39
|
+
parameters[key.to_sym]
|
40
40
|
end
|
41
41
|
alias [] get_param
|
42
42
|
|
data/lib/cfndsl/jsonable.rb
CHANGED
@@ -43,9 +43,7 @@ module CfnDsl
|
|
43
43
|
|
44
44
|
# Equivalent to the CloudFormation template built in function Fn::And
|
45
45
|
def FnAnd(array)
|
46
|
-
if !array || array.count < 2 || array.count > 10
|
47
|
-
raise 'The array passed to Fn::And must have at least 2 elements and no more than 10'
|
48
|
-
end
|
46
|
+
raise 'The array passed to Fn::And must have at least 2 elements and no more than 10' if !array || array.count < 2 || array.count > 10
|
49
47
|
Fn.new('And', array)
|
50
48
|
end
|
51
49
|
|
@@ -70,9 +68,7 @@ module CfnDsl
|
|
70
68
|
|
71
69
|
# Equivalent to the CloudFormation template built in function Fn::Or
|
72
70
|
def FnOr(array)
|
73
|
-
if !array || array.count < 2 || array.count > 10
|
74
|
-
raise 'The array passed to Fn::Or must have at least 2 elements and no more than 10'
|
75
|
-
end
|
71
|
+
raise 'The array passed to Fn::Or must have at least 2 elements and no more than 10' if !array || array.count < 2 || array.count > 10
|
76
72
|
Fn.new('Or', array)
|
77
73
|
end
|
78
74
|
|
@@ -145,6 +141,11 @@ module CfnDsl
|
|
145
141
|
end
|
146
142
|
Fn.new('Join', ['', array])
|
147
143
|
end
|
144
|
+
|
145
|
+
# Equivalent to the CloudFormation template built in function Fn::Cidr
|
146
|
+
def FnCidr(ipblock, count, sizemask)
|
147
|
+
Fn.new('Cidr', [ipblock, count, sizemask])
|
148
|
+
end
|
148
149
|
# rubocop:enable Metrics/AbcSize, Metrics/PerceivedComplexity, Metrics/CyclomaticComplexity
|
149
150
|
end
|
150
151
|
|
@@ -187,8 +188,8 @@ module CfnDsl
|
|
187
188
|
hash
|
188
189
|
end
|
189
190
|
|
190
|
-
def to_json(*
|
191
|
-
as_json.to_json(*
|
191
|
+
def to_json(*args)
|
192
|
+
as_json.to_json(*args)
|
192
193
|
end
|
193
194
|
|
194
195
|
def ref_children
|
@@ -214,8 +215,8 @@ module CfnDsl
|
|
214
215
|
hash
|
215
216
|
end
|
216
217
|
|
217
|
-
def to_json(*
|
218
|
-
as_json.to_json(*
|
218
|
+
def to_json(*args)
|
219
|
+
as_json.to_json(*args)
|
219
220
|
end
|
220
221
|
|
221
222
|
def references
|
@@ -11,7 +11,7 @@ module CfnDsl
|
|
11
11
|
dsl_attr_setter :AWSTemplateFormatVersion, :Description, :Metadata, :Transform
|
12
12
|
dsl_content_object :Condition, :Parameter, :Output, :Resource, :Mapping
|
13
13
|
|
14
|
-
|
14
|
+
GLOBAL_REFS = {
|
15
15
|
'AWS::NotificationARNs' => 1,
|
16
16
|
'AWS::Region' => 1,
|
17
17
|
'AWS::StackId' => 1,
|
@@ -117,13 +117,11 @@ module CfnDsl
|
|
117
117
|
ref = ref.to_s
|
118
118
|
origin = origin.to_s if origin
|
119
119
|
|
120
|
-
return true if
|
120
|
+
return true if GLOBAL_REFS.key?(ref)
|
121
121
|
|
122
122
|
return true if @Parameters && @Parameters.key?(ref)
|
123
123
|
|
124
|
-
if @Resources.key?(ref)
|
125
|
-
return !origin || !@_resource_refs || !@_resource_refs[ref] || !@_resource_refs[ref].key?(origin)
|
126
|
-
end
|
124
|
+
return !origin || !@_resource_refs || !@_resource_refs[ref] || !@_resource_refs[ref].key?(origin) if @Resources.key?(ref)
|
127
125
|
|
128
126
|
false
|
129
127
|
end
|
data/lib/cfndsl/patches.rb
CHANGED
data/lib/cfndsl/specification.rb
CHANGED
@@ -2,7 +2,7 @@ module CfnDsl
|
|
2
2
|
# Helper module for bridging the gap between a static types file included in the repo
|
3
3
|
# and dynamically generating the types directly from the AWS specification
|
4
4
|
module Specification
|
5
|
-
# rubocop:disable Metrics/
|
5
|
+
# rubocop:disable Metrics/AbcSize, Metrics/PerceivedComplexity
|
6
6
|
def self.extract_resources(spec)
|
7
7
|
spec.each_with_object({}) do |(resource_name, resource_info), resources|
|
8
8
|
properties = resource_info['Properties'].each_with_object({}) do |(property_name, property_info), extracted|
|
@@ -36,7 +36,9 @@ module CfnDsl
|
|
36
36
|
resources
|
37
37
|
end
|
38
38
|
end
|
39
|
+
# rubocop:enable Metrics/AbcSize, Metrics/PerceivedComplexity
|
39
40
|
|
41
|
+
# rubocop:disable Metrics/MethodLength, Metrics/AbcSize, Metrics/PerceivedComplexity
|
40
42
|
def self.extract_types(spec)
|
41
43
|
primitive_types = {
|
42
44
|
'String' => 'String',
|
@@ -78,10 +80,11 @@ module CfnDsl
|
|
78
80
|
types
|
79
81
|
end
|
80
82
|
end
|
83
|
+
# rubocop:enable Metrics/MethodLength, Metrics/AbcSize, Metrics/PerceivedComplexity
|
81
84
|
|
82
85
|
def self.determine_spec_file
|
83
86
|
return CfnDsl.specification_file if File.exist? CfnDsl.specification_file
|
84
|
-
File.expand_path('
|
87
|
+
File.expand_path('aws/resource_specification.json', __dir__)
|
85
88
|
end
|
86
89
|
|
87
90
|
def self.extract_from_resource_spec!
|
data/lib/cfndsl/version.rb
CHANGED
data/lib/deep_merge/core.rb
CHANGED
@@ -146,9 +146,7 @@ module DeepMerge
|
|
146
146
|
if array_split_char
|
147
147
|
puts "#{di} split/join on source: #{source.inspect}" if merge_debug
|
148
148
|
source = source.join(array_split_char).split(array_split_char)
|
149
|
-
if dest.is_a?(Array)
|
150
|
-
dest = dest.join(array_split_char).split(array_split_char)
|
151
|
-
end
|
149
|
+
dest = dest.join(array_split_char).split(array_split_char) if dest.is_a?(Array)
|
152
150
|
end
|
153
151
|
# if there's a naked knockout_prefix in source, that means we are to truncate dest
|
154
152
|
if knockout_prefix && source.index(knockout_prefix)
|
@@ -242,3 +240,5 @@ module DeepMerge
|
|
242
240
|
obj
|
243
241
|
end
|
244
242
|
end
|
243
|
+
# rubocop:enable Metrics/AbcSize, Metrics/BlockNesting, Metrics/CyclomaticComplexity, Metrics/MethodLength
|
244
|
+
# rubocop:enable Metrics/ModuleLength, Metrics/PerceivedComplexity, Style/IfInsideElse, Style/Semicolon
|
data/spec/cfndsl_spec.rb
CHANGED
@@ -248,5 +248,12 @@ describe CfnDsl::CloudFormationTemplate do
|
|
248
248
|
expect(func.to_json).to eq('{"Fn::Join":["",["123",{"Ref":"Test"},"456"]]}')
|
249
249
|
end
|
250
250
|
end
|
251
|
+
|
252
|
+
context 'FnCidr', 'Array' do
|
253
|
+
it 'formats correctly' do
|
254
|
+
func = subject.FnCidr('10.0.0.0', '256', '8')
|
255
|
+
expect(func.to_json).to eq('{"Fn::Cidr":["10.0.0.0","256","8"]}')
|
256
|
+
end
|
257
|
+
end
|
251
258
|
end
|
252
259
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -10,12 +10,12 @@ if ENV['CFNDSL_COV']
|
|
10
10
|
end
|
11
11
|
|
12
12
|
require 'cfndsl/globals'
|
13
|
-
CfnDsl.specification_file File.expand_path('
|
13
|
+
CfnDsl.specification_file File.expand_path('../lib/cfndsl/aws/resource_specification.json', __dir__)
|
14
14
|
# use local fixture for tests
|
15
15
|
require 'cfndsl'
|
16
16
|
require 'cfnlego'
|
17
17
|
|
18
|
-
bindir = File.expand_path('
|
18
|
+
bindir = File.expand_path('../bin', __dir__)
|
19
19
|
ENV['PATH'] = [ENV['PATH'], bindir].join(':')
|
20
20
|
|
21
|
-
Dir[File.expand_path('
|
21
|
+
Dir[File.expand_path('support/**/*.rb', __dir__)].each { |f| require f }
|
@@ -3,8 +3,8 @@ require 'spec_helper'
|
|
3
3
|
# This is a somewhat temporary test class to compare functionality
|
4
4
|
# between the AWS, OS and new ways of defining types
|
5
5
|
RSpec.describe 'Type Definitions' do
|
6
|
-
aws_spec = YAML.load_file File.expand_path('
|
7
|
-
os_spec = YAML.load_file File.expand_path('
|
6
|
+
aws_spec = YAML.load_file File.expand_path('../lib/cfndsl/aws/types.yaml', __dir__)
|
7
|
+
os_spec = YAML.load_file File.expand_path('../lib/cfndsl/os/types.yaml', __dir__)
|
8
8
|
new_spec = CfnDsl::Specification.extract_from_resource_spec!
|
9
9
|
|
10
10
|
{ 'AWS' => aws_spec, 'OS' => os_spec, 'New' => new_spec }.each_pair do |cloud, specdef|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cfndsl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.16.
|
4
|
+
version: 0.16.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Steven Jack
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date:
|
14
|
+
date: 2018-03-19 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: bundler
|
@@ -150,7 +150,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
150
150
|
version: '0'
|
151
151
|
requirements: []
|
152
152
|
rubyforge_project:
|
153
|
-
rubygems_version: 2.7.
|
153
|
+
rubygems_version: 2.7.6
|
154
154
|
signing_key:
|
155
155
|
specification_version: 4
|
156
156
|
summary: AWS Cloudformation DSL
|