Class: SecurityBox::Result
- Inherits:
-
Object
- Object
- SecurityBox::Result
- Defined in:
- lib/security_box/result.rb
Overview
Result of a sandbox execution. Possible statuses:
:ok
rpcs (stage 6): the host-side transcript of guest RPC calls, one
frozen "args", "ok", "result"|"error" entry per call, or nil
when no rpcs were configured (or none were called).
Instance Attribute Summary collapse
-
#duration_ms ⇒ Object
readonly
Returns the value of attribute duration_ms.
-
#error ⇒ Object
readonly
Returns the value of attribute error.
-
#fuel_used ⇒ Object
readonly
Returns the value of attribute fuel_used.
-
#guest_duration_ms ⇒ Object
readonly
Returns the value of attribute guest_duration_ms.
-
#rpcs ⇒ Object
readonly
Returns the value of attribute rpcs.
-
#status ⇒ Object
readonly
Returns the value of attribute status.
-
#stderr ⇒ Object
readonly
Returns the value of attribute stderr.
-
#stdout ⇒ Object
readonly
Returns the value of attribute stdout.
-
#value ⇒ Object
readonly
Returns the value of attribute value.
Class Method Summary collapse
-
.worker_unavailable(worker_index) ⇒ Object
Factory for the "the worker never answered" sandbox failure (dead or stalled Ractor worker, or the pop deadline elapsed).
Instance Method Summary collapse
-
#initialize(status:, value: nil, error: nil, stdout: "", stderr: "", fuel_used: nil, duration_ms: nil, guest_duration_ms: nil, rpcs: nil) ⇒ Result
constructor
A new instance of Result.
- #ok? ⇒ Boolean
- #to_h ⇒ Object
Constructor Details
#initialize(status:, value: nil, error: nil, stdout: "", stderr: "", fuel_used: nil, duration_ms: nil, guest_duration_ms: nil, rpcs: nil) ⇒ Result
Returns a new instance of Result.
19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/security_box/result.rb', line 19 def initialize(status:, value: nil, error: nil, stdout: "", stderr: "", fuel_used: nil, duration_ms: nil, guest_duration_ms: nil, rpcs: nil) @status = status @value = value @error = error @stdout = stdout @stderr = stderr @fuel_used = fuel_used @duration_ms = duration_ms @guest_duration_ms = guest_duration_ms @rpcs = rpcs freeze end |
Instance Attribute Details
#duration_ms ⇒ Object (readonly)
Returns the value of attribute duration_ms.
16 17 18 |
# File 'lib/security_box/result.rb', line 16 def duration_ms @duration_ms end |
#error ⇒ Object (readonly)
Returns the value of attribute error.
16 17 18 |
# File 'lib/security_box/result.rb', line 16 def error @error end |
#fuel_used ⇒ Object (readonly)
Returns the value of attribute fuel_used.
16 17 18 |
# File 'lib/security_box/result.rb', line 16 def fuel_used @fuel_used end |
#guest_duration_ms ⇒ Object (readonly)
Returns the value of attribute guest_duration_ms.
16 17 18 |
# File 'lib/security_box/result.rb', line 16 def guest_duration_ms @guest_duration_ms end |
#rpcs ⇒ Object (readonly)
Returns the value of attribute rpcs.
16 17 18 |
# File 'lib/security_box/result.rb', line 16 def rpcs @rpcs end |
#status ⇒ Object (readonly)
Returns the value of attribute status.
16 17 18 |
# File 'lib/security_box/result.rb', line 16 def status @status end |
#stderr ⇒ Object (readonly)
Returns the value of attribute stderr.
16 17 18 |
# File 'lib/security_box/result.rb', line 16 def stderr @stderr end |
#stdout ⇒ Object (readonly)
Returns the value of attribute stdout.
16 17 18 |
# File 'lib/security_box/result.rb', line 16 def stdout @stdout end |
#value ⇒ Object (readonly)
Returns the value of attribute value.
16 17 18 |
# File 'lib/security_box/result.rb', line 16 def value @value end |
Class Method Details
.worker_unavailable(worker_index) ⇒ Object
Factory for the "the worker never answered" sandbox failure (dead or stalled Ractor worker, or the pop deadline elapsed).
40 41 42 43 |
# File 'lib/security_box/result.rb', line 40 def self.worker_unavailable(worker_index) new(status: :sandbox_error, stderr: "security_box: RactorPool worker #{worker_index} did not answer\n") end |
Instance Method Details
#ok? ⇒ Boolean
34 35 36 |
# File 'lib/security_box/result.rb', line 34 def ok? @status == :ok end |
#to_h ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/security_box/result.rb', line 45 def to_h { status: @status, value: @value, error: @error, stdout: @stdout, stderr: @stderr, fuel_used: @fuel_used, duration_ms: @duration_ms, guest_duration_ms: @guest_duration_ms, rpcs: @rpcs } end |