Class: Fog::OpenStack::Volume::V2::Snapshot

Inherits:
Snapshot
  • Object
show all
Defined in:
lib/fog/openstack/volume/v2/models/snapshot.rb

Instance Attribute Summary

Attributes inherited from Model

#project

Instance Method Summary collapse

Methods inherited from Snapshot

#delete_metadata, #destroy, #update, #update_metadata

Methods inherited from Model

#destroy, #initialize, #update

Constructor Details

This class inherits a constructor from Fog::OpenStack::Model

Instance Method Details

#createObject



28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/fog/openstack/volume/v2/models/snapshot.rb', line 28

def create
  requires :name

  # volume_id, name, description, force=false
  response = service.create_snapshot(attributes[:volume_id],
                                     attributes[:name],
                                     attributes[:description],
                                     attributes[:force])
  merge_attributes(response.body['snapshot'])

  self
end

#saveObject



17
18
19
20
21
22
23
24
25
26
# File 'lib/fog/openstack/volume/v2/models/snapshot.rb', line 17

def save
  requires :name
  data = if id.nil?
           service.create_snapshot(attributes[:volume_id], name, description, force)
         else
           service.update_snapshot(id, attributes.reject { |k, _v| k == :id })
         end
  merge_attributes(data.body['snapshot'])
  true
end