1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00

add offset for fog times

allows working around clock skew issues
This commit is contained in:
geemus 2010-12-21 12:12:30 -08:00
parent 63ac4159d9
commit 74e4288549
4 changed files with 51 additions and 0 deletions

View file

@ -0,0 +1,28 @@
module Fog
module AWS
class Storage
class Real
# Sync clock against S3 to avoid skew errors
#
def sync_clock
response = begin
get_service
rescue => error
error.response
end
Fog::Time.now = Time.parse(response.headers['Date'])
end
end # Real
class Mock # :nodoc:all
def sync_clock
true
end
end # Mock
end # Storage
end # AWS
end # Fog

View file

@ -42,6 +42,7 @@ module Fog
request :put_object_acl
request :put_object_url
request :put_request_payment
request :sync_clock
request :upload_part
module Utils

View file

@ -29,4 +29,5 @@ require 'fog/core/provider'
require 'fog/core/service'
require 'fog/core/ssh'
require 'fog/core/storage'
require 'fog/core/time'
require 'fog/core/wait_for'

21
lib/fog/core/time.rb Normal file
View file

@ -0,0 +1,21 @@
module Fog
class Time < ::Time
class << self
def now
::Time.now - offset
end
def now=(new_now)
old_now = ::Time.now
@offset = old_now - new_now
new_now
end
def offset
@offset ||= 0
end
end
end
end