Module: OpenSCAP

Extended by:
FFI::Library
Defined in:
lib/openscap.rb,
lib/openscap/libc.rb,
lib/openscap/text.rb,
lib/openscap/xccdf.rb,
lib/openscap/ds/arf.rb,
lib/openscap/ds/sds.rb,
lib/openscap/source.rb,
lib/openscap/version.rb,
lib/openscap/openscap.rb,
lib/openscap/xccdf/fix.rb,
lib/openscap/exceptions.rb,
lib/openscap/xccdf/item.rb,
lib/openscap/xccdf/rule.rb,
lib/openscap/xccdf/group.rb,
lib/openscap/xccdf/ident.rb,
lib/openscap/xccdf/value.rb,
lib/openscap/xccdf/policy.rb,
lib/openscap/xccdf/status.rb,
lib/openscap/xccdf/fixtext.rb,
lib/openscap/xccdf/profile.rb,
lib/openscap/xccdf/session.rb,
lib/openscap/xccdf/benchmark.rb,
lib/openscap/xccdf/reference.rb,
lib/openscap/xccdf/tailoring.rb,
lib/openscap/xccdf/ruleresult.rb,
lib/openscap/xccdf/testresult.rb,
lib/openscap/xccdf/item_common.rb,
lib/openscap/xccdf/policy_model.rb

Defined Under Namespace

Modules: DS, LibC, Xccdf Classes: OpenSCAPError, Source, Text, TextList

Constant Summary collapse

XmlReporterCallback =
proc do |filename, line_number, error_message, e|
  offset = e.get_string(0).length
  msg = "#{filename}:#{line_number}: #{error_message}"
  if msg.length + offset + 1 < e.size
    e.put_string(offset, msg)
    0
  else
    1
  end
end
VERSION =
'0.6.0'
XccdfStrategy =
enum(
  :unknown, 0, # Strategy not defined
  :configure,  # Adjust target config or settings
  :disable,    # Turn off or deinstall something
  :enable,     # Turn on or install something
  :patch,      # Apply a patch, hotfix, or update
  :policy,     # Remediation by changing policies/procedures
  :restrict,   # Adjust permissions or ACLs
  :update,     # Install upgrade or update the system
  :combination # Combo of two or more of the above
)
XccdfLevel =
enum(
  :not_defined, 0,
  :unknown, 1,
  :info,
  :low,
  :medium,
  :high
)
XccdfItemType =
enum(:benchmark, 0x0100,
:profile, 0x0200,
:result, 0x0400,
:rule, 0x1000,
:group, 0x2000,
:value, 0x4000)
XccdfSeverity =
enum(
  :xccdf_level_not_defined, 0,
  :xccdf_unknown, 1,
  :xccdf_info,
  :xccdf_low,
  :xccdf_medium,
  :xccdf_high
)
XccdfResult =
enum(:pass, 1,
:fail,
:error,
:unknown,
:notapplicable,
:notchecked,
:notselected,
:informational,
:fixed)

Class Method Summary collapse

Class Method Details

._iterate(over:, as:) ⇒ Object



28
29
30
31
32
33
34
35
# File 'lib/openscap/openscap.rb', line 28

def self._iterate(over:, as:, &)
  has_more_method = "#{as}_iterator_has_more"
  next_method = "#{as}_iterator_next"
  free_method = "#{as}_iterator_free"

  yield send(next_method, over) while send(has_more_method, over)
  send(free_method, over)
end

.error?Boolean



9
10
11
# File 'lib/openscap/openscap.rb', line 9

def self.error?
  oscap_err
end

.full_errorObject



13
14
15
16
# File 'lib/openscap/openscap.rb', line 13

def self.full_error
  err = oscap_err_get_full_error
  err.null? ? nil : err.read_string
end

.raise!(msg = nil) ⇒ Object

Raises:



18
19
20
21
22
23
24
25
26
# File 'lib/openscap/openscap.rb', line 18

def self.raise!(msg = nil)
  err = full_error
  if err.nil?
    err = msg.nil? ? '(unknown error)' : msg
  else
    err += "\n#{msg}"
  end
  raise OpenSCAPError, err
end