Class: Pvectl::Models::NodeOperationResult

Inherits:
OperationResult show all
Defined in:
lib/pvectl/models/node_operation_result.rb

Overview

Represents the result of a set/edit operation on a node.

Extends OperationResult with node-specific attribute.

Examples:

Successful set operation

result = NodeOperationResult.new(node_model: node, operation: :set, success: true)
result.node_model #=> #<Models::Node>
result.successful? #=> true

Instance Attribute Summary collapse

Attributes inherited from OperationResult

#error, #operation, #resource, #success, #task, #task_upid

Instance Method Summary collapse

Methods inherited from OperationResult

#failed?, #partial?, #pending?, #status_text, #successful?

Constructor Details

#initialize(attrs = {}) ⇒ NodeOperationResult

Creates a new NodeOperationResult.

Parameters:

  • attrs (Hash) (defaults to: {})

    Result attributes including :node_model



25
26
27
28
29
# File 'lib/pvectl/models/node_operation_result.rb', line 25

def initialize(attrs = {})
  super
  @node_model = @attributes[:node_model]
  @info = @attributes[:message]
end

Instance Attribute Details

#infoString? (readonly)

Returns optional info message describing the successful outcome (e.g., “Wake-on-LAN packet sent (MAC: AA:BB:CC:DD:EE:FF)”).

Returns:

  • (String, nil)

    optional info message describing the successful outcome (e.g., “Wake-on-LAN packet sent (MAC: AA:BB:CC:DD:EE:FF)”)



20
21
22
# File 'lib/pvectl/models/node_operation_result.rb', line 20

def info
  @info
end

#node_modelModels::Node? (readonly)

Returns The node this result is for.

Returns:



16
17
18
# File 'lib/pvectl/models/node_operation_result.rb', line 16

def node_model
  @node_model
end

Instance Method Details

#messageString

Returns the result message for display.

On success, prefers the optional ‘:message` attribute (set by services that want to surface an outcome detail like a MAC address). Otherwise falls back to the generic OperationResult logic (error / task / status).

Returns:

  • (String)


38
39
40
41
42
# File 'lib/pvectl/models/node_operation_result.rb', line 38

def message
  return @info if successful? && @info

  super
end