abide_dev_utils 0.11.0 → 0.11.1

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.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -14
  3. data/lib/abide_dev_utils/cem/benchmark.rb +330 -136
  4. data/lib/abide_dev_utils/cem/generate/coverage_report.rb +380 -0
  5. data/lib/abide_dev_utils/cem/generate/reference.rb +157 -33
  6. data/lib/abide_dev_utils/cem/generate.rb +5 -4
  7. data/lib/abide_dev_utils/cem/hiera_data/mapping_data/map_data.rb +110 -0
  8. data/lib/abide_dev_utils/cem/hiera_data/mapping_data/mixins.rb +46 -0
  9. data/lib/abide_dev_utils/cem/hiera_data/mapping_data.rb +146 -0
  10. data/lib/abide_dev_utils/cem/hiera_data/resource_data/control.rb +127 -0
  11. data/lib/abide_dev_utils/cem/hiera_data/resource_data/parameters.rb +90 -0
  12. data/lib/abide_dev_utils/cem/hiera_data/resource_data/resource.rb +102 -0
  13. data/lib/abide_dev_utils/cem/hiera_data/resource_data.rb +310 -0
  14. data/lib/abide_dev_utils/cem/hiera_data.rb +7 -0
  15. data/lib/abide_dev_utils/cem/mapping/mapper.rb +161 -34
  16. data/lib/abide_dev_utils/cem/validate/resource_data.rb +33 -0
  17. data/lib/abide_dev_utils/cem/validate.rb +10 -0
  18. data/lib/abide_dev_utils/cem.rb +0 -1
  19. data/lib/abide_dev_utils/cli/cem.rb +20 -2
  20. data/lib/abide_dev_utils/dot_number_comparable.rb +75 -0
  21. data/lib/abide_dev_utils/errors/cem.rb +10 -0
  22. data/lib/abide_dev_utils/ppt/class_utils.rb +1 -1
  23. data/lib/abide_dev_utils/ppt/code_gen/data_types.rb +51 -0
  24. data/lib/abide_dev_utils/ppt/code_gen/generate.rb +15 -0
  25. data/lib/abide_dev_utils/ppt/code_gen/resource.rb +59 -0
  26. data/lib/abide_dev_utils/ppt/code_gen/resource_types/base.rb +93 -0
  27. data/lib/abide_dev_utils/ppt/code_gen/resource_types/class.rb +17 -0
  28. data/lib/abide_dev_utils/ppt/code_gen/resource_types/manifest.rb +16 -0
  29. data/lib/abide_dev_utils/ppt/code_gen/resource_types/parameter.rb +16 -0
  30. data/lib/abide_dev_utils/ppt/code_gen/resource_types/strings.rb +13 -0
  31. data/lib/abide_dev_utils/ppt/code_gen/resource_types.rb +6 -0
  32. data/lib/abide_dev_utils/ppt/code_gen.rb +15 -0
  33. data/lib/abide_dev_utils/ppt/code_introspection.rb +102 -0
  34. data/lib/abide_dev_utils/ppt/hiera.rb +4 -1
  35. data/lib/abide_dev_utils/ppt/puppet_module.rb +2 -1
  36. data/lib/abide_dev_utils/ppt.rb +3 -0
  37. data/lib/abide_dev_utils/version.rb +1 -1
  38. data/lib/abide_dev_utils/xccdf/parser/helpers.rb +146 -0
  39. data/lib/abide_dev_utils/xccdf/parser/objects.rb +87 -144
  40. data/lib/abide_dev_utils/xccdf/parser.rb +5 -0
  41. data/lib/abide_dev_utils/xccdf/utils.rb +89 -0
  42. data/lib/abide_dev_utils/xccdf.rb +3 -0
  43. metadata +27 -3
  44. data/lib/abide_dev_utils/cem/coverage_report.rb +0 -348
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7cf13209260261bcf509e7953d4af4a47aa7301cc7c2e8227c3d736d163cd0b1
4
- data.tar.gz: a6d6cb52aadf58e33ce6a57d77c7921226ebb130aa2d6e4350c42c197df0f06c
3
+ metadata.gz: 1b3b154482634fc055b078ce36dbf15a387c4da25f6061f96128f33fb3f29e18
4
+ data.tar.gz: ecf7d53d1b06680970bc21affdbd7603193a84a9c1cac46d53cc1e95b13abbb6
5
5
  SHA512:
