Class: Pvectl::Presenters::OperationResult Abstract

Inherits:
Base
  • Object
show all
Includes:
Formatters::ColorSupport
Defined in:
lib/pvectl/presenters/operation_result.rb,
sig/pvectl/presenters/operation_result.rbs

Overview

This class is abstract.

Subclass and implement columns, to_row, extra_values, to_hash.

Base presenter for lifecycle operation results.

Provides shared formatting helpers (status colors, task UPID, duration) for subclasses like VmOperationResult and ContainerOperationResult.

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

#columns, #extra_columns, #extra_values, #format_bytes, #format_firewall, #format_firewall_rules, #format_task_history, #resource, #tags_array, #tags_display, #template_display, #to_description, #to_hash, #to_row, #to_wide_row, #uptime_human, #wide_columns

Instance Method Details

#colorize(text, color) ⇒ String

Colorizes text using Pastel.



55
56
57
58
# File 'lib/pvectl/presenters/operation_result.rb', line 55

def colorize(text, color)
  pastel = Formatters::ColorSupport.pastel(explicit_flag: nil)
  pastel.public_send(color, text)
end

#duration_display(model) ⇒ String

Returns formatted duration.



43
44
45
46
47
48
# File 'lib/pvectl/presenters/operation_result.rb', line 43

def duration_display(model)
  duration = model.task&.duration
  return "-" unless duration

  "#{duration.to_f.round(1)}s"
end

#status_display(model) ⇒ String

Returns colored status display.



21
22
23
24
25
26
27
28
29
# File 'lib/pvectl/presenters/operation_result.rb', line 21

def status_display(model)
  case model.status_text
  when "Success" then colorize(model.status_text, :green)
  when "Failed" then colorize(model.status_text, :red)
  when "Pending" then colorize(model.status_text, :yellow)
  when "Partial" then colorize(model.status_text, :bright_yellow)
  else model.status_text
  end
end

#task_upid(model) ⇒ String

Returns task UPID or dash.



35
36
37
# File 'lib/pvectl/presenters/operation_result.rb', line 35

def task_upid(model)
  model.task_upid || model.task&.upid || "-"
end