summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShinya Maeda <shinya@gitlab.com>2017-10-06 18:23:53 +0900
committerShinya Maeda <shinya@gitlab.com>2017-10-06 18:23:53 +0900
commit638c616296b37b528c1b56f63a818301a502f7aa (patch)
treef58194566e84063584983a0e8f48d39f3e90bd50
parent354e2ef08df3c704ca325415116587440260f67b (diff)
downloadgitlab-ce-638c616296b37b528c1b56f63a818301a502f7aa.tar.gz
Use utc for time comparision
-rw-r--r--app/workers/wait_for_cluster_creation_worker.rb2
-rw-r--r--lib/google_api/cloud_platform/client.rb11
-rw-r--r--spec/lib/google_api/cloud_platform/client_spec.rb4
-rw-r--r--spec/workers/wait_for_cluster_creation_worker_spec.rb2
4 files changed, 12 insertions, 7 deletions
diff --git a/app/workers/wait_for_cluster_creation_worker.rb b/app/workers/wait_for_cluster_creation_worker.rb
index eab340070e1..5aa3bbdaa9d 100644
--- a/app/workers/wait_for_cluster_creation_worker.rb
+++ b/app/workers/wait_for_cluster_creation_worker.rb
@@ -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
diff --git a/lib/google_api/cloud_platform/client.rb b/lib/google_api/cloud_platform/client.rb
index 926b7402cd5..5ec1fa37546 100644
--- a/lib/google_api/cloud_platform/client.rb
+++ b/lib/google_api/cloud_platform/client.rb
@@ -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
diff --git a/spec/lib/google_api/cloud_platform/client_spec.rb b/spec/lib/google_api/cloud_platform/client_spec.rb
index 6b454a593a0..6538dc21d6f 100644
--- a/spec/lib/google_api/cloud_platform/client_spec.rb
+++ b/spec/lib/google_api/cloud_platform/client_spec.rb
@@ -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
diff --git a/spec/workers/wait_for_cluster_creation_worker_spec.rb b/spec/workers/wait_for_cluster_creation_worker_spec.rb
index 6d82981287f..dcd4a3b9aec 100644
--- a/spec/workers/wait_for_cluster_creation_worker_spec.rb
+++ b/spec/workers/wait_for_cluster_creation_worker_spec.rb
@@ -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