6
- metadata.gz: be0ac34b2ee3ea116793580ef1ffff41ca4f11b41ceb6587866183734f1aee15a566b5a0063b106a18962739a1d4d7091d6e8d276dffdf6101cfcfb48afb3832
7
- data.tar.gz: 97f9b753cb94f1a1d326eb370a59ae35d00a3c2797b6e030941e51f51e9f7713eca0af9148f9858a0f4c375273bb468ab1df928cd589903d48b9bbe7c86a92fd
6
+ metadata.gz: f8c1b8d427bcde511d53dc505c4c10853a6cd963d0da3d27148b81342f0bd497e364f17cd6212fde0a4d97fb3e0a25d566d11cef679c7220a05c696c6df95191
7
+ data.tar.gz: 54fd1971163662139121b3e9b7b31a7be8ad42127f8a08b4271cb995454a3b90460477d11b6e13148dfa3d950cfb2b86d84ea491e436ee6b28518c9ae66486bb
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- abide_dev_utils (0.11.0)
4
+ abide_dev_utils (0.11.1)
5
5
  amatch (~> 0.4)
6
6
  cmdparse (~> 3.0)
7
7
  facterdb (>= 1.18)
@@ -143,8 +143,6 @@ GEM
143
143
  nio4r (2.5.8)
144
144
  nokogiri (1.13.6-x86_64-darwin)
145
145
  racc (~> 1.4)
146
- nokogiri (1.13.6-x86_64-linux)
147
- racc (~> 1.4)
148
146
  oauth (0.5.10)
149
147
  octokit (4.25.0)
150
148
  faraday (>= 1, < 3)
@@ -166,17 +164,6 @@ GEM
166
164
  coderay (~> 1.1)
167
165
  method_source (~> 1.0)
168
166
  public_suffix (4.0.7)
169
- puppet (7.17.0)
170
- concurrent-ruby (~> 1.0)
171
- deep_merge (~> 1.0)
172
- facter (> 2.0.1, < 5)
173
- fast_gettext (>= 1.1, < 3)
174
- hiera (>= 3.2.1, < 4)
175
- locale (~> 2.1)
176
- multi_json (~> 1.10)
177
- puppet-resource_api (~> 1.5)
178
- scanf (~> 1.0)
179
- semantic_puppet (~> 1.0)
180
167
  puppet (7.17.0-universal-darwin)
181
168
  CFPropertyList (~> 2.2)
182
169
  concurrent-ruby (~> 1.0)
@@ -1,14 +1,313 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'set'
4
+ require 'abide_dev_utils/dot_number_comparable'
3
5
  require 'abide_dev_utils/errors'
4
- require 'abide_dev_utils/ppt/facter_utils'
6
+ require 'abide_dev_utils/ppt'
5
7
  require 'abide_dev_utils/cem/mapping/mapper'
6
8
 
7
9
  module AbideDevUtils
8
10
  module CEM
