class Fog::Scaleway::Compute::Snapshot

Public Instance Methods

base_volume=(value) click to toggle source
# File lib/fog/scaleway/models/compute/snapshot.rb, line 16
def base_volume=(value)
  attributes[:base_volume] = case value
                             when Hash
                               service.volumes.new(value)
                             when String
                               service.volumes.new(identity: value)
                             else
                               value
                             end
end
create_image(name, arch) click to toggle source
# File lib/fog/scaleway/models/compute/snapshot.rb, line 42
def create_image(name, arch)
  requires :identity

  if (image = service.create_image(name, arch, identity).body['image'])
    service.images.new(image)
  end
end
create_volume(name = nil) click to toggle source
# File lib/fog/scaleway/models/compute/snapshot.rb, line 50
def create_volume(name = nil)
  requires :identity, :volume_type

  if name.nil?
    requires :name

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

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

  service.delete_snapshot(identity)
  true
end
save() click to toggle source
# File lib/fog/scaleway/models/compute/snapshot.rb, line 27
def save
  if persisted?
    update
  else
    create
  end
end

Private Instance Methods

create() click to toggle source
# File lib/fog/scaleway/models/compute/snapshot.rb, line 66
def create
  requires :name, :base_volume

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

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