mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
[digitalocean|compute] Implement missing requests
- power_off_server - power_on_server - shutdown_server Added required tests
This commit is contained in:
parent
f13abac61a
commit
f83b4885e9
5 changed files with 109 additions and 0 deletions
|
@ -30,6 +30,9 @@ module Fog
|
|||
request :destroy_server
|
||||
request :reboot_server
|
||||
request :power_cycle_server
|
||||
request :power_off_server
|
||||
request :power_on_server
|
||||
request :shutdown_server
|
||||
|
||||
# request :digitalocean_resize
|
||||
|
||||
|
|
25
lib/fog/digitalocean/requests/compute/power_off_server.rb
Normal file
25
lib/fog/digitalocean/requests/compute/power_off_server.rb
Normal file
|
@ -0,0 +1,25 @@
|
|||
module Fog
|
||||
module Compute
|
||||
class DigitalOcean
|
||||
class Real
|
||||
|
||||
def power_off_server( id )
|
||||
request(
|
||||
:expects => [200],
|
||||
:method => 'GET',
|
||||
:path => "droplets/#{id}/power_off"
|
||||
)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
class Mock
|
||||
|
||||
def power_off_server( id )
|
||||
Fog::Mock.not_implemented
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
25
lib/fog/digitalocean/requests/compute/power_on_server.rb
Normal file
25
lib/fog/digitalocean/requests/compute/power_on_server.rb
Normal file
|
@ -0,0 +1,25 @@
|
|||
module Fog
|
||||
module Compute
|
||||
class DigitalOcean
|
||||
class Real
|
||||
|
||||
def power_on_server( id )
|
||||
request(
|
||||
:expects => [200],
|
||||
:method => 'GET',
|
||||
:path => "droplets/#{id}/power_on"
|
||||
)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
class Mock
|
||||
|
||||
def power_on_server( id )
|
||||
Fog::Mock.not_implemented
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
25
lib/fog/digitalocean/requests/compute/shutdown_server.rb
Normal file
25
lib/fog/digitalocean/requests/compute/shutdown_server.rb
Normal file
|
@ -0,0 +1,25 @@
|
|||
module Fog
|
||||
module Compute
|
||||
class DigitalOcean
|
||||
class Real
|
||||
|
||||
def shutdown_server( id )
|
||||
request(
|
||||
:expects => [200],
|
||||
:method => 'GET',
|
||||
:path => "droplets/#{id}/shutdown"
|
||||
)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
class Mock
|
||||
|
||||
def shutdown_server( id )
|
||||
Fog::Mock.not_implemented
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
31
tests/digitalocean/requests/compute/power_state_tests.rb
Normal file
31
tests/digitalocean/requests/compute/power_state_tests.rb
Normal file
|
@ -0,0 +1,31 @@
|
|||
Shindo.tests('Fog::Compute[:digitalocean] | reboot_server request', ['digitalocean', 'compute']) do
|
||||
|
||||
service = Fog::Compute[:digitalocean]
|
||||
server = fog_test_server
|
||||
|
||||
tests('success') do
|
||||
|
||||
test('#power_off_server') do
|
||||
service.power_off_server(server.id)
|
||||
server.wait_for(120) { !ready? }
|
||||
server.status == 'off'
|
||||
end
|
||||
|
||||
test('#power_on_server') do
|
||||
service.power_on_server server.id
|
||||
server.wait_for(120) { ready? }
|
||||
server.ready?
|
||||
end
|
||||
|
||||
test('#shutdown_server') do
|
||||
service.shutdown_server server.id
|
||||
server.wait_for(120) { status == 'off' }
|
||||
server.status == 'off'
|
||||
end
|
||||
|
||||
# restore status
|
||||
server.start
|
||||
|
||||
end
|
||||
|
||||
end
|
Loading…
Add table
Reference in a new issue