9
- # Repesents a benchmark for purposes of organizing data for markdown representation
11
+ # Represents a resource data resource statement
12
+ class Resource
13
+ attr_reader :title, :type
14
+
15
+ def initialize(title, data, framework, mapper)
16
+ @title = title
17
+ @data = data
18
+ @type = data['type']
19
+ @framework = framework
20
+ @mapper = mapper
21
+ @dependent = []
22
+ end
23
+
24
+ def manifest
25
+ @manifest ||= load_manifest
26
+ end
27
+
28
+ def manifest?
29
+ !manifest.nil?
30
+ end
31
+
32
+ def file_path
33
+ @file_path ||= AbideDevUtils::Ppt::ClassUtils.path_from_class_name((type == 'class' ? title : type))
34
+ end
35
+
36
+ def controls
37
+ @controls || load_controls
38
+ end
39
+
40
+ def cem_options?
41
+ !cem_options.empty?
42
+ end
43
+
44
+ def cem_options
45
+ @cem_options ||= resource_properties('cem_options')
46
+ end
47
+
48
+ def cem_protected?
49
+ !cem_protected.empty?
50
+ end
51
+
52
+ def cem_protected
53
+ @cem_protected ||= resource_properties('cem_protected')
54
+ end
55
+
56
+ def dependent_controls
57
+ @dependent_controls ||= @dependent.flatten.uniq.filter_map { |x| controls.find { |y| y.id == x } }
58
+ end
59
+
60
+ def to_reference
61
+ "#{type.split('::').map(&:capitalize).join('::')}['#{title}']"
62
+ end
63
+
64
+ private
65
+
66
+ attr_reader :data, :framework, :mapper
67
+
68
+ def load_manifest
69
+ AbideDevUtils::Ppt::CodeIntrospection::Manifest.new(file_path)
70
+ rescue StandardError
71
+ nil
72
+ end
73
+
74
+ def resource_properties(prop_name)
75
+ props = Set.new
76
+ return props unless data.key?(prop_name)
77
+
78
+ data[prop_name].each do |param, param_val|
79
+ props << { name: param,
80
+ type: ruby_class_to_puppet_type(param_val.class.to_s),
81
+ default: param_val }
82
+ end
83
+ props
84
+ end
85
+
86
+ def load_controls
87
+ if data['controls'].respond_to?(:keys)
88
+ load_hash_controls(data['controls'], framework, mapper)
89
+ elsif data['controls'].respond_to?(:each_with_index)
90
+ load_array_controls(data['controls'], framework, mapper)
91
+ else
92
+ raise "Control type is invalid. Type: #{data['controls'].class}"
93
+ end
94
+ end
95
+
96
+ def load_hash_controls(ctrls, framework, mapper)
97
+ ctrls.each_with_object([]) do |(name, data), arr|
98
+ if name == 'dependent'
99
+ @dependent << data
100
+ next
101
+ end
102
+ ctrl = Control.new(name, data, self, framework, mapper)
103
+ arr << ctrl
104
+ rescue AbideDevUtils::Errors::ControlIdFrameworkMismatchError,
105
+ AbideDevUtils::Errors::NoMappingDataForControlError
106
+ next
107
+ end
108
+ end
109
+
110
+ def load_array_controls(ctrls, framework, mapper)
111
+ ctrls.each_with_object([]) do |c, arr|
112
+ if c == 'dependent'
113
+ @dependent << c
114
+ next
115
+ end
116
+ ctrl = Control.new(c, 'no_params', self, framework, mapper)
117
+ arr << ctrl
118
+ rescue AbideDevUtils::Errors::ControlIdFrameworkMismatchError,
119
+ AbideDevUtils::Errors::NoMappingDataForControlError
120
+ next
121
+ end
122
+ end
123
+
124
+ def ruby_class_to_puppet_type(class_name)
125
+ pup_type = class_name.split('::').last.capitalize
126
+ case pup_type
127
+ when %r{(Trueclass|Falseclass)}
128
+ 'Boolean'
129
+ when %r{(String|Pathname)}
130
+ 'String'
131
+ when %r{(Integer|Fixnum)}
132
+ 'Integer'
133
+ when %r{(Float|Double)}
134
+ 'Float'
135
+ when %r{Nilclass}
136
+ 'Optional'
137
+ else
138
+ pup_type
139
+ end
140
+ end
141
+ end
142
+
143
+ # Represents a singular rule in a benchmark
144
+ class Control
145
+ include AbideDevUtils::DotNumberComparable
146
+ attr_reader :id, :params, :resource, :framework, :dependent
147
+
148
+ def initialize(id, params, resource, framework, mapper)
149
+ validate_id_with_framework(id, framework, mapper)
150
+ @id = id
151
+ @params = params
152
+ @resource = resource
153
+ @framework = framework
154
+ @mapper = mapper
155
+ raise AbideDevUtils::Errors::NoMappingDataForControlError, @id unless @mapper.get(id)
156
+ end
157
+
158
+ def params?
159
+ !(params.nil? || params.empty? || params == 'no_params') || (resource.cem_options? || resource.cem_protected?)
160
+ end
161
+
162
+ def resource_properties?
163
+ resource.cem_options? || resource.cem_protected?
164
+ end
165
+
166
+ def param_hashes
167
+ return [no_params] unless params?
168
+
169
+ params.each_with_object([]) do |(param, param_val), ar|
170
+ ar << { name: param,
171
+ type: ruby_class_to_puppet_type(param_val.class.to_s),
172
+ default: param_val }
173
+ end
174
+ end
175
+
176
+ def alternate_ids(level: nil, profile: nil)
177
+ id_map = @mapper.get(id, level: level, profile: profile)
178
+ if display_title_type.to_s == @mapper.map_type(id)
179
+ id_map
180
+ else
181
+ alt_ids = id_map.each_with_object([]) do |mapval, arr|
182
+ arr << if display_title_type.to_s == @mapper.map_type(mapval)
183
+ @mapper.get(mapval, level: level, profile: profile)
184
+ else
185
+ mapval
186
+ end
187
+ end
188
+ alt_ids.flatten.uniq
189
+ end
190
+ end
191
+
192
+ def id_map_type
193
+ @mapper.map_type(id)
194
+ end
195
+
196
+ def display_title
197
+ send(display_title_type) unless display_title_type.nil?
198
+ end
199
+
200
+ def levels
201
+ levels_and_profiles[0]
202
+ end
203
+
204
+ def profiles
205
+ levels_and_profiles[1]
206
+ end
207
+
208
+ def valid_maps?
209
+ valid = AbideDevUtils::CEM::Mapping::FRAMEWORK_TYPES[framework].each_with_object([]) do |mtype, arr|
210
+ arr << if @mapper.map_type(id) == mtype
211
+ id
212
+ else
213
+ @mapper.get(id).find { |x| @mapper.map_type(x) == mtype }
214
+ end
215
+ end
216
+ valid.compact.length == AbideDevUtils::CEM::Mapping::FRAMEWORK_TYPES[framework].length
217
+ end
218
+
219
+ def method_missing(meth, *args, &block)
220
+ meth_s = meth.to_s
221
+ if AbideDevUtils::CEM::Mapping::ALL_TYPES.include?(meth_s)
222
+ @mapper.get(id).find { |x| @mapper.map_type(x) == meth_s }
223
+ else
224
+ super
225
+ end
226
+ end
227
+
228
+ def respond_to_missing?(meth, include_private = false)
229
+ AbideDevUtils::CEM::Mapping::ALL_TYPES.include?(meth.to_s) || super
230
+ end
231
+
232
+ def to_h
233
+ {
234
+ id: id,
235
+ display_title: display_title,
236
+ alternate_ids: alternate_ids,
237
+ levels: levels,
238
+ profiles: profiles,
239
+ params: param_hashes,
240
+ resource: resource.to_stubbed_h,
241
+ }
242
+ end
243
+
244
+ private
245
+
246
+ def display_title_type
247
+ if (!vulnid.nil? && !vulnid.is_a?(String)) || !title.is_a?(String)
248
+ nil
249
+ elsif framework == 'stig' && vulnid
250
+ :vulnid
251
+ else
252
+ :title
253
+ end
254
+ end
255
+
256
+ def validate_id_with_framework(id, framework, mapper)
257
+ mtype = mapper.map_type(id)
258
+ return if AbideDevUtils::CEM::Mapping::FRAMEWORK_TYPES[framework].include?(mtype)
259
+
260
+ raise AbideDevUtils::Errors::ControlIdFrameworkMismatchError, [id, mtype, framework]
261
+ end
262
+
263
+ def map
264
+ @map ||= @mapper.get(id)
265
+ end
266
+
267
+ def levels_and_profiles
268
+ @levels_and_profiles ||= find_levels_and_profiles
269
+ end
270
+
271
+ def find_levels_and_profiles
272
+ lvls = []
273
+ profs = []
274
+ @mapper.levels.each do |lvl|
275
+ @mapper.profiles.each do |prof|
276
+ unless @mapper.get(id, level: lvl, profile: prof).nil?
277
+ lvls << lvl
278
+ profs << prof
279
+ end
280
+ end
281
+ end
282
+ [lvls.flatten.compact.uniq, profs.flatten.compact.uniq]
283
+ end
284
+
285
+ def ruby_class_to_puppet_type(class_name)
286
+ pup_type = class_name.split('::').last.capitalize
287
+ case pup_type
288
+ when %r{(Trueclass|Falseclass)}
289
+ 'Boolean'
290
+ when %r{(String|Pathname)}
291
+ 'String'
292
+ when %r{(Integer|Fixnum)}
293
+ 'Integer'
294
+ when %r{(Float|Double)}
295
+ 'Float'
296
+ when %r{Nilclass}
297
+ 'Optional'
298
+ else
299
+ pup_type
300
+ end
301
+ end
302
+
303
+ def no_params
304
+ { name: 'No parameters', type: nil, default: nil }
305
+ end
306
+ end
307
+
308
+ # Repesents a benchmark based on resource and mapping data
10
309
  class Benchmark
