mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
add BUILD -> ACTIVE transition with delay for rackspace mocks
This commit is contained in:
parent
44fb9f1064
commit
31e68e20fe
6 changed files with 26 additions and 9 deletions
|
@ -90,6 +90,7 @@ else
|
||||||
}
|
}
|
||||||
data['name'] = "slice#{data[:id]}"
|
data['name'] = "slice#{data[:id]}"
|
||||||
data['adminPass'] = "#{data['name']}password"
|
data['adminPass'] = "#{data['name']}password"
|
||||||
|
Fog::Rackspace::Servers.data[:last_modified][data['id']] = Time.now
|
||||||
Fog::Rackspace::Servers.data[:servers][data['id']] = data
|
Fog::Rackspace::Servers.data[:servers][data['id']] = data
|
||||||
response.body = { 'server' => data }
|
response.body = { 'server' => data }
|
||||||
response
|
response
|
||||||
|
|
|
@ -29,12 +29,12 @@ else
|
||||||
|
|
||||||
def delete_server(server_id)
|
def delete_server(server_id)
|
||||||
response = Fog::Response.new
|
response = Fog::Response.new
|
||||||
if server = Fog::Rackspace::Servers.data[:servers][server_id]
|
if server = list_servers_detail.body['servers'].detect { |server| server['id'] == server_id }
|
||||||
if server['STATUS'] == 'BUILD'
|
if server['status'] == 'BUILD'
|
||||||
response.status = 409
|
response.status = 409
|
||||||
raise(Excon::Errors.status_error(202, 400, response))
|
raise(Excon::Errors.status_error(202, 409, response))
|
||||||
else
|
else
|
||||||
Fog::Rackspace::Servers.data.delete(server_id)
|
Fog::Rackspace::Servers.data[:servers].delete(server_id)
|
||||||
response.status = 202
|
response.status = 202
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
|
|
|
@ -39,7 +39,22 @@ else
|
||||||
module Rackspace
|
module Rackspace
|
||||||
class Servers
|
class Servers
|
||||||
|
|
||||||
def list_servers_details
|
def list_servers_detail
|
||||||
|
response = Fog::Response.new
|
||||||
|
|
||||||
|
servers = Fog::Rackspace::Servers.data[:servers].values
|
||||||
|
for server in servers
|
||||||
|
case server['status']
|
||||||
|
when 'BUILD'
|
||||||
|
if Time.now - Fog::Rackspace::Servers.data[:last_modified][server['id']] > 2
|
||||||
|
server['status'] = 'ACTIVE'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
response.status = [200, 203][rand(1)]
|
||||||
|
response.body = { 'servers' => servers }
|
||||||
|
response
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -32,7 +32,7 @@ else
|
||||||
|
|
||||||
def update_server(server_id, options)
|
def update_server(server_id, options)
|
||||||
response = Fog::Response.new
|
response = Fog::Response.new
|
||||||
if server = Fog::Rackspace::Servers.data[:servers][server_id]
|
if server = list_servers_detail.body['servers'].detect { |server| server['id'] == server_id }
|
||||||
if options['adminPass']
|
if options['adminPass']
|
||||||
server['adminPass'] = options['adminPass']
|
server['adminPass'] = options['adminPass']
|
||||||
end
|
end
|
||||||
|
|
|
@ -8,7 +8,8 @@ module Fog
|
||||||
end
|
end
|
||||||
def self.reset_data
|
def self.reset_data
|
||||||
@data = {
|
@data = {
|
||||||
:servers => {},
|
:last_modified => [],
|
||||||
|
:servers => {}
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -4,9 +4,9 @@ describe 'Rackspace::Servers.create_server' do
|
||||||
describe 'success' do
|
describe 'success' do
|
||||||
|
|
||||||
after(:each) do
|
after(:each) do
|
||||||
# eventually(128) do
|
eventually(128) do
|
||||||
servers.delete_server(@server_id)
|
servers.delete_server(@server_id)
|
||||||
# end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should return proper attributes" do
|
it "should return proper attributes" do
|
||||||
|
|
Loading…
Add table
Reference in a new issue