google-cloud-env 1.2.1 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a5882fde9edf76ee2c9f1e0d0f778009a9e7e5ddb60b770cc2e33c80c527debc
4
- data.tar.gz: e86f1d130b57000bdd80b34b0c04dd2849af88827e78ad10b4c884914c221389
3
+ metadata.gz: 98da1b266783f22f91d9f220cb311a35d3955d7f638e67aaa77d60e3ace6e58e
4
+ data.tar.gz: 39386abb55069149c081132808a85fc14a2b23285e3371b7632bbb1e7337815f
5
5
  SHA512:
6
- metadata.gz: 44a6feec89cef1114361b03118f64b3af679ac5ab2048a51407a9767ba4d9d7898cfaa1c15f4bc1c971cb015b9fe42f8d8bda780ef76881df6e374725552e67a
7
- data.tar.gz: 99dafff56a0b4e4ab6c82f0413c342f3bbecd3e13a8016efb87a88ba222de292976c2e8256c8d1bc672a4433a1ab500b6e9e856c48049296b42fe3ecc6f27cc8
6
+ metadata.gz: 40ed7fab707ea30a4fa993d3c0560ef05ee9362c666191a5fe3f47a0edbac5e770fec6b5941be1c33d92b068e31fb1a094a3d34009b17b186ff60aaaf3707641
7
+ data.tar.gz: 7a4165816c410b2d8f0bf044b4d8c65f9bb4960dc8a976a97621ac7bcb424795b58863a2a8668b81a87b4081c82adf74e51e8c5705ef7f5c0094ced2de411028
@@ -1,5 +1,37 @@
1
1
  # Release History
2
2
 
3
+ ### 1.4.0 / 2020-10-12
4
+
5
+ #### Features
6
+
7
+ * Honor GCE_METADATA_HOST environment variable
8
+
9
+ ### 1.3.3 / 2020-07-10
10
+
11
+ #### Bug Fixes
12
+
13
+ * Project ID logic honors GOOGLE_CLOUD_PROJECT
14
+
15
+ ### 1.3.2 / 2020-05-28
16
+
17
+ #### Documentation
18
+
19
+ * Fix a few broken links
20
+
21
+ ### 1.3.1 / 2020-03-02
22
+
23
+ #### Bug Fixes
24
+
25
+ * support faraday 1.x
26
+
27
+ ### 1.3.0 / 2019-10-23
28
+
29
+ Now requires Ruby 2.4 or later.
30
+
31
+ #### Features
32
+
33
+ * Recognize App Engine Standard and Knative
34
+
3
35
  ### 1.2.1 / 2019-08-23
4
36
 
5
37
  #### Bug Fixes
@@ -24,7 +24,7 @@ be able to accept your pull requests.
24
24
  In order to use the google-cloud-env console and run the project's tests,
25
25
  there is a small amount of setup:
26
26
 
