Class: Pvectl::Services::ResourceDelete

Inherits:
Object
  • Object
show all
Defined in:
lib/pvectl/services/resource_delete.rb

Overview

Orchestrates deletion of VMs and containers.

Handles validation, force-stop of running resources, and async/sync modes.

Examples:

Delete stopped VMs

service = ResourceDelete.new(vm_repository: vm_repo, container_repository: ct_repo, task_repository: task_repo)
results = service.execute(:vm, [vm1, vm2])

Delete with force (stops running VMs first)

service = ResourceDelete.new(..., options: { force: true })
results = service.execute(:vm, [running_vm])

Constant Summary collapse

DEFAULT_TIMEOUT =
60

Instance Method Summary collapse

Constructor Details

#initialize(vm_repository:, container_repository:, task_repository:, options: {}) ⇒ ResourceDelete

Creates a new ResourceDelete service.

Parameters:



26
27
28
29
30
31
# File 'lib/pvectl/services/resource_delete.rb', line 26

def initialize(vm_repository:, container_repository:, task_repository:, options: {})
  @vm_repository = vm_repository
  @container_repository = container_repository
  @task_repository = task_repository
  @options = options
end

Instance Method Details

#execute(resource_type, resources) ⇒ Array<Models::OperationResult>

Executes delete operation on resources.

Parameters:

Returns:



38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/pvectl/services/resource_delete.rb', line 38

def execute(resource_type, resources)
  @resource_type = resource_type
  results = []

  resources.each do |resource|
    result = delete_single(resource)
    results << result

    break if @options[:fail_fast] && result.failed?
  end

  results
end