Commit 638c6162 authored by Shinya Maeda's avatar Shinya Maeda

Use utc for time comparision

parent 354e2ef0
......@@ -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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment