Class: Pvectl::Presenters::VolumeOperationResult

Inherits:
OperationResult show all
Defined in:
lib/pvectl/presenters/volume_operation_result.rb

Overview

Presenter for volume operation results (set/edit).

Formats VolumeOperationResult models for table/JSON/YAML output.

Examples:

Using with formatter

presenter = VolumeOperationResult.new
formatter = Formatters::Table.new
output = formatter.format(results, presenter)

Constant Summary

Constants included from Formatters::ColorSupport

Formatters::ColorSupport::STATUS_COLORS

Instance Method Summary collapse

Methods included from Formatters::ColorSupport

colorize_status, enabled?, pastel

Methods inherited from Base

#extra_columns, #extra_values, #tags_array, #tags_display, #template_display, #to_description, #to_wide_row, #uptime_human, #wide_columns

Instance Method Details

#columnsArray<String>

Returns column headers for standard table output.

Returns:

  • (Array<String>)

    column headers



18
19
20
# File 'lib/pvectl/presenters/volume_operation_result.rb', line 18

def columns
  %w[NODE RESOURCE ID DISK OPERATION STATUS MESSAGE]
end

#to_hash(model) ⇒ Hash

Converts result to hash for JSON/YAML output.

Parameters:

Returns:

  • (Hash)

    hash representation



44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/pvectl/presenters/volume_operation_result.rb', line 44

def to_hash(model)
  vol = model.volume
  {
    "node" => vol&.node,
    "resource_type" => vol&.resource_type,
    "resource_id" => vol&.resource_id,
    "disk" => vol&.name,
    "operation" => model.operation&.to_s,
    "status" => model.status_text,
    "message" => model.message
  }
end

#to_row(model, **_context) ⇒ Array<String>

Converts result to table row values.

Parameters:

Returns:

  • (Array<String>)

    row values



27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/pvectl/presenters/volume_operation_result.rb', line 27

def to_row(model, **_context)
  vol = model.volume
  [
    vol&.node || "-",
    vol&.resource_type || "-",
    vol&.resource_id&.to_s || "-",
    vol&.name || "-",
    model.operation&.to_s || "-",
    status_display(model),
    model.message
  ]
end