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
- 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