google-cloud-env 2.0.1 → 2.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +12 -0
- data/lib/google/cloud/env/compute_metadata.rb +16 -8
- data/lib/google/cloud/env/version.rb +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 874603cbcc635840a5fa275335b574f242b5abe3100217d561189cd8c30ab12d
|
4
|
+
data.tar.gz: f8756d74ac146f9a3148d5149e29fd1b718e1ab5be177aecd81cbac3507212d9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6ad688117a2b8cc86596be5d2e0ec5f592f5734927756112a0cd82116d52cc0be6c24b8e8594d9d3ea010977e88275c5916cea676b2d50016973b58a7fd52649
|
7
|
+
data.tar.gz: c347078193dd1cc9cab88f1222327f57d928cf246fad899dca010ad4481f4de7d15a3df924df1dcb42bb7860139d98952b222b53f91cde0c1985319f7d18b832
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,17 @@
|
|
1
1
|
# Release History
|
2
2
|
|
3
|
+
### 2.1.1 (2024-02-01)
|
4
|
+
|
5
|
+
#### Bug Fixes
|
6
|
+
|
7
|
+
* Setting non-empty overrides simulates metadata server existence setting ([#64](https://github.com/googleapis/ruby-cloud-env/issues/64))
|
8
|
+
|
9
|
+
### 2.1.0 (2023-12-12)
|
10
|
+
|
11
|
+
#### Features
|
12
|
+
|
13
|
+
* Provide retrieval_monotonic_time on compute metadata response objects ([#62](https://github.com/googleapis/ruby-cloud-env/issues/62))
|
14
|
+
|
3
15
|
### 2.0.1 (2023-12-01)
|
4
16
|
|
5
17
|
#### Bug Fixes
|
@@ -89,7 +89,8 @@ module Google
|
|
89
89
|
# {ComputeMetadata#lookup_response}.
|
90
90
|
#
|
91
91
|
# This object duck-types the `status`, `body`, and `headers` fields of
|
92
|
-
# `Faraday::Response`.
|
92
|
+
# `Faraday::Response`. It also includes the CLOCK_MONOTONIC time when
|
93
|
+
# the data was retrieved.
|
93
94
|
#
|
94
95
|
class Response
|
95
96
|
##
|
@@ -105,6 +106,7 @@ module Google
|
|
105
106
|
@status = status
|
106
107
|
@body = body
|
107
108
|
@headers = headers
|
109
|
+
@retrieval_monotonic_time = Process.clock_gettime Process::CLOCK_MONOTONIC
|
108
110
|
end
|
109
111
|
|
110
112
|
##
|
@@ -125,6 +127,11 @@ module Google
|
|
125
127
|
#
|
126
128
|
attr_reader :headers
|
127
129
|
|
130
|
+
# The CLOCK_MONOTONIC time at which this response was retrieved.
|
131
|
+
# @return [Numeric]
|
132
|
+
#
|
133
|
+
attr_reader :retrieval_monotonic_time
|
134
|
+
|
128
135
|
##
|
129
136
|
# Returns true if the metadata-flavor is correct for Google Cloud
|
130
137
|
# @return [boolean]
|
@@ -382,12 +389,12 @@ module Google
|
|
382
389
|
retry_count: :default,
|
383
390
|
retry_timeout: :default
|
384
391
|
query = canonicalize_query query
|
385
|
-
raise MetadataServerNotResponding unless gce_check
|
386
392
|
if @overrides
|
387
393
|
@mutex.synchronize do
|
388
394
|
return lookup_override path, query if @overrides
|
389
395
|
end
|
390
396
|
end
|
397
|
+
raise MetadataServerNotResponding unless gce_check
|
391
398
|
retry_count = self.retry_count if retry_count == :default
|
392
399
|
retry_count += 1 if retry_count
|
393
400
|
retry_timeout = self.retry_timeout if retry_timeout == :default
|
@@ -752,9 +759,9 @@ module Google
|
|
752
759
|
end
|
753
760
|
response = Response.new http_response.status, http_response.body, http_response.headers
|
754
761
|
if path.nil?
|
755
|
-
post_update_existence(response.status == 200 && response.google_flavor
|
762
|
+
post_update_existence(response.status == 200 && response.google_flavor?, response.retrieval_monotonic_time)
|
756
763
|
elsif response.google_flavor?
|
757
|
-
post_update_existence true
|
764
|
+
post_update_existence true, response.retrieval_monotonic_time
|
758
765
|
end
|
759
766
|
lifetime = determine_data_lifetime path, response.body.strip
|
760
767
|
LazyValue.expiring_value lifetime, response
|
@@ -767,14 +774,14 @@ module Google
|
|
767
774
|
# @private
|
768
775
|
# Update existence based on a received result
|
769
776
|
#
|
770
|
-
def post_update_existence success
|
777
|
+
def post_update_existence success, current_time = nil
|
771
778
|
return if @existence == :confirmed
|
772
779
|
@mutex.synchronize do
|
773
780
|
if success
|
774
781
|
@existence = :confirmed
|
775
|
-
elsif @existence != :confirmed
|
776
|
-
|
777
|
-
@existence = :no
|
782
|
+
elsif @existence != :confirmed
|
783
|
+
current_time ||= Process.clock_gettime Process::CLOCK_MONOTONIC
|
784
|
+
@existence = :no if current_time > @startup_time + warmup_time
|
778
785
|
end
|
779
786
|
end
|
780
787
|
end
|
@@ -838,6 +845,7 @@ module Google
|
|
838
845
|
@existence = :no
|
839
846
|
raise MetadataServerNotResponding
|
840
847
|
end
|
848
|
+
@existence = :confirmed
|
841
849
|
result = @overrides.lookup path, query: query
|
842
850
|
result ||= Response.new 404, "Not found", FLAVOR_HEADER
|
843
851
|
result
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: google-cloud-env
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Azuma
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-02-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -59,10 +59,10 @@ homepage: https://github.com/googleapis/ruby-cloud-env
|
|
59
59
|
licenses:
|
60
60
|
- Apache-2.0
|
61
61
|
metadata:
|
62
|
-
changelog_uri: https://rubydoc.info/gems/google-cloud-env/2.
|
62
|
+
changelog_uri: https://rubydoc.info/gems/google-cloud-env/2.1.1/CHANGELOG.md
|
63
63
|
source_code_uri: https://github.com/googleapis/ruby-cloud-env
|
64
64
|
bug_tracker_uri: https://github.com/googleapis/ruby-cloud-env/issues
|
65
|
-
documentation_uri: https://rubydoc.info/gems/google-cloud-env/2.
|
65
|
+
documentation_uri: https://rubydoc.info/gems/google-cloud-env/2.1.1
|
66
66
|
post_install_message:
|
67
67
|
rdoc_options: []
|
68
68
|
require_paths:
|
@@ -78,7 +78,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
78
78
|
- !ruby/object:Gem::Version
|
79
79
|
version: '0'
|
80
80
|
requirements: []
|
81
|
-
rubygems_version: 3.
|
81
|
+
rubygems_version: 3.5.3
|
82
82
|
signing_key:
|
83
83
|
specification_version: 4
|
84
84
|
summary: Google Cloud Platform hosting environment information.
|