aws-cfn-compiler 0.9.1 → 0.9.2

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,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MjUzMDEzY2Q4MDYwNjZkYzZmZWYyOTZmNTYxNTQxOTAyNzdiOTU3Yw==
4
+ YmUyYWQyMDc2MTdlNWJmZDlhYmNkNWI1ZGVkNWJjNjU3NzY0MDIxOA==
5
5
  data.tar.gz: !binary |-
6
- MmE3YmQ0MmFkZTI2ZmZjOTJhNjM0ZGZlMjI0YzUyZTAyMmRhMTdiMw==
6
+ ZmFhMWQzOWUxNzI1ZmM1NWNkNTA2YmNhOTI2OTk3MWUyYzU2YzE5Mw==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- MmNiMDAyMDBmNzIzNWRiNGExODZhMzY5NjQ4NzRhMjBiYmFkNTlkOWJhNTc0
10
- ODc2YTk3NzA5ZWI2MmUzNDg0M2I3ODVlNmE3ZTljZWZlMDgxMGY5YzU0ZTE3
11
- MTdhZjFlMjJjMGNlNTljZjFiYTRhOGE1MTY4ODhhMDRlYzg4MTI=
9
+ M2VmMTk5MzJhZjA5ZTdjYzk2ZWY2NTJhMjdjNWNhMzcxYzdhODdiNDJmMWZh
10
+ MDU4ODA5YzEwZjVlOTA1NTYxMDE1ZWNlNjBlYTYwYTg3ZmUyNjJhZjE5M2E0
11
+ M2MwMTIwZjFmOTA0YTg5OWFjMjg0NTFhOGZiYjQyMWQ5ZWQ4OGQ=
12
12
  data.tar.gz: !binary |-
13
- MmRkNDU0Zjk5ODYwMjE1YTcwZjllYThmMWYwNDRlYmUyODNjZGE4NzEzYTgy
14
- ZTA2OWEyMzI3YjAwNzQxZWRjYjRjMzVhMzk3NjM3MzgxNjVhMGVjZjc2NjNk
15
- MThjYTliMDk3NmNjMjc3ZjdkOTQzMDFlMDk5MDM5MTIxZGUwZmM=
13
+ NjExNjAxNmQ0MWJiMDRhZGRlMjFkY2Y1NmZhNjFlMTY3MDE3YWFjZjk1MmRm
14
+ ODc4M2RmZGVjZjkxMzYxODIzOGUzNjNlZTU2NGRlYmYyOTExYjhiZWRmNzA2
15
+ ZmQ0NGIxMzgxNjdlNGRhN2I5MzViNzU4ZThkMThmMGM1ZDRjZWY=
@@ -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.0'
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+mpgs
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
- unless (refs.keys-names).empty?
54
+ net = (refs.keys-names)
55
+ unless net.empty?
48
56
  @logger.error '!!! Unknown references !!!'
49
- (refs.keys-names).each do |name|
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
@@ -20,7 +20,7 @@ module Aws
20
20
  get = {}
21
21
  item = {}
22
22
  spec[section].each do |rsrc|
23
- @logger.info "\tUsing #{section}::#{rsrc}"
23
+ @logger.debug "\tUsing #{section}::#{rsrc}"
24
24
  refp,sub,base,rel = map_resource_reference(rsrc)
25
25
  if refp.nil?
26
26
  path = vet_path(section)
@@ -1,7 +1,7 @@
1
1
  module Aws
2
2
  module Cfn
3
3
  module Compiler
4
- VERSION = '0.9.1'
4
+ VERSION = '0.9.2'
5
5
  end
6
6
  end
7
7
  end
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.1
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.0
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.0
102
+ version: 0.9.2
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: dldinternet-mixlib-cli
105
105
  requirement: !ruby/object:Gem::Requirement