Class: Pvectl::Presenters::ContainerOperationResult
- Inherits:
-
OperationResult
- Object
- Base
- OperationResult
- Pvectl::Presenters::ContainerOperationResult
- Defined in:
- lib/pvectl/presenters/container_operation_result.rb
Overview
Presenter for container lifecycle operation results.
Formats ContainerOperationResult models for table/JSON/YAML output.
Constant Summary
Constants included from Formatters::ColorSupport
Formatters::ColorSupport::STATUS_COLORS
Instance Method Summary collapse
-
#columns ⇒ Array<String>
Returns column headers for standard table output.
-
#extra_columns ⇒ Array<String>
Returns additional columns for wide output.
-
#extra_values(model, **_context) ⇒ Array<String>
Returns additional values for wide output.
-
#to_hash(model) ⇒ Hash
Converts result to hash for JSON/YAML output.
-
#to_row(model, **_context) ⇒ Array<String>
Converts result to table row values.
Methods included from Formatters::ColorSupport
colorize_status, enabled?, pastel
Methods inherited from Base
#tags_array, #tags_display, #template_display, #to_description, #to_wide_row, #uptime_human, #wide_columns
Instance Method Details
#columns ⇒ Array<String>
Returns column headers for standard table output.
18 19 20 |
# File 'lib/pvectl/presenters/container_operation_result.rb', line 18 def columns %w[CTID NAME NODE STATUS MESSAGE] end |
#extra_columns ⇒ Array<String>
Returns additional columns for wide output.
25 26 27 |
# File 'lib/pvectl/presenters/container_operation_result.rb', line 25 def extra_columns %w[TASK DURATION] end |
#extra_values(model, **_context) ⇒ Array<String>
Returns additional values for wide output.
62 63 64 65 66 67 |
# File 'lib/pvectl/presenters/container_operation_result.rb', line 62 def extra_values(model, **_context) [ task_upid(model), duration_display(model) ] end |
#to_hash(model) ⇒ Hash
Converts result to hash for JSON/YAML output.
For clone operations, displays the new (cloned) container data. For all other operations, displays the source container data.
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
# File 'lib/pvectl/presenters/container_operation_result.rb', line 76 def to_hash(model) if model.operation == :clone && model.resource { "ctid" => model.resource[:new_ctid], "name" => model.resource[:hostname], "node" => model.resource[:node] || model.container&.node, "status" => model.status_text, "message" => model., "task_upid" => model.task_upid || model.task&.upid } else { "ctid" => model.container.vmid, "name" => model.container.name, "node" => model.container.node, "status" => model.status_text, "message" => model., "task_upid" => model.task_upid || model.task&.upid } end end |
#to_row(model, **_context) ⇒ Array<String>
Converts result to table row values.
For clone operations, displays the new (cloned) container data. For all other operations, displays the source container data.
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/pvectl/presenters/container_operation_result.rb', line 37 def to_row(model, **_context) if model.operation == :clone && model.resource [ model.resource[:new_ctid].to_s, model.resource[:hostname] || "CT-#{model.resource[:new_ctid]}", model.resource[:node] || model.container&.node, status_display(model), model. ] else [ model.container.vmid.to_s, display_name(model.container), model.container.node, status_display(model), model. ] end end |