Class: Daytona::VolumeService

Inherits:
Object
  • Object
show all
Defined in:
lib/daytona/volume_service.rb

Instance Method Summary collapse

Constructor Details

#initialize(volumes_api) ⇒ VolumeService

Service for managing Daytona Volumes. Can be used to list, get, create and delete Volumes.

Parameters:

  • volumes_api (DaytonaApiClient::VolumesApi)


8
9
10
# File 'lib/daytona/volume_service.rb', line 8

def initialize(volumes_api)
  @volumes_api = volumes_api
end

Instance Method Details

#create(name) ⇒ Daytona::Volume

Create new Volume.

Parameters:

  • name (String)

Returns:



16
# File 'lib/daytona/volume_service.rb', line 16

def create(name) = Volume.new(volumes_api.create_volume(DaytonaApiClient::CreateVolume.new(name:)))

#delete(volume) ⇒ void

This method returns an undefined value.

Delete a Volume.

Parameters:



22
# File 'lib/daytona/volume_service.rb', line 22

def delete(volume) = volumes_api.delete_volume(volume.id)

#get(name, create: false) ⇒ Daytona::Volume

Get a Volume by name.

Parameters:

  • name (String)
  • create (Boolean) (defaults to: false)

Returns:



29
30
31
32
33
34
35
# File 'lib/daytona/volume_service.rb', line 29

def get(name, create: false)
  Volume.new(volumes_api.get_volume_by_name(name))
rescue DaytonaApiClient::ApiError => e
  raise unless create && e.code == 404 && e.message.include?("Volume with name #{name} not found")

  create(name)
end

#listArray<Daytona::Volume>

List all Volumes.

Returns:



40
41
42
# File 'lib/daytona/volume_service.rb', line 40

def list
  volumes_api.list_volumes.map { |volume| Volume.new(volume) }
end