11
- attr_reader :osname, :major_version, :os_facts, :osfamily, :hiera_conf, :module_name, :framework, :rules
310
+ attr_reader :osname, :major_version, :os_facts, :osfamily, :hiera_conf, :module_name, :framework
12
311
 
13
312
  def initialize(osname, major_version, hiera_conf, module_name, framework: 'cis')
14
313
  @osname = osname
@@ -18,10 +317,8 @@ module AbideDevUtils
18
317
  @hiera_conf = hiera_conf
19
318
  @module_name = module_name
20
319
  @framework = framework
21
- @rules = {}
22
320
  @map_cache = {}
23
321
  @rules_in_map = {}
24
- load_rules
25
322
  end
26
323
 
27
324
  # Creates Benchmark objects from a Puppet module
@@ -38,23 +335,47 @@ module AbideDevUtils
38
335
  if majver.is_a?(Array)
39
336
  majver.sort.each do |v|
40
337
  frameworks.each do |fw|
41
- benchmark = Benchmark.new(osname, v, pupmod.hiera_conf, pupmod.name(strip_namespace: true), framework: fw)
338
+ benchmark = Benchmark.new(osname,
339
+ v,
340
+ pupmod.hiera_conf,
341
+ pupmod.name(strip_namespace: true),
342
+ framework: fw)
343
+ benchmark.controls
42
344
  ary << benchmark
