Class: Fog::Compute::AWS::Volume
- Inherits:
-
Model
- Object
- Model
- Fog::Compute::AWS::Volume
show all
- Defined in:
- lib/fog/aws/models/compute/volume.rb
Instance Attribute Summary
Attributes inherited from Model
#collection, #connection
Instance Method Summary
collapse
Methods inherited from Model
#inspect, #reload, #symbolize_keys, #to_json, #wait_for
#_load, #aliases, #attribute, #attributes, #identity, #ignore_attributes, #ignored_attributes
#_dump, #attributes, #dup, #identity, #identity=, #merge_attributes, #new_record?, #requires, #requires_one
Constructor Details
#initialize(attributes = {}) ⇒ Volume
Returns a new instance of Volume.
24
25
26
27
28
|
# File 'lib/fog/aws/models/compute/volume.rb', line 24
def initialize(attributes = {})
self.server = attributes.delete(:server)
super
end
|
Instance Method Details
#destroy ⇒ Object
30
31
32
33
34
35
|
# File 'lib/fog/aws/models/compute/volume.rb', line 30
def destroy
requires :id
connection.delete_volume(id)
true
end
|
#force_detach ⇒ Object
95
96
97
|
# File 'lib/fog/aws/models/compute/volume.rb', line 95
def force_detach
detach(true)
end
|
#ready? ⇒ Boolean
37
38
39
|
# File 'lib/fog/aws/models/compute/volume.rb', line 37
def ready?
state == 'available'
end
|
#save ⇒ Object
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
# File 'lib/fog/aws/models/compute/volume.rb', line 41
def save
raise Fog::Errors::Error.new('Resaving an existing object may create a duplicate') if identity
requires :availability_zone
requires_one :size, :snapshot_id
if type == 'io1'
requires :iops
end
data = connection.create_volume(availability_zone, size, 'SnapshotId' => snapshot_id, 'VolumeType' => type, 'Iops' => iops).body
new_attributes = data.reject {|key,value| key == 'requestId'}
merge_attributes(new_attributes)
if tags = self.tags
Fog.wait_for { self.reload rescue nil }
for key, value in (self.tags = tags)
connection.tags.create(
:key => key,
:resource_id => self.identity,
:value => value
)
end
end
if @server
self.server = @server
end
true
end
|
#server ⇒ Object
72
73
74
75
|
# File 'lib/fog/aws/models/compute/volume.rb', line 72
def server
requires :server_id
connection.servers('instance-id' => server_id)
end
|
#server=(new_server) ⇒ Object
77
78
79
80
81
82
83
|
# File 'lib/fog/aws/models/compute/volume.rb', line 77
def server=(new_server)
if new_server
attach(new_server)
else
detach
end
end
|
#snapshot(description) ⇒ Object
90
91
92
93
|
# File 'lib/fog/aws/models/compute/volume.rb', line 90
def snapshot(description)
requires :id
connection.create_snapshot(id, description)
end
|
#snapshots ⇒ Object
85
86
87
88
|
# File 'lib/fog/aws/models/compute/volume.rb', line 85
def snapshots
requires :id
connection.snapshots(:volume => self)
end
|