Moved a bunch of time functions into UTC. Fixes bugs which we only see for 4 hours a year.

This commit is contained in:
Matt Amos 2009-03-29 01:31:04 +00:00
parent 8140c99313
commit afcb345014
12 changed files with 22 additions and 22 deletions

View file

@ -157,7 +157,7 @@ class AmfController < ApplicationController
cs.tags = cstags
cs.user_id = user.id
# smsm1 doesn't like the next two lines and thinks they need to be abstracted to the model more/better
cs.created_at = Time.now
cs.created_at = Time.now.getutc
cs.closed_at = cs.created_at + Changeset::IDLE_TIMEOUT
cs.save_with_tags!
return [0,cs.id]

View file

@ -225,7 +225,7 @@ class ApiController < ApplicationController
endtime = Time.parse(params[:end])
else
hours = (params[:hours] || '1').to_i.hours
endtime = Time.now
endtime = Time.now.getutc
starttime = endtime - hours
end

View file

@ -461,7 +461,7 @@ private
# if parameter 'open' is nill then open and closed changsets are returned
def conditions_open(open)
return open.nil? ? nil : ['closed_at >= ? and num_changes <= ?',
DateTime.now, Changeset::MAX_ELEMENTS]
Time.now.getutc, Changeset::MAX_ELEMENTS]
end
##
@ -469,7 +469,7 @@ private
# ('closed at' time has passed or changes limit is hit)
def conditions_closed(closed)
return closed.nil? ? nil : ['closed_at < ? and num_changes > ?',
DateTime.now, Changeset::MAX_ELEMENTS]
Time.now.getutc, Changeset::MAX_ELEMENTS]
end
##

View file

@ -15,7 +15,7 @@ class MessageController < ApplicationController
@message = Message.new(params[:message])
@message.to_user_id = @to_user.id
@message.from_user_id = @user.id
@message.sent_on = Time.now
@message.sent_on = Time.now.getutc
if @message.save
flash[:notice] = 'Message sent'

View file

@ -117,7 +117,7 @@ class TraceController < ApplicationController
:description => params[:trace][:description],
:public => params[:trace][:public],
:inserted => false, :user => @user,
:timestamp => Time.now})
:timestamp => Time.now.getutc})
@trace.valid?
@trace.errors.add(:gpx_file, "can't be blank")
end
@ -313,7 +313,7 @@ private
:description => description, :public => public})
@trace.inserted = false
@trace.user = @user
@trace.timestamp = Time.now
@trace.timestamp = Time.now.getutc
if @trace.save
FileUtils.mv(filename, @trace.trace_name)

View file

@ -42,12 +42,12 @@ class Changeset < ActiveRecord::Base
# note that this may not be a hard limit - due to timing changes and
# concurrency it is possible that some changesets may be slightly
# longer than strictly allowed or have slightly more changes in them.
return ((closed_at > Time.now) and (num_changes <= MAX_ELEMENTS))
return ((closed_at > Time.now.getutc) and (num_changes <= MAX_ELEMENTS))
end
def set_closed_time_now
if is_open?
self.closed_at = Time.now
self.closed_at = Time.now.getutc
end
end
@ -60,10 +60,10 @@ class Changeset < ActiveRecord::Base
doc.find('//osm/changeset').each do |pt|
if create
cs.created_at = Time.now
cs.created_at = Time.now.getutc
# initial close time is 1h ahead, but will be increased on each
# modification.
cs.closed_at = Time.now + IDLE_TIMEOUT
cs.closed_at = cs.created_at + IDLE_TIMEOUT
# initially we have no changes in a changeset
cs.num_changes = 0
end
@ -140,7 +140,7 @@ class Changeset < ActiveRecord::Base
end
def save_with_tags!
t = Time.now
t = Time.now.getutc
# do the changeset update and the changeset tags update in the
# same transaction to ensure consistency.
@ -151,7 +151,7 @@ class Changeset < ActiveRecord::Base
if (closed_at - created_at) > (MAX_TIME_OPEN - IDLE_TIMEOUT)
self.closed_at = created_at + MAX_TIME_OPEN
else
self.closed_at = Time.now + IDLE_TIMEOUT
self.closed_at = Time.now.getutc + IDLE_TIMEOUT
end
self.save!

View file

@ -267,7 +267,7 @@ class Node < ActiveRecord::Base
private
def save_with_history!
t = Time.now
t = Time.now.getutc
Node.transaction do
self.version += 1
self.timestamp = t

View file

@ -51,7 +51,7 @@ class Relation < ActiveRecord::Base
# The follow block does not need to be executed because they are dealt with
# in create_with_history, update_from and delete_with_history
if create
relation.timestamp = Time.now
relation.timestamp = Time.now.getutc
relation.visible = true
relation.version = 0
else
@ -334,7 +334,7 @@ class Relation < ActiveRecord::Base
# changed then we have to monitor their before and after state.
tags_changed = false
t = Time.now
t = Time.now.getutc
self.version += 1
self.timestamp = t
self.save!

View file

@ -30,7 +30,7 @@ class User < ActiveRecord::Base
file_column :image, :magick => { :geometry => "100x100>" }
def after_initialize
self.creation_time = Time.now if self.creation_time.nil?
self.creation_time = Time.now.getutc if self.creation_time.nil?
end
def encrypt_password

View file

@ -51,7 +51,7 @@ class Way < ActiveRecord::Base
# This next section isn't required for the create, update, or delete of ways
if create
way.timestamp = Time.now
way.timestamp = Time.now.getutc
way.visible = true
else
if pt['timestamp']
@ -296,7 +296,7 @@ class Way < ActiveRecord::Base
private
def save_with_history!
t = Time.now
t = Time.now.getutc
# update the bounding box, note that this has to be done both before
# and after the save, so that nodes from both versions are included in the

View file

@ -160,7 +160,7 @@ class ApiControllerTest < ActionController::TestCase
#print @response.body
# As we have loaded the fixtures, we can assume that there are no
# changes recently
now = Time.now
now = Time.now.getutc
hourago = now - 1.hour
# Note that this may fail on a very slow machine, so isn't a great test
assert_select "osm[version='#{API_VERSION}'][generator='#{GENERATOR}']:root", :count => 1 do
@ -181,7 +181,7 @@ class ApiControllerTest < ActionController::TestCase
1.upto(16) do |zoom|
get :changes, :zoom => zoom
assert_response :success
now = Time.now
now = Time.now.getutc
hourago = now - 1.hour
# Note that this may fail on a very slow machine, so isn't a great test
assert_select "osm[version='#{API_VERSION}'][generator='#{GENERATOR}']:root", :count => 1 do

View file

@ -37,7 +37,7 @@ class ChangesetControllerTest < ActionController::TestCase
assert_equal Rational(1,24), duration , "initial idle timeout should be an hour (#{cs.created_at} -> #{cs.closed_at})"
else
# must be number of seconds...
assert_equal 3600.0, duration , "initial idle timeout should be an hour (#{cs.created_at} -> #{cs.closed_at})"
assert_equal 3600, duration.round, "initial idle timeout should be an hour (#{cs.created_at} -> #{cs.closed_at})"
end
end