Class: Fog::Compute::QingCloud::Volume
Instance Method Summary
collapse
#changing?, inherited, #wait_for
Constructor Details
#initialize(attributes = {}) ⇒ Volume
Returns a new instance of Volume.
21
22
23
24
25
|
# File 'lib/fog/qingcloud/models/compute/volume.rb', line 21
def initialize(attributes = {})
self.server = attributes.delete(:server)
super
end
|
Instance Method Details
#destroy ⇒ Object
27
28
29
30
31
32
33
34
35
36
37
|
# File 'lib/fog/qingcloud/models/compute/volume.rb', line 27
def destroy
requires :id
if ['creating', 'detaching'].include?(transition_status)
wait_for { ready? }
end
service.delete_volumes(id)
true
rescue Fog::QingCloud::Errors::PermissionDenied => e
raise e unless e.message =~ /has already been deleted/i
true
end
|
#ready? ⇒ Boolean
39
40
41
|
# File 'lib/fog/qingcloud/models/compute/volume.rb', line 39
def ready?
status == 'available' and transition_status == ''
end
|
#save ⇒ Object
43
44
45
46
47
48
49
50
51
52
53
54
55
|
# File 'lib/fog/qingcloud/models/compute/volume.rb', line 43
def save
if persisted?
modify_attributes(name, description)
else
requires :size
self.id = service.create_volumes(zone, size, 'name' => name).body['volumes'].first
wait_for { ready? }
if @server
self.server = @server
end
end
true
end
|
#server ⇒ Object
57
58
59
60
|
# File 'lib/fog/qingcloud/models/compute/volume.rb', line 57
def server
requires :server_id
service.servers.get(server_id)
end
|
#server=(new_server) ⇒ Object
62
63
64
65
66
67
68
|
# File 'lib/fog/qingcloud/models/compute/volume.rb', line 62
def server=(new_server)
if new_server
attach(new_server)
else
detach
end
end
|