Class: Bootprint::Diagnosis

Inherits:
Object
  • Object
show all
Defined in:
lib/bootprint/diagnosis.rb

Constant Summary collapse

REPORT_SCHEMA_VERSION =
1

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(source, target, policy: Policy.new, only: nil, minimum_severity: nil) ⇒ Diagnosis

Returns a new instance of Diagnosis.



8
9
10
11
12
13
14
# File 'lib/bootprint/diagnosis.rb', line 8

def initialize(source, target, policy: Policy.new, only: nil, minimum_severity: nil)
  @source = source
  @target = target
  @policy = policy
  @only = only
  @minimum_severity = minimum_severity
end

Instance Attribute Details

#minimum_severityObject (readonly)

Returns the value of attribute minimum_severity.



6
7
8
# File 'lib/bootprint/diagnosis.rb', line 6

def minimum_severity
  @minimum_severity
end

#onlyObject (readonly)

Returns the value of attribute only.



6
7
8
# File 'lib/bootprint/diagnosis.rb', line 6

def only
  @only
end

#policyObject (readonly)

Returns the value of attribute policy.



6
7
8
# File 'lib/bootprint/diagnosis.rb', line 6

def policy
  @policy
end

#sourceObject (readonly)

Returns the value of attribute source.



6
7
8
# File 'lib/bootprint/diagnosis.rb', line 6

def source
  @source
end

#targetObject (readonly)

Returns the value of attribute target.



6
7
8
# File 'lib/bootprint/diagnosis.rb', line 6

def target
  @target
end

Instance Method Details

#runObject



16
17
18
19
20
21
22
# File 'lib/bootprint/diagnosis.rb', line 16

def run
  started = Process.clock_gettime(Process::CLOCK_MONOTONIC)
  findings = Rules.evaluate(source, target, policy:, only:, minimum_severity:)
  findings.concat(plugin_failure_findings(target))
  duration = (Process.clock_gettime(Process::CLOCK_MONOTONIC) - started) * 1_000
  Report.new(source:, target:, findings:, policy:, duration_ms: duration.round(3))
end