aws-cfn-compiler 0.9.1 → 0.9.2
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
YmUyYWQyMDc2MTdlNWJmZDlhYmNkNWI1ZGVkNWJjNjU3NzY0MDIxOA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZmFhMWQzOWUxNzI1ZmM1NWNkNTA2YmNhOTI2OTk3MWUyYzU2YzE5Mw==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
M2VmMTk5MzJhZjA5ZTdjYzk2ZWY2NTJhMjdjNWNhMzcxYzdhODdiNDJmMWZh
|
10
|
+
MDU4ODA5YzEwZjVlOTA1NTYxMDE1ZWNlNjBlYTYwYTg3ZmUyNjJhZjE5M2E0
|
11
|
+
M2MwMTIwZjFmOTA0YTg5OWFjMjg0NTFhOGZiYjQyMWQ5ZWQ4OGQ=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NjExNjAxNmQ0MWJiMDRhZGRlMjFkY2Y1NmZhNjFlMTY3MDE3YWFjZjk1MmRm
|
14
|
+
ODc4M2RmZGVjZjkxMzYxODIzOGUzNjNlZTU2NGRlYmYyOTExYjhiZWRmNzA2
|
15
|
+
ZmQ0NGIxMzgxNjdlNGRhN2I5MzViNzU4ZThkMThmMGM1ZDRjZWY=
|
data/aws-cfn-compiler.gemspec
CHANGED
@@ -23,7 +23,7 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.add_dependency 'json'
|
24
24
|
spec.add_dependency 'slop'
|
25
25
|
spec.add_dependency 'inifile'
|
26
|
-
spec.add_dependency 'aws-cfn-dsl', '>= 0.9.
|
26
|
+
spec.add_dependency 'aws-cfn-dsl', '>= 0.9.2'
|
27
27
|
spec.add_dependency 'dldinternet-mixlib-cli', '>= 0.2.0'
|
28
28
|
spec.add_dependency 'dldinternet-mixlib-logging', '>= 0.4.0'
|
29
29
|
|
@@ -25,9 +25,8 @@ module Aws
|
|
25
25
|
|
26
26
|
# Mappings => Resources
|
27
27
|
maps = find_maps(compiled) #.select { |a| !(a =~ /^AWS::/) }
|
28
|
-
rscs = compiled['Resources'].keys
|
29
28
|
mpgs = compiled['Mappings'].nil? ? [] : compiled['Mappings'].keys
|
30
|
-
names = rscs+
|
29
|
+
names = mpgs # rscs+
|
31
30
|
|
32
31
|
unless (maps-names).empty?
|
33
32
|
@logger.error '!!! Unknown mappings !!!'
|
@@ -36,21 +35,44 @@ module Aws
|
|
36
35
|
end
|
37
36
|
abort!
|
38
37
|
end
|
38
|
+
net = (names-maps)
|
39
|
+
unless net.empty?
|
40
|
+
@logger.warn '!!! Unused mappings !!!'
|
41
|
+
net.each do |name|
|
42
|
+
@logger.warn " #{name}"
|
43
|
+
end
|
44
|
+
end
|
39
45
|
@logger.info ' Mappings validated'
|
40
46
|
|
41
47
|
# Parameters => Resources => Outputs
|
42
48
|
refs = find_refs(compiled).select { |a,_| !(a =~ /^AWS::/) }
|
43
49
|
prms = compiled['Parameters'].keys rescue []
|
50
|
+
rscs = compiled['Resources'].keys
|
44
51
|
# outs = compiled['Outputs'].keys rescue []
|
45
52
|
names = rscs+prms
|
46
53
|
|
47
|
-
|
54
|
+
net = (refs.keys-names)
|
55
|
+
unless net.empty?
|
48
56
|
@logger.error '!!! Unknown references !!!'
|
49
|
-
|
57
|
+
net.each do |name|
|
50
58
|
@logger.error " #{name} from #{refs[name][0]}:#{refs[name][1]}"
|
51
59
|
end
|
52
60
|
abort!
|
53
61
|
end
|
62
|
+
net = (prms-refs.keys)
|
63
|
+
unless net.empty?
|
64
|
+
@logger.warn '!!! Unused Parameters !!!'
|
65
|
+
net.each do |name|
|
66
|
+
@logger.warn " #{name}"
|
67
|
+
end
|
68
|
+
end
|
69
|
+
net = (rscs-refs.keys)
|
70
|
+
unless net.empty?
|
71
|
+
@logger.info '!!! Unreported Resources !!!'
|
72
|
+
net.each do |name|
|
73
|
+
@logger.info " #{name}"
|
74
|
+
end
|
75
|
+
end
|
54
76
|
@logger.info ' References validated'
|
55
77
|
end
|
56
78
|
|
@@ -3,6 +3,50 @@ module Aws
|
|
3
3
|
module Compiler
|
4
4
|
module Compile
|
5
5
|
|
6
|
+
def get_meta(spec,args)
|
7
|
+
|
8
|
+
if spec.is_a?(Hash)
|
9
|
+
if args.is_a?(Array)
|
10
|
+
args.flatten!
|
11
|
+
if args.size > 0
|
12
|
+
a = args.shift
|
13
|
+
get_meta(get_meta(spec, a), args)
|
14
|
+
else
|
15
|
+
spec
|
16
|
+
end
|
17
|
+
elsif args.is_a?(Hash)
|
18
|
+
h = {}
|
19
|
+
args.map { |e, v| h[e] = get_meta(spec, v) }
|
20
|
+
h
|
21
|
+
elsif args.is_a?(Symbol)
|
22
|
+
# noinspection RubyStringKeysInHashInspection
|
23
|
+
case args
|
24
|
+
when :Compiler
|
25
|
+
{
|
26
|
+
'Name' => ::Aws::Cfn::Compiler.name,
|
27
|
+
'Version' => ::Aws::Cfn::Compiler::VERSION,
|
28
|
+
}
|
29
|
+
else
|
30
|
+
get_meta(spec, args.to_s)
|
31
|
+
end
|
32
|
+
elsif args.is_a?(String)
|
33
|
+
if spec[args]
|
34
|
+
spec[args]
|
35
|
+
end
|
36
|
+
else
|
37
|
+
nil
|
38
|
+
end
|
39
|
+
else
|
40
|
+
spec
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def meta(*args)
|
45
|
+
if @spec['Meta']
|
46
|
+
get_meta(@spec['Meta'],args)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
6
50
|
def compile_spec
|
7
51
|
desc = if @config[:description]
|
8
52
|
@config[:description]
|
@@ -13,6 +57,18 @@ module Aws
|
|
13
57
|
else
|
14
58
|
'compiled template'
|
15
59
|
end
|
60
|
+
|
61
|
+
begin
|
62
|
+
if desc.match(%r'#\{.+?\}')
|
63
|
+
eval %(desc = "#{desc}")
|
64
|
+
end
|
65
|
+
rescue
|
66
|
+
# noop
|
67
|
+
end
|
68
|
+
# ap meta(:Version)
|
69
|
+
# ap meta(:Compiler,:Name)
|
70
|
+
# ap meta(:Compiler,:Version)
|
71
|
+
|
16
72
|
vers = if @config[:formatversion]
|
17
73
|
@config[:formatversion]
|
18
74
|
else
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aws-cfn-compiler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- PKinney
|
@@ -92,14 +92,14 @@ dependencies:
|
|
92
92
|
requirements:
|
93
93
|
- - ! '>='
|
94
94
|
- !ruby/object:Gem::Version
|
95
|
-
version: 0.9.
|
95
|
+
version: 0.9.2
|
96
96
|
type: :runtime
|
97
97
|
prerelease: false
|
98
98
|
version_requirements: !ruby/object:Gem::Requirement
|
99
99
|
requirements:
|
100
100
|
- - ! '>='
|
101
101
|
- !ruby/object:Gem::Version
|
102
|
-
version: 0.9.
|
102
|
+
version: 0.9.2
|
103
103
|
- !ruby/object:Gem::Dependency
|
104
104
|
name: dldinternet-mixlib-cli
|
105
105
|
requirement: !ruby/object:Gem::Requirement
|