Class: Pvectl::Services::ContainerLifecycle
- Inherits:
-
Object
- Object
- Pvectl::Services::ContainerLifecycle
- Defined in:
- lib/pvectl/services/container_lifecycle.rb
Overview
Orchestrates container lifecycle operations.
Handles execution of start/stop/shutdown/restart operations with sync/async modes, error handling, and result collection.
Constant Summary collapse
- SYNC_OPERATIONS =
%i[start stop].freeze
- ASYNC_OPERATIONS =
%i[shutdown restart].freeze
- ALL_OPERATIONS =
(SYNC_OPERATIONS + ASYNC_OPERATIONS).freeze
- DEFAULT_TIMEOUT =
60
Instance Method Summary collapse
-
#execute(operation, containers) ⇒ Array<Models::ContainerOperationResult>
Executes a lifecycle operation on a list of containers.
-
#initialize(container_repository, task_repository, options = {}) ⇒ ContainerLifecycle
constructor
Creates a new ContainerLifecycle service.
Constructor Details
#initialize(container_repository, task_repository, options = {}) ⇒ ContainerLifecycle
Creates a new ContainerLifecycle service.
27 28 29 30 31 |
# File 'lib/pvectl/services/container_lifecycle.rb', line 27 def initialize(container_repository, task_repository, = {}) @container_repository = container_repository @task_repository = task_repository @options = end |
Instance Method Details
#execute(operation, containers) ⇒ Array<Models::ContainerOperationResult>
Executes a lifecycle operation on a list of containers.
38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/pvectl/services/container_lifecycle.rb', line 38 def execute(operation, containers) validate_operation!(operation) results = [] containers.each do |container| result = execute_single(operation, container) results << result break if @options[:fail_fast] && result.failed? end results end |