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

#forceBoolean (readonly)


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

attribute :force

#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


85
86
87
88
89
# File 'lib/fog/rackspace/models/block_storage/snapshot.rb', line 85

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

#ready?Boolean

Returns true if the snapshot is in a ready state


51
52
53
# File 'lib/fog/rackspace/models/block_storage/snapshot.rb', line 51

def ready?
  state == AVAILABLE
end

#saveBoolean

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


66
67
68
69
70
71
72
73
74
75
76
# File 'lib/fog/rackspace/models/block_storage/snapshot.rb', line 66

def save
  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