345
+ rescue AbideDevUtils::Errors::MappingDataFrameworkMismatchError => e
346
+ raise e unless ignore_all_errors || ignore_framework_mismatch
43
347
  rescue StandardError => e
44
- raise e unless ignore_all_errors || (e.instance_of?(AbideDevUtils::Errors::MappingDataFrameworkMismatchError) && ignore_framework_mismatch)
348
+ raise e unless ignore_all_errors
45
349
  end
46
350
  end
47
351
  else
48
352
  frameworks.each do |fw|
49
- benchmark = Benchmark.new(osname, majver, pupmod.hiera_conf, pupmod.name(strip_namespace: true), framework: fw)
353
+ benchmark = Benchmark.new(osname,
354
+ majver,
355
+ pupmod.hiera_conf,
356
+ pupmod.name(strip_namespace: true),
357
+ framework: fw)
358
+ benchmark.controls
50
359
  ary << benchmark
360
+ rescue AbideDevUtils::Errors::MappingDataFrameworkMismatchError => e
361
+ raise e unless ignore_all_errors || ignore_framework_mismatch
51
362
  rescue StandardError => e
52
- raise e unless ignore_all_errors || (e.instance_of?(AbideDevUtils::Errors::MappingDataFrameworkMismatchError) && ignore_framework_mismatch)
363
+ raise e unless ignore_all_errors
53
364
  end
54
365
  end
55
366
  end
56
367
  end
57
368
 
369
+ def resources
370
+ @resources ||= resource_data["#{module_name}::resources"].each_with_object([]) do |(rtitle, rdata), arr|
371
+ arr << Resource.new(rtitle, rdata, framework, mapper)
372
+ end
373
+ end
374
+
375
+ def controls
376
+ @controls ||= resources.map(&:controls).flatten.sort
377
+ end
378
+
58
379
  def mapper
59
380
  @mapper ||= AbideDevUtils::CEM::Mapping::Mapper.new(module_name, framework, load_mapping_data)
60
381
  end
@@ -113,131 +434,6 @@ module AbideDevUtils
113
434
 
114
435
  private
115
436
 
116
- def load_rules
117
- resource_data["#{module_name}::resources"].each do |_, rdata|
118
- unless rdata.key?('controls')
119
- puts "Controls key not found in #{rdata}"
120
- next
121
- end
122
- rdata['controls'].each do |control, control_data|
123
- rule_title = map(control)
124
- next if rule_title.nil? || rule_title.empty?
125
-
126
- rule_title.find { |id| map_type(id) == 'title' }
127
- alternate_ids = map(rule_title)
128
-
129
- next unless rule_title.is_a?(String)
130
-
131
- @rules[rule_title] = {} unless @rules&.key?(rule_title)
132
- @rules[rule_title]['number'] = alternate_ids.find { |id| map_type(id) == 'number' }
133
- @rules[rule_title]['alternate_ids'] = alternate_ids
134
- @rules[rule_title]['params'] = [] unless @rules[rule_title].key?('params')
135
- @rules[rule_title]['level'] = [] unless @rules[rule_title].key?('level')
136
- @rules[rule_title]['profile'] = [] unless @rules[rule_title].key?('profile')
137
- param_hashes(control_data).each do |param_hash|
138
- next if @rules[rule_title]['params'].include?(param_hash[:name])
139
-
140
- @rules[rule_title]['params'] << param_hash
141
- end
142
- levels, profiles = find_levels_and_profiles(control)
143
- unless @rules[rule_title]['level'] == levels
144
- @rules[rule_title]['level'] = @rules[rule_title]['level'] | levels
145
- end
146
- unless @rules[rule_title]['profile'] == profiles
147
- @rules[rule_title]['profile'] = @rules[rule_title]['profile'] | profiles
148
- end
149
- @rules[rule_title]['resource'] = rdata['type']
150
- end
151
- end
152
- @rules = sort_rules
153
- end
154
-
155
- def param_hashes(control_data)
156
- return [] if control_data.nil? || control_data.empty?
157
-
158
- p_hashes = []
159
- if !control_data.respond_to?(:each) && control_data == 'no_params'
160
- p_hashes << no_params
161
- else
162
- control_data.each do |param, param_val|
163
- p_hashes << {
164
- name: param,
165
- type: ruby_class_to_puppet_type(param_val.class.to_s),
166
- default: param_val,
167
- }
168
- end
169
- end
170
- p_hashes
171
- end
172
-
173
- def no_params
174
- { name: 'No parameters', type: nil, default: nil }
175
- end
176
-
177
- # We sort the rules by their control number so they
178
- # appear in the REFERENCE in benchmark order
179
- def sort_rules
180
- sorted = @rules.dup.sort_by do |_, v|
181
- control_num_to_int(v['number'])
182
- end
183
- sorted.to_h
184
- end
185
-
186
- # In order to sort the rules by their control number,
187
- # we need to convert the control number to an integer.
188
- # This is a rough conversion, but should be sufficient
189
- # for the purposes of sorting. The multipliers are
190
- # the 20th, 15th, 10th, and 5th numbers in the Fibonacci
191
- # sequence, then 1 after that. The reason for this is to
192
- # ensure a "spiraled" wieghting of the sections in the control
193
- # number, with 1st section having the most sorting weight, 2nd
194
- # having second most, etc. However, the differences in the multipliers
195
- # are such that it would be difficult for the product of a lesser-weighted
196
- # section to be greater than a greater-weighted section.
197
- def control_num_to_int(control_num)
198
- multipliers = [6765, 610, 55, 5, 1]
199
- nsum = 0
200
- midx = 0
201
- control_num.split('.').each do |num|
202
- multiplier = midx >= multipliers.length ? 1 : multipliers[midx]
203
- nsum += num.to_i * multiplier
204
- midx += 1
205
- end
206
- nsum
207
- end
208
-
209
- def find_levels_and_profiles(control_id)
210
- levels = []
211
- profiles = []
212
- mapper.each_like(control_id) do |lvl, profile_hash|
213
- next if lvl == 'benchmark'
214
-
215
- profile_hash.each do |prof, _|
216
- unless map(control_id, level: lvl, profile: prof).nil?
217
- levels << lvl
218
- profiles << prof
219
- end
220
- end
221
- end
222
- [levels, profiles]
223
- end
224
-
225
- def ruby_class_to_puppet_type(class_name)
226
- pup_type = class_name.split('::').last.capitalize
227
- case pup_type
228
- when %r{(Trueclass|Falseclass)}
229
- 'Boolean'
230
- when %r{(String|Pathname)}
231
- 'String'
232
- when %r{(Integer|Fixnum)}
233
- 'Integer'
234
- when %r{(Float|Double)}
235
- 'Float'
236
- else
237
- pup_type
238
- end
239
- end
240
-
241
437
  def load_mapping_data
242
438
  files = case module_name
243
439
  when /_windows$/
@@ -248,8 +444,6 @@ module AbideDevUtils
248
444
  raise "Module name '#{module_name}' is not a CEM module"
249
445
  end
250
446
  validate_mapping_files_framework(files).each_with_object({}) do |f, h|
251
- next unless f.path.include?(framework)
252
-
253
447
  h[File.basename(f.path, '.yaml')] = YAML.load_file(f.path)
254
448
  end
255
449
  end