Class: Fog::Terremark::Shared::Server
- Inherits:
-
Model
- Object
- Model
- Fog::Terremark::Shared::Server
show all
- Defined in:
- lib/fog/terremark/models/shared/server.rb
Instance Attribute Summary
Attributes inherited from Model
#connection
Instance Method Summary
collapse
Methods inherited from Model
#_dump, _load, aliases, attribute, attributes, #attributes, #collection, identity, #identity, #initialize, #inspect, #merge_attributes, #new_record?, #reload, #requires, #to_json, #wait_for
Constructor Details
This class inherits a constructor from Fog::Model
Instance Method Details
#destroy ⇒ Object
14
15
16
17
18
19
20
21
|
# File 'lib/fog/terremark/models/shared/server.rb', line 14
def destroy
requires :id
data = connection.power_off(@id).body
task = connection.tasks.new(data)
task.wait_for { ready? }
connection.delete_vapp(@id)
true
end
|
#graceful_restart ⇒ Object
75
76
77
78
79
80
|
# File 'lib/fog/terremark/models/shared/server.rb', line 75
def graceful_restart
requires :id
shutdown
wait_for { off? }
power_on
end
|
#off? ⇒ Boolean
32
33
34
|
# File 'lib/fog/terremark/models/shared/server.rb', line 32
def off?
@status == '2'
end
|
#on? ⇒ Boolean
28
29
30
|
# File 'lib/fog/terremark/models/shared/server.rb', line 28
def on?
@status == '4'
end
|
#power_off ⇒ Object
47
48
49
50
51
52
53
54
55
56
|
# File 'lib/fog/terremark/models/shared/server.rb', line 47
def power_off
requires :id
begin
connection.power_off(@id)
rescue Excon::Errors::InternalServerError => e
raise e unless e.to_s =~ /because it is already powered off/
end
true
end
|
#power_on(options = {}) ⇒ Object
36
37
38
39
40
41
42
43
44
45
|
# File 'lib/fog/terremark/models/shared/server.rb', line 36
def power_on(options = {})
requires :id
begin
connection.power_on(@id)
rescue Excon::Errors::InternalServerError => e
raise e unless e.to_s =~ /because it is already powered on/
end
true
end
|
#power_reset ⇒ Object
69
70
71
72
73
|
# File 'lib/fog/terremark/models/shared/server.rb', line 69
def power_reset
requires :id
connection.power_reset(@id)
true
end
|
#ready? ⇒ Boolean
{ ‘0’ => ‘Being created’, ‘2’ => ‘Powered Off’, ‘4’ => ‘Powered On’}
24
25
26
|
# File 'lib/fog/terremark/models/shared/server.rb', line 24
def ready?
@status == '2'
end
|
#save ⇒ Object
82
83
84
85
86
87
88
89
90
91
|
# File 'lib/fog/terremark/models/shared/server.rb', line 82
def save
requires :name
data = connection.instantiate_vapp(@name)
merge_attributes(data.body)
task = connection.deploy_vapp(@id)
task.wait_for { ready? }
task = connection.power_on(@id)
task.wait_for { ready? }
true
end
|
#shutdown ⇒ Object
58
59
60
61
62
63
64
65
66
67
|
# File 'lib/fog/terremark/models/shared/server.rb', line 58
def shutdown
requires :id
begin
connection.power_shutdown(@id)
rescue Excon::Errors::InternalServerError => e
raise e unless e.to_s =~ /because it is already powered off/
end
true
end
|