mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
a1f0dbf428
Create real and mock rescue and unrescue methods for Rackspace compute V2 Create tests for rescue and unrescue methods
40 lines
1.2 KiB
Ruby
40 lines
1.2 KiB
Ruby
module Fog
|
|
module Compute
|
|
class RackspaceV2
|
|
class Real
|
|
# Take server out of rescue mode
|
|
# @param [String] server_id id of server
|
|
# @return [Excon::Response] response
|
|
# @raise [Fog::Rackspace::Errors::NotFound] - HTTP 404
|
|
# @raise [Fog::Rackspace::Errors::BadRequest] - HTTP 400
|
|
# @raise [Fog::Rackspace::Errors::InternalServerError] - HTTP 500
|
|
# @raise [Fog::Rackspace::Errors::ServiceError]
|
|
# @see http://docs.rackspace.com/servers/api/v2/cs-devguide/content/exit_rescue_mode.html
|
|
#
|
|
# * Status Transition:
|
|
# * RESCUE -> PREP_UNRESCUE -> ACTIVE
|
|
# * RESCUE -> ERROR (on error)
|
|
def unrescue_server(server_id)
|
|
data = {
|
|
'unrescue' => nil
|
|
}
|
|
|
|
request(
|
|
:body => Fog::JSON.encode(data),
|
|
:expects => [202],
|
|
:method => 'POST',
|
|
:path => "servers/#{server_id}/action"
|
|
)
|
|
end
|
|
end
|
|
|
|
class Mock
|
|
def unrescue_server(server_id)
|
|
server = self.data[:servers][server_id]
|
|
server["status"] = "ACTIVE"
|
|
response(:status => 202)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|