Class: Fog::Rackspace::BlockStorage::Snapshot

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

Constant Summary collapse

AVAILABLE =
'available'
CREATING =
'creating'
DELETING =
'deleting'
ERROR =
'error'
ERROR_DELETING =
'error_deleting'

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#availability_zoneString (readonly)



43
# File 'lib/fog/rackspace/models/block_storage/snapshot.rb', line 43

attribute :availability_zone

#created_atString (readonly)



19
# File 'lib/fog/rackspace/models/block_storage/snapshot.rb', line 19

attribute :created_at, :aliases => 'createdAt'

#display_descriptionString



31
# File 'lib/fog/rackspace/models/block_storage/snapshot.rb', line 31

attribute :display_description

#display_nameString



27
# File 'lib/fog/rackspace/models/block_storage/snapshot.rb', line 27

attribute :display_name

#idString (readonly)



15
# File 'lib/fog/rackspace/models/block_storage/snapshot.rb', line 15

identity :id

#sizeString



35
# File 'lib/fog/rackspace/models/block_storage/snapshot.rb', line 35

attribute :size

#stateString (readonly)



23
# File 'lib/fog/rackspace/models/block_storage/snapshot.rb', line 23

attribute :state, :aliases => 'status'

#volume_idString



39
# File 'lib/fog/rackspace/models/block_storage/snapshot.rb', line 39

attribute :volume_id

Instance Method Details

#destroyBoolean

Destroys snapshot



81
82
83
84
85
# File 'lib/fog/rackspace/models/block_storage/snapshot.rb', line 81

def destroy
  requires :identity
  service.delete_snapshot(identity)
  true
end

#ready?Boolean

Returns true if the snapshot is in a ready state



47
48
49
# File 'lib/fog/rackspace/models/block_storage/snapshot.rb', line 47

def ready?
  state == AVAILABLE
end

#save(force = false) ⇒ Boolean

Note:

A snapshot object cannot be updated

Note:

All writes to the volume should be flushed before creating the snapshot, either by un-mounting any file systems on the volume or by detaching the volume.

Creates the snapshot



62
63
64
65
66
67
68
69
70
71
72
# File 'lib/fog/rackspace/models/block_storage/snapshot.rb', line 62

def save(force = false)
  requires :volume_id
  raise IdentifierTaken.new('Resaving may cause a duplicate snapshot to be created') if persisted?
  data = service.create_snapshot(volume_id, {
    :display_name => display_name,
    :display_description => display_description,
    :force => force
  })
  merge_attributes(data.body['snapshot'])
  true
end