1
0
Fork 0
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:
Wesley Beary 2009-11-09 22:53:04 -08:00
parent 44fb9f1064
commit 31e68e20fe
6 changed files with 26 additions and 9 deletions

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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