Class: OpenSCAP::Xccdf::Session

Inherits:
Object
  • Object
show all
Defined in:
lib/openscap/xccdf/session.rb

Instance Method Summary collapse

Constructor Details

#initialize(input_filename) ⇒ Session

Returns a new instance of Session.



15
16
17
18
19
20
# File 'lib/openscap/xccdf/session.rb', line 15

def initialize(input_filename)
  fail OpenSCAPError, 'No filename specified!' unless input_filename
  @input_filename = input_filename
  @s = OpenSCAP.xccdf_session_new(input_filename)
  OpenSCAP.raise! if @s.null?
end

Instance Method Details

#destroyObject



67
68
69
70
# File 'lib/openscap/xccdf/session.rb', line 67

def destroy
  OpenSCAP.xccdf_session_free(@s)
  @s = nil
end

#evaluateObject



46
47
48
# File 'lib/openscap/xccdf/session.rb', line 46

def evaluate
  OpenSCAP.raise! if OpenSCAP.xccdf_session_evaluate(@s) != 0
end

#export_results(opts = {}) ⇒ Object



54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/openscap/xccdf/session.rb', line 54

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 = {}) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/openscap/xccdf/session.rb', line 26

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! if OpenSCAP.xccdf_session_load(@s) != 0
  OpenSCAP.raise! unless OpenSCAP.xccdf_session_load_check_engine_plugins(@s) == 0
end

#profile=(p) ⇒ Object



39
40
41
42
43
44
# File 'lib/openscap/xccdf/session.rb', line 39

def profile=(p)
  @profile = p
  if OpenSCAP.xccdf_session_set_profile_id(@s, p) == false
    fail OpenSCAPError, "No profile '" + p + "' found"
  end
end

#remediateObject



50
51
52
# File 'lib/openscap/xccdf/session.rb', line 50

def remediate
  OpenSCAP.raise! unless OpenSCAP.xccdf_session_remediate(@s) == 0
end

#sds?Boolean

Returns:

  • (Boolean)


22
23
24
# File 'lib/openscap/xccdf/session.rb', line 22

def sds?
  OpenSCAP.xccdf_session_is_sds(@s)
end