Class: Daytona::WarmPoolService

Inherits:
Object
  • Object
show all
Includes:
Instrumentation
Defined in:
lib/daytona/warm_pool_service.rb

Instance Method Summary collapse

Methods included from Instrumentation

included

Constructor Details

#initialize(warm_pools_api, otel_state: nil) ⇒ WarmPoolService

Service for managing Daytona Warm Pools. Can be used to list, create, update and delete Warm Pools.

Parameters:

  • warm_pools_api (DaytonaApiClient::WarmPoolsApi)
  • otel_state (Daytona::OtelState, nil) (defaults to: nil)


14
15
16
17
# File 'lib/daytona/warm_pool_service.rb', line 14

def initialize(warm_pools_api, otel_state: nil)
  @warm_pools_api = warm_pools_api
  @otel_state = otel_state
end

Instance Method Details

#create(snapshot, pool, target: nil) ⇒ Daytona::WarmPool

Create a new Warm Pool.

Parameters:

  • snapshot (String)

    The snapshot (ID or name) to keep warm sandboxes for

  • pool (Integer)

    Number of warm sandboxes to keep ready

  • target (String, nil) (defaults to: nil)

    Target region; defaults to the organization default region

Returns:



25
26
27
# File 'lib/daytona/warm_pool_service.rb', line 25

def create(snapshot, pool, target: nil)
  WarmPool.new(warm_pools_api.create_warm_pool(DaytonaApiClient::CreateWarmPool.new(snapshot:, pool:, target:)))
end

#delete(warm_pool_id) ⇒ void

This method returns an undefined value.

Delete a Warm Pool.

Parameters:

  • warm_pool_id (String)


33
# File 'lib/daytona/warm_pool_service.rb', line 33

def delete(warm_pool_id) = warm_pools_api.delete_warm_pool(warm_pool_id)

#listArray<Daytona::WarmPool>

List all Warm Pools.

Returns:



38
39
40
# File 'lib/daytona/warm_pool_service.rb', line 38

def list
  warm_pools_api.list_warm_pools.map { |warm_pool| WarmPool.new(warm_pool) }
end

#update(warm_pool_id, pool) ⇒ Daytona::WarmPool

Update the desired size of a Warm Pool.

Parameters:

  • warm_pool_id (String)
  • pool (Integer)

    New desired number of warm sandboxes (0 drains the pool)

Returns:



47
48
49
# File 'lib/daytona/warm_pool_service.rb', line 47

def update(warm_pool_id, pool)
  WarmPool.new(warm_pools_api.update_warm_pool(warm_pool_id, DaytonaApiClient::UpdateWarmPool.new(pool:)))
end