class OpenSCAP::Xccdf::Session

Public Class Methods

new(input_filename) click to toggle source
# File lib/openscap/xccdf/session.rb, line 6
def initialize(input_filename)
  raise OpenSCAPError, 'No filename specified!' unless input_filename

  @input_filename = input_filename
  @s = OpenSCAP.xccdf_session_new(input_filename)
  OpenSCAP.raise! if @s.null?
end

Public Instance Methods

destroy() click to toggle source
# File lib/openscap/xccdf/session.rb, line 59
def destroy
  OpenSCAP.xccdf_session_free(@s)
  @s = nil
end
evaluate() click to toggle source
# File lib/openscap/xccdf/session.rb, line 38
def evaluate
  OpenSCAP.raise! unless OpenSCAP.xccdf_session_evaluate(@s).zero?
end
export_results(opts = {}) click to toggle source
# File lib/openscap/xccdf/session.rb, line 46
def export_results(opts = {})
  o = {
    :rds_file => nil,
    :xccdf_file => nil,
    :report_file => nil,
    :oval_results => false,
    :oval_variables => false,
    :engines_results => false
  }.merge!(opts)
  export_targets o
  export
end
load(opts = {}) click to toggle source
# File lib/openscap/xccdf/session.rb, line 18
def load(opts = {})
  o = {
    :datastream_id => nil,
    :component_id => nil
  }.merge(opts)
  if sds?
    OpenSCAP.xccdf_session_set_datastream_id(@s, o[:datastream_id])
    OpenSCAP.xccdf_session_set_component_id(@s, o[:component_id])
  end
  OpenSCAP.raise! unless OpenSCAP.xccdf_session_load(@s).zero?
  OpenSCAP.raise! unless OpenSCAP.xccdf_session_load_check_engine_plugins(@s).zero?
end
profile=(p) click to toggle source
# File lib/openscap/xccdf/session.rb, line 31
def profile=(p)
  @profile = p
  if OpenSCAP.xccdf_session_set_profile_id(@s, p) == false
    raise OpenSCAPError, "No profile '" + p + "' found"
  end
end
remediate() click to toggle source
# File lib/openscap/xccdf/session.rb, line 42
def remediate
  OpenSCAP.raise! unless OpenSCAP.xccdf_session_remediate(@s).zero?
end
sds?() click to toggle source
# File lib/openscap/xccdf/session.rb, line 14
def sds?
  OpenSCAP.xccdf_session_is_sds(@s)
end

Private Instance Methods

export() click to toggle source
# File lib/openscap/xccdf/session.rb, line 66
def export
  OpenSCAP.raise! unless OpenSCAP.xccdf_session_export_oval(@s).zero?
  OpenSCAP.raise! unless OpenSCAP.xccdf_session_export_check_engine_plugins(@s).zero?
  OpenSCAP.raise! unless OpenSCAP.xccdf_session_export_xccdf(@s).zero?
  OpenSCAP.raise! unless OpenSCAP.xccdf_session_export_arf(@s).zero?
end
export_targets(opts = {}) click to toggle source
# File lib/openscap/xccdf/session.rb, line 73
def export_targets(opts = {})
  OpenSCAP.raise! unless OpenSCAP.xccdf_session_set_arf_export(@s, opts[:rds_file])
  OpenSCAP.raise! unless OpenSCAP.xccdf_session_set_xccdf_export(@s, opts[:xccdf_file])
  OpenSCAP.raise! unless OpenSCAP.xccdf_session_set_report_export(@s, opts[:report_file])
  OpenSCAP.xccdf_session_set_oval_results_export(@s, opts[:oval_results])
  OpenSCAP.xccdf_session_set_oval_variables_export(@s, opts[:oval_variables])
  OpenSCAP.xccdf_session_set_check_engine_plugins_results_export(@s, opts[:engines_results])
end