Class: OpenSCAP::Xccdf::Session
- Inherits:
-
Object
- Object
- OpenSCAP::Xccdf::Session
- Defined in:
- lib/openscap/xccdf/session.rb
Instance Method Summary collapse
- #destroy ⇒ Object
- #evaluate ⇒ Object
- #export_results(opts = {}) ⇒ Object
-
#initialize(input_filename) ⇒ Session
constructor
A new instance of Session.
- #load(opts = {}) ⇒ Object
- #profile=(p) ⇒ Object
- #remediate ⇒ Object
- #sds? ⇒ Boolean
Constructor Details
#initialize(input_filename) ⇒ Session
Returns a new instance of Session.
16 17 18 19 20 21 22 23 |
# File 'lib/openscap/xccdf/session.rb', line 16 def initialize(input_filename) raise OpenSCAPError, "No filename specified!" unless input_filename @input_filename = input_filename @s = OpenSCAP.xccdf_session_new(input_filename) if @s.null? OpenSCAP.raise! end end |
Instance Method Details
#destroy ⇒ Object
83 84 85 86 |
# File 'lib/openscap/xccdf/session.rb', line 83 def destroy OpenSCAP.xccdf_session_free(@s) @s = nil end |
#evaluate ⇒ Object
51 52 53 54 55 |
# File 'lib/openscap/xccdf/session.rb', line 51 def evaluate if OpenSCAP.xccdf_session_evaluate(@s) != 0 OpenSCAP.raise! end end |
#export_results(opts = {}) ⇒ Object
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# File 'lib/openscap/xccdf/session.rb', line 61 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) OpenSCAP.raise! unless OpenSCAP.xccdf_session_set_arf_export(@s, o[:rds_file]) OpenSCAP.raise! unless OpenSCAP.xccdf_session_set_xccdf_export(@s, o[:xccdf_file]) OpenSCAP.raise! unless OpenSCAP.xccdf_session_set_report_export(@s, o[:report_file]) OpenSCAP.xccdf_session_set_oval_results_export(@s, o[:oval_results]) OpenSCAP.xccdf_session_set_oval_variables_export(@s, o[:oval_variables]) OpenSCAP.xccdf_session_set_check_engine_plugins_results_export(@s, o[:engines_results]) OpenSCAP.raise! unless OpenSCAP.xccdf_session_export_oval(@s) == 0 OpenSCAP.raise! unless OpenSCAP.xccdf_session_export_check_engine_plugins(@s) == 0 OpenSCAP.raise! unless OpenSCAP.xccdf_session_export_xccdf(@s) == 0 OpenSCAP.raise! unless OpenSCAP.xccdf_session_export_arf(@s) == 0 end |
#load(opts = {}) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/openscap/xccdf/session.rb', line 29 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 if OpenSCAP.xccdf_session_load(@s) != 0 OpenSCAP.raise! end OpenSCAP.raise! unless OpenSCAP.xccdf_session_load_check_engine_plugins(@s) == 0 end |
#profile=(p) ⇒ Object
44 45 46 47 48 49 |
# File 'lib/openscap/xccdf/session.rb', line 44 def profile=(p) @profile = p if OpenSCAP.xccdf_session_set_profile_id(@s, p) == false raise OpenSCAPError, "No profile '" + p + "' found" end end |
#remediate ⇒ Object
57 58 59 |
# File 'lib/openscap/xccdf/session.rb', line 57 def remediate OpenSCAP.raise! unless OpenSCAP.xccdf_session_remediate(@s) == 0 end |
#sds? ⇒ Boolean
25 26 27 |
# File 'lib/openscap/xccdf/session.rb', line 25 def sds? return OpenSCAP.xccdf_session_is_sds(@s) end |