Class: AbideDevUtils::Sce::Benchmark
- Inherits:
 - 
      Object
      
        
- Object
 - AbideDevUtils::Sce::Benchmark
 
 
- Defined in:
 - lib/abide_dev_utils/sce/benchmark.rb
 
Overview
Repesents a benchmark based on resource and mapping data
Instance Attribute Summary collapse
- 
  
    
      #controls  ⇒ Object 
    
    
      (also: #rules)
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Returns the value of attribute controls.
 - 
  
    
      #framework  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Returns the value of attribute framework.
 - 
  
    
      #hiera_conf  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Returns the value of attribute hiera_conf.
 - 
  
    
      #major_version  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Returns the value of attribute major_version.
 - 
  
    
      #mapper  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Returns the value of attribute mapper.
 - 
  
    
      #module_name  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Returns the value of attribute module_name.
 - 
  
    
      #os_facts  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Returns the value of attribute os_facts.
 - 
  
    
      #osfamily  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Returns the value of attribute osfamily.
 - 
  
    
      #osname  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Returns the value of attribute osname.
 - 
  
    
      #resource_data  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Returns the value of attribute resource_data.
 - 
  
    
      #resources  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Returns the value of attribute resources.
 
Instance Method Summary collapse
- #add_rule(rule_hash) ⇒ Object
 - 
  
    
      #initialize(osname, major_version, hiera_conf, module_name, framework: 'cis')  ⇒ Benchmark 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    
A new instance of Benchmark.
 - #inspect ⇒ Object
 - #map(control_id, level: nil, profile: nil) ⇒ Object
 - #map_data ⇒ Object
 - #map_type(control_id) ⇒ Object
 - #rules_in_map(mtype, level: nil, profile: nil) ⇒ Object
 - #title ⇒ Object
 - #title_key ⇒ Object
 - #to_s ⇒ Object
 - #version ⇒ Object
 
Constructor Details
#initialize(osname, major_version, hiera_conf, module_name, framework: 'cis') ⇒ Benchmark
Returns a new instance of Benchmark.
      341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359  | 
    
      # File 'lib/abide_dev_utils/sce/benchmark.rb', line 341 def initialize(osname, major_version, hiera_conf, module_name, framework: 'cis') @osname = osname @major_version = major_version @os_facts = AbideDevUtils::Ppt::FacterUtils::FactSets.new.find_by_fact_value_tuples(['os.name', @osname], ['os.release.major', @major_version]) @osfamily = @os_facts['os']['family'] @hiera_conf = hiera_conf @module_name = module_name @framework = framework @map_cache = {} @rules_in_map = {} @mapper = AbideDevUtils::Sce::Mapping::Mapper.new(@module_name, @framework, load_mapping_data) @resource_data = load_resource_data @resources = @resource_data["#{module_name}::resources"].each_with_object([]) do |(rtitle, rdata), arr| arr << Resource.new(rtitle, rdata, framework, mapper) end @controls = resources.map(&:controls).flatten.sort end  | 
  
Instance Attribute Details
#controls ⇒ Object (readonly) Also known as: rules
Returns the value of attribute controls.
      336 337 338  | 
    
      # File 'lib/abide_dev_utils/sce/benchmark.rb', line 336 def controls @controls end  | 
  
#framework ⇒ Object (readonly)
Returns the value of attribute framework.
      336 337 338  | 
    
      # File 'lib/abide_dev_utils/sce/benchmark.rb', line 336 def framework @framework end  | 
  
#hiera_conf ⇒ Object (readonly)
Returns the value of attribute hiera_conf.
      336 337 338  | 
    
      # File 'lib/abide_dev_utils/sce/benchmark.rb', line 336 def hiera_conf @hiera_conf end  | 
  
#major_version ⇒ Object (readonly)
Returns the value of attribute major_version.
      336 337 338  | 
    
      # File 'lib/abide_dev_utils/sce/benchmark.rb', line 336 def major_version @major_version end  | 
  
#mapper ⇒ Object (readonly)
Returns the value of attribute mapper.
      336 337 338  | 
    
      # File 'lib/abide_dev_utils/sce/benchmark.rb', line 336 def mapper @mapper end  | 
  
#module_name ⇒ Object (readonly)
Returns the value of attribute module_name.
      336 337 338  | 
    
      # File 'lib/abide_dev_utils/sce/benchmark.rb', line 336 def module_name @module_name end  | 
  
#os_facts ⇒ Object (readonly)
Returns the value of attribute os_facts.
      336 337 338  | 
    
      # File 'lib/abide_dev_utils/sce/benchmark.rb', line 336 def os_facts @os_facts end  | 
  
#osfamily ⇒ Object (readonly)
Returns the value of attribute osfamily.
      336 337 338  | 
    
      # File 'lib/abide_dev_utils/sce/benchmark.rb', line 336 def osfamily @osfamily end  | 
  
#osname ⇒ Object (readonly)
Returns the value of attribute osname.
      336 337 338  | 
    
      # File 'lib/abide_dev_utils/sce/benchmark.rb', line 336 def osname @osname end  | 
  
#resource_data ⇒ Object (readonly)
Returns the value of attribute resource_data.
      336 337 338  | 
    
      # File 'lib/abide_dev_utils/sce/benchmark.rb', line 336 def resource_data @resource_data end  | 
  
#resources ⇒ Object (readonly)
Returns the value of attribute resources.
      336 337 338  | 
    
      # File 'lib/abide_dev_utils/sce/benchmark.rb', line 336 def resources @resources end  | 
  
Instance Method Details
#add_rule(rule_hash) ⇒ Object
      377 378 379  | 
    
      # File 'lib/abide_dev_utils/sce/benchmark.rb', line 377 def add_rule(rule_hash) @rules << rule_hash end  | 
  
#inspect ⇒ Object
      413 414 415  | 
    
      # File 'lib/abide_dev_utils/sce/benchmark.rb', line 413 def inspect "#<#{self.class.name}:#{object_id} title: #{title}, version: #{version}, module_name: #{module_name}, framework: #{framework}>" end  | 
  
#map(control_id, level: nil, profile: nil) ⇒ Object
      401 402 403  | 
    
      # File 'lib/abide_dev_utils/sce/benchmark.rb', line 401 def map(control_id, level: nil, profile: nil) mapper.get(control_id, level: level, profile: profile) end  | 
  
#map_data ⇒ Object
      361 362 363  | 
    
      # File 'lib/abide_dev_utils/sce/benchmark.rb', line 361 def map_data mapper.map_data end  | 
  
#map_type(control_id) ⇒ Object
      405 406 407  | 
    
      # File 'lib/abide_dev_utils/sce/benchmark.rb', line 405 def map_type(control_id) mapper.map_type(control_id) end  | 
  
#rules_in_map(mtype, level: nil, profile: nil) ⇒ Object
      381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399  | 
    
      # File 'lib/abide_dev_utils/sce/benchmark.rb', line 381 def rules_in_map(mtype, level: nil, profile: nil) real_mtype = map_type(mtype) cache_key = [real_mtype, level, profile].compact.join('-') return @rules_in_map[cache_key] if @rules_in_map.key?(cache_key) all_rim = mapper.each_with_array_like(real_mtype) do |(lvl, profs), arr| next if lvl == 'benchmark' || (!level.nil? && lvl != level) profs.each do |prof, maps| next if !profile.nil? && prof != profile # CIS and STIG differ in that STIG does not have profiles control_ids = maps.respond_to?(:keys) ? maps.keys : prof arr << control_ids end end @rules_in_map[cache_key] = all_rim.flatten.uniq @rules_in_map[cache_key] end  | 
  
#title ⇒ Object
      365 366 367  | 
    
      # File 'lib/abide_dev_utils/sce/benchmark.rb', line 365 def title mapper.title end  | 
  
#title_key ⇒ Object
      373 374 375  | 
    
      # File 'lib/abide_dev_utils/sce/benchmark.rb', line 373 def title_key @title_key ||= "#{title} #{version}" end  | 
  
#to_s ⇒ Object
      409 410 411  | 
    
      # File 'lib/abide_dev_utils/sce/benchmark.rb', line 409 def to_s title end  | 
  
#version ⇒ Object
      369 370 371  | 
    
      # File 'lib/abide_dev_utils/sce/benchmark.rb', line 369 def version mapper.version end  |