class Fog::Scaleway::Compute::Volume

Public Instance Methods

clone(name = nil) click to toggle source
# File lib/fog/scaleway/models/compute/volume.rb, line 56
def clone(name = nil)
  requires :identity, :volume_type

  if name.nil?
    requires :name

    name = "#{self.name} - (Copy)"
  end

  if (volume = service.create_volume(name, volume_type, base_volume: identity).body['volume'])
    service.volumes.new(volume)
  end
end
create_snapshot(name = nil) click to toggle source
# File lib/fog/scaleway/models/compute/volume.rb, line 42
def create_snapshot(name = nil)
  requires :identity

  if name.nil?
    requires :name

    name = "#{self.name} snapshot"
  end

  if (snapshot = service.create_snapshot(name, identity).body['snapshot'])
    service.snapshots.new(snapshot)
  end
end
destroy() click to toggle source
# File lib/fog/scaleway/models/compute/volume.rb, line 35
def destroy
  requires :identity

  service.delete_volume(identity)
  true
end
save() click to toggle source
# File lib/fog/scaleway/models/compute/volume.rb, line 27
def save
  if persisted?
    update
  else
    create
  end
end
server=(value) click to toggle source
# File lib/fog/scaleway/models/compute/volume.rb, line 16
def server=(value)
  attributes[:server] = case value
                        when Hash
                          service.servers.new(value)
                        when String
                          service.servers.new(identity: value)
                        else
                          value
                        end
end

Private Instance Methods

create() click to toggle source
# File lib/fog/scaleway/models/compute/volume.rb, line 72
def create
  requires :name, :volume_type, :size

  if (volume = service.create_volume(name, volume_type, size: size).body['volume'])
    merge_attributes(volume)
    true
  else
    false
  end
end
update() click to toggle source
# File lib/fog/scaleway/models/compute/volume.rb, line 83
def update
  requires :identity

  if (volume = service.update_volume(identity, self).body['volume'])
    merge_attributes(volume)
    true
  else
    false
  end
end