Use utc for time comparision
This commit is contained in:
parent
354e2ef08d
commit
638c616296
|
@ -11,7 +11,7 @@ class WaitForClusterCreationWorker
|
|||
Ci::FetchGcpOperationService.new.execute(cluster) do |operation|
|
||||
case operation.status
|
||||
when 'RUNNING'
|
||||
if TIMEOUT < Time.zone.now - operation.start_time.to_time
|
||||
if TIMEOUT < Time.now.utc - operation.start_time.to_time.utc
|
||||
return cluster.make_errored!("Cluster creation time exceeds timeout; #{TIMEOUT}")
|
||||
end
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@ module GoogleApi
|
|||
class Client < GoogleApi::Auth
|
||||
DEFAULT_MACHINE_TYPE = 'n1-standard-1'.freeze
|
||||
SCOPE = 'https://www.googleapis.com/auth/cloud-platform'.freeze
|
||||
LEAST_TOKEN_LIFE_TIME = 10.minutes
|
||||
|
||||
class << self
|
||||
def session_key_for_token
|
||||
|
@ -25,9 +26,7 @@ module GoogleApi
|
|||
return false unless expires_at
|
||||
|
||||
# Making sure that the token will have been still alive during the cluster creation.
|
||||
unless DateTime.strptime(expires_at, '%s').to_time > Time.now + 10.minutes
|
||||
return false
|
||||
end
|
||||
return false if token_life_time(expires_at) < LEAST_TOKEN_LIFE_TIME
|
||||
|
||||
true
|
||||
end
|
||||
|
@ -68,6 +67,12 @@ module GoogleApi
|
|||
m = self_link.match(%r{projects/.*/zones/.*/operations/(.*)})
|
||||
m[1] if m
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def token_life_time(expires_at)
|
||||
DateTime.strptime(expires_at, '%s').to_time.utc - Time.now.utc
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -7,7 +7,7 @@ describe GoogleApi::CloudPlatform::Client do
|
|||
describe '#validate_token' do
|
||||
subject { client.validate_token(expires_at) }
|
||||
|
||||
let(:expires_at) { 1.hour.since.strftime('%s') }
|
||||
let(:expires_at) { 1.hour.since.utc.strftime('%s') }
|
||||
|
||||
context 'when token is nil' do
|
||||
let(:token) { nil }
|
||||
|
@ -26,7 +26,7 @@ describe GoogleApi::CloudPlatform::Client do
|
|||
end
|
||||
|
||||
context 'when expires in 10 minutes' do
|
||||
let(:expires_at) { 5.minutes.since.strftime('%s') }
|
||||
let(:expires_at) { 5.minutes.since.utc.strftime('%s') }
|
||||
|
||||
it { is_expected.to be_falsy }
|
||||
end
|
||||
|
|
|
@ -24,7 +24,7 @@ describe WaitForClusterCreationWorker do
|
|||
|
||||
context 'when operation timeout' do
|
||||
before do
|
||||
allow(operation).to receive(:start_time).and_return(30.minutes.ago)
|
||||
allow(operation).to receive(:start_time).and_return(30.minutes.ago.utc)
|
||||
end
|
||||
|
||||
it 'sets an error message on cluster' do
|
||||
|
|
Loading…
Reference in New Issue