27
- 1. Install Ruby. google-cloud-env requires Ruby 2.3+. You may choose to
27
+ 1. Install Ruby. google-cloud-env requires Ruby 2.4+. You may choose to
28
28
  manage your Ruby and gem installations with [RVM](https://rvm.io/),
29
29
  [rbenv](https://github.com/rbenv/rbenv), or
30
30
  [chruby](https://github.com/postmodern/chruby).
@@ -48,19 +48,6 @@ there is a small amount of setup:
48
48
  $ bundle exec rake bundleupdate
49
49
  ```
50
50
 
51
- ## Console
52
-
53
- In order to run code interactively, you can automatically load
54
- google-cloud-env and its dependencies in IRB. This requires that your
55
- developer environment has already been configured by following the steps
56
- described in the {file:AUTHENTICATION.md Authentication Guide}. An IRB console
57
- can be created with:
58
-
59
- ```sh
60
- $ cd google-cloud-env/
61
- $ bundle exec rake console
62
- ```
63
-
64
51
  ## hosting environment Tests
65
52
 
66
53
  Tests are very important part of google-cloud-env. All contributions
data/README.md CHANGED
@@ -7,11 +7,11 @@ apps running on Google Cloud Platform.
7
7
 
8
8
  ## Supported Ruby Versions
9
9
 
10
- This library is supported on Ruby 2.3+.
10
+ This library is supported on Ruby 2.4+.
11
11
 
12
12
  Google provides official support for Ruby versions that are actively supported
13
13
  by Ruby Core—that is, Ruby versions that are either in normal maintenance or in
14
- security maintenance, and not end of life. Currently, this means Ruby 2.3 and
14
+ security maintenance, and not end of life. Currently, this means Ruby 2.4 and
15
15
  later. Older versions of Ruby _may_ still work, but are unsupported and not
16
16
  recommended. See https://www.ruby-lang.org/en/downloads/branches/ for details
17
17
  about the Ruby support schedule.
@@ -82,6 +82,9 @@ module Google
82
82
  # well as mocking for testing.
83
83
  #
84
84
  # @param [Hash] env Mock environment variables.
85
+ # @param [String] host The hostname or IP address of the metadata server.
86
+ # Optional. If not specified, uses the `GCE_METADATA_HOST`,
87
+ # environment variable or falls back to `169.254.167.254`.
85
88
  # @param [Hash,false] metadata_cache The metadata cache. You may pass
86
89
  # a prepopuated cache, an empty cache (the default) or `false` to
87
90
  # disable the cache completely.
@@ -102,7 +105,7 @@ module Google
102
105
  # If specified, overrides the `request_timeout` and `open_timeout`
103
106
  # settings.
104
107
  #
105
- def initialize env: nil, connection: nil, metadata_cache: nil,
108
+ def initialize env: nil, host: nil, connection: nil, metadata_cache: nil,
106
109
  open_timeout: 0.1, request_timeout: 1.0,
107
110
  retry_count: 2, retry_interval: 0.1,
108
111
  retry_backoff_factor: 1.5, retry_max_interval: 0.5
@@ -114,8 +117,19 @@ module Google
114
117
  @retry_backoff_factor = retry_backoff_factor
115
118
  @retry_max_interval = retry_max_interval
116
119
  request_opts = { timeout: request_timeout, open_timeout: open_timeout }
117
- @connection = connection ||
118
- ::Faraday.new(url: METADATA_HOST, request: request_opts)
120
+ host ||= @env["GCE_METADATA_HOST"] || METADATA_HOST
121
+ host = "http://#{host}" unless host.start_with? "http://"
122
+ @connection = connection || ::Faraday.new(url: host, request: request_opts)
123
+ end
124
+
125
+ ##
126
+ # Determine whether the application is running on a Knative-based
127
+ # hosting platform, such as Cloud Run or Cloud Functions.
128
+ #
129
+ # @return [Boolean]
130
+ #
131
+ def knative?
132
+ env["K_SERVICE"] ? true : false
119
133
  end
120
134
 
121
135
  ##
@@ -127,6 +141,26 @@ module Google
127
141
  env["GAE_INSTANCE"] ? true : false
128
142
  end
129
143
 
144
+ ##
145
+ # Determine whether the application is running on Google App Engine
146
+ # Flexible Environment.
147
+ #
148
+ # @return [Boolean]
149
+ #
150
+ def app_engine_flexible?
151
+ app_engine? && env["GAE_ENV"] != "standard"
152
+ end
153
+
154
+ ##
155
+ # Determine whether the application is running on Google App Engine
156
+ # Standard Environment.
157
+ #
158
+ # @return [Boolean]
159
+ #
160
+ def app_engine_standard?
161
+ app_engine? && env["GAE_ENV"] == "standard"
162
+ end
163
+
130
164
  ##
131
165
  # Determine whether the application is running on Google Kubernetes
132
166
  # Engine (GKE).
@@ -171,7 +205,7 @@ module Google
171
205
  # @return [Boolean]
172
206
  #
173
207
  def raw_compute_engine?
174
- !app_engine? && !cloud_shell? && metadata? && !kubernetes_engine?
208
+ !knative? && !app_engine? && !cloud_shell? && metadata? && !kubernetes_engine?
175
209
  end
176
210
 
177
211
  ##
@@ -181,7 +215,9 @@ module Google
181
215
  # @return [String,nil]
182
216
  #
183
217
  def project_id
184
- env["GCLOUD_PROJECT"] || env["DEVSHELL_PROJECT_ID"] ||
218
+ env["GOOGLE_CLOUD_PROJECT"] ||
219
+ env["GCLOUD_PROJECT"] ||
220
+ env["DEVSHELL_PROJECT_ID"] ||
185
221
  lookup_metadata("project", "project-id")
186
222
  end
187
223
 
@@ -284,6 +320,27 @@ module Google
284
320
  lookup_metadata "instance", "attributes/#{key}"
285
321
  end
286
322
 
323
+ ##
324
+ # Returns the name of the running Knative service, or `nil` if the
325
+ # current code is not running on Knative.
326
+ #
327
+ # @return [String,nil]
328
+ #
329
+ def knative_service_id
330
+ env["K_SERVICE"]
331
+ end
332
+ alias knative_service_name knative_service_id
333
+
334
+ ##
335
+ # Returns the revision of the running Knative service, or `nil` if the
336
+ # current code is not running on Knative.
337
+ #
338
+ # @return [String,nil]
339
+ #
340
+ def knative_service_revision
341
+ env["K_REVISION"]
342
+ end
343
+
287
344
  ##
288
345
  # Returns the name of the running App Engine service, or `nil` if the
289
346
  # current code is not running in App Engine.
@@ -293,6 +350,7 @@ module Google
293
350
  def app_engine_service_id
294
351
  env["GAE_SERVICE"]
295
352
  end
353
+ alias app_engine_service_name app_engine_service_id
296
354
 
297
355
  ##
298
356
  # Returns the version of the running App Engine service, or `nil` if the
@@ -340,8 +398,7 @@ module Google
340
398
  # below is set in some older versions of GKE, and the file below is
341
399
  # present in Kubernetes as of version 1.9, but it is possible that
342
400
  # alternatives will need to be found in the future.
343
- env["GKE_NAMESPACE_ID"] ||
344
- ::IO.read("/var/run/secrets/kubernetes.io/serviceaccount/namespace")
401
+ env["GKE_NAMESPACE_ID"] || ::IO.read("/var/run/secrets/kubernetes.io/serviceaccount/namespace")
345
402
  rescue SystemCallError
346
403
  nil
347
404
  end
@@ -415,9 +472,7 @@ module Google
415
472
  if retries_remaining >= 0
416
473
  sleep retry_interval
417
474
  retry_interval *= @retry_backoff_factor
418
- if retry_interval > @retry_max_interval
419
- retry_interval = @retry_max_interval
420
- end
475
+ retry_interval = @retry_max_interval if retry_interval > @retry_max_interval
421
476
  retry
422
477
  end
423
478
  error_result
@@ -16,7 +16,7 @@
16
16
  module Google
17
17
  module Cloud
18
18
  class Env
19
- VERSION = "1.2.1".freeze
19
+ VERSION = "1.4.0".freeze
20
20
  end
21
21
  end
22
22
  end
metadata CHANGED
@@ -1,87 +1,93 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-cloud-env
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Azuma
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-08-23 00:00:00.000000000 Z
11
+ date: 2020-10-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 0.17.3
20
+ - - "<"
18
21
  - !ruby/object:Gem::Version
19
- version: '0.11'
22
+ version: '2.0'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
25
28
  - !ruby/object:Gem::Version
26
- version: '0.11'
29
+ version: 0.17.3
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '2.0'
27
33
  - !ruby/object:Gem::Dependency
28
- name: minitest
34
+ name: autotest-suffix
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
31
37
  - - "~>"
32
38
  - !ruby/object:Gem::Version
33
- version: '5.10'
39
+ version: '1.1'
34
40
  type: :development
35
41
  prerelease: false
36
42
  version_requirements: !ruby/object:Gem::Requirement
37
43
  requirements:
38
44
  - - "~>"
39
45
  - !ruby/object:Gem::Version
40
- version: '5.10'
46
+ version: '1.1'
41
47
  - !ruby/object:Gem::Dependency
42
- name: minitest-autotest
48
+ name: google-style
43
49
  requirement: !ruby/object:Gem::Requirement
44
50
  requirements:
45
51
  - - "~>"
46
52
  - !ruby/object:Gem::Version
47
- version: '1.0'
53
+ version: 1.24.0
48
54
  type: :development
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
51
57
  requirements:
52
58
  - - "~>"
53
59
  - !ruby/object:Gem::Version
54
- version: '1.0'
60
+ version: 1.24.0
55
61
  - !ruby/object:Gem::Dependency
56
- name: minitest-focus
62
+ name: minitest
57
63
  requirement: !ruby/object:Gem::Requirement
58
64
  requirements:
59
65
  - - "~>"
60
66
  - !ruby/object:Gem::Version
61
- version: '1.1'
67
+ version: '5.10'
62
68
  type: :development
63
69
  prerelease: false
64
70
  version_requirements: !ruby/object:Gem::Requirement
65
71
  requirements:
66
72
  - - "~>"
67
73
  - !ruby/object:Gem::Version
68
- version: '1.1'
74
+ version: '5.10'
69
75
  - !ruby/object:Gem::Dependency
70
- name: minitest-rg
76
+ name: minitest-autotest
71
77
  requirement: !ruby/object:Gem::Requirement
72
78
  requirements:
73
79
  - - "~>"
74
80
  - !ruby/object:Gem::Version
75
- version: '5.2'
81
+ version: '1.0'
76
82
  type: :development
77
83
  prerelease: false
78
84
  version_requirements: !ruby/object:Gem::Requirement
79
85
  requirements:
80
86
  - - "~>"
81
87
  - !ruby/object:Gem::Version
82
- version: '5.2'
88
+ version: '1.0'
83
89
  - !ruby/object:Gem::Dependency
84
- name: autotest-suffix
90
+ name: minitest-focus
85
91
  requirement: !ruby/object:Gem::Requirement
86
92
  requirements:
87
93
  - - "~>"
@@ -95,33 +101,33 @@ dependencies:
95
101
  - !ruby/object:Gem::Version
96
102
  version: '1.1'
97
103
  - !ruby/object:Gem::Dependency
98
- name: redcarpet
104
+ name: minitest-rg
99
105
  requirement: !ruby/object:Gem::Requirement
100
106
  requirements:
101
107
  - - "~>"
102
108
  - !ruby/object:Gem::Version
103
- version: '3.0'
109
+ version: '5.2'
104
110
  type: :development
105
111
  prerelease: false
106
112
  version_requirements: !ruby/object:Gem::Requirement
107
113
  requirements:
108
114
  - - "~>"
109
115
  - !ruby/object:Gem::Version
110
- version: '3.0'
116
+ version: '5.2'
111
117
  - !ruby/object:Gem::Dependency
112
- name: rubocop
118
+ name: redcarpet
113
119
  requirement: !ruby/object:Gem::Requirement
114
120
  requirements:
115
121
  - - "~>"
116
122
  - !ruby/object:Gem::Version
117
- version: 0.64.0
123
+ version: '3.0'
118
124
  type: :development
119
125
  prerelease: false
120
126
  version_requirements: !ruby/object:Gem::Requirement
121
127
  requirements:
122
128
  - - "~>"
123
129
  - !ruby/object:Gem::Version
124
- version: 0.64.0
130
+ version: '3.0'
125
131
  - !ruby/object:Gem::Dependency
126
132
  name: simplecov
127
133
  requirement: !ruby/object:Gem::Requirement
@@ -195,14 +201,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
195
201
  requirements:
196
202
  - - ">="
197
203
  - !ruby/object:Gem::Version
198
- version: 2.0.0
204
+ version: '2.4'
199
205
  required_rubygems_version: !ruby/object:Gem::Requirement
200
206
  requirements:
201
207
  - - ">="
202
208
  - !ruby/object:Gem::Version
203
209
  version: '0'
204
210
  requirements: []
205
- rubygems_version: 3.0.4
211
+ rubygems_version: 3.1.4
206
212
  signing_key:
207
213
  specification_version: 4
208
214
  summary: Google Cloud Platform hosting environment information.