Class: Fog::Scaleway::Compute::Snapshot

Inherits:
Model
  • Object
show all
Defined in:
lib/fog/scaleway/models/compute/snapshot.rb

Instance Method Summary collapse

Instance Method Details

#base_volume=(value) ⇒ Object



16
17
18
19
20
21
22
23
24
25
# 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) ⇒ Object



42
43
44
45
46
47
48
# 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) ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
61
62
# 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

#destroyObject



35
36
37
38
39
40
# File 'lib/fog/scaleway/models/compute/snapshot.rb', line 35

def destroy
  requires :identity

  service.delete_snapshot(identity)
  true
end

#saveObject



27
28
29
30
31
32
33
# File 'lib/fog/scaleway/models/compute/snapshot.rb', line 27

def save
  if persisted?
    update
  else
    create
  end
end