google-cloud-env 1.2.1 → 1.3.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: 2fe4fb0b390a089e7efb8cde45fb7f6df9e86b25ab81b84292a67fe481341137
4
+ data.tar.gz: 5efcbb333c4796812b99332cfc9919ae00f1e39104f092edc1392ba558d40caf
5
5
  SHA512:
6
- metadata.gz: 44a6feec89cef1114361b03118f64b3af679ac5ab2048a51407a9767ba4d9d7898cfaa1c15f4bc1c971cb015b9fe42f8d8bda780ef76881df6e374725552e67a
7
- data.tar.gz: 99dafff56a0b4e4ab6c82f0413c342f3bbecd3e13a8016efb87a88ba222de292976c2e8256c8d1bc672a4433a1ab500b6e9e856c48049296b42fe3ecc6f27cc8
6
+ metadata.gz: b74d450efba00970ed06f659dbedca0391f3128bb9ce6e0abb7d5580c18d55fd58a65ac81ffb6be5a10bc4b07ca41c9121f32df1ef87de455b96993d716150f0
7
+ data.tar.gz: 2dde707316115cda0096dbc949d8a6f8dae5f4110540a986bcb89aa1cbd258aebc496ca159b4a47f17fc2dda4277ac0d83c332a9519186451ec027f67633ca0d
@@ -1,5 +1,13 @@
1
1
  # Release History
2
2
 
3
+ ### 1.3.0 / 2019-10-23
4
+
5
+ Now requires Ruby 2.4 or later.
6
+
7
+ #### Features
8
+
9
+ * Recognize App Engine Standard and Knative
10
+
3
11
  ### 1.2.1 / 2019-08-23
4
12
 
5
13
  #### 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).
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.
@@ -114,8 +114,17 @@ module Google
114
114
  @retry_backoff_factor = retry_backoff_factor
115
115
  @retry_max_interval = retry_max_interval
116
116
  request_opts = { timeout: request_timeout, open_timeout: open_timeout }
117
- @connection = connection ||
118
- ::Faraday.new(url: METADATA_HOST, request: request_opts)
117
+ @connection = connection || ::Faraday.new(url: METADATA_HOST, request: request_opts)
118
+ end
119
+
120
+ ##
121
+ # Determine whether the application is running on a Knative-based
122
+ # hosting platform, such as Cloud Run or Cloud Functions.
123
+ #
124
+ # @return [Boolean]
125
+ #
126
+ def knative?
127
+ env["K_SERVICE"] ? true : false
119
128
  end
120
129
 
121
130
  ##
@@ -127,6 +136,26 @@ module Google
127
136
  env["GAE_INSTANCE"] ? true : false
128
137
  end
129
138
 
139
+ ##
140
+ # Determine whether the application is running on Google App Engine
141
+ # Flexible Environment.
142
+ #
143
+ # @return [Boolean]
144
+ #
145
+ def app_engine_flexible?
146
+ app_engine? && env["GAE_ENV"] != "standard"
147
+ end
148
+
149
+ ##
150
+ # Determine whether the application is running on Google App Engine
151
+ # Standard Environment.
152
+ #
153
+ # @return [Boolean]
154
+ #
155
+ def app_engine_standard?
156
+ app_engine? && env["GAE_ENV"] == "standard"
157
+ end
158
+
130
159
  ##
131
160
  # Determine whether the application is running on Google Kubernetes
132
161
  # Engine (GKE).
@@ -171,7 +200,7 @@ module Google
171
200
  # @return [Boolean]
172
201
  #
173
202
  def raw_compute_engine?
174
- !app_engine? && !cloud_shell? && metadata? && !kubernetes_engine?
203
+ !knative? && !app_engine? && !cloud_shell? && metadata? && !kubernetes_engine?
175
204
  end
176
205
 
177
206
  ##
@@ -181,8 +210,7 @@ module Google
181
210
  # @return [String,nil]
182
211
  #
183
212
  def project_id
184
- env["GCLOUD_PROJECT"] || env["DEVSHELL_PROJECT_ID"] ||
185
- lookup_metadata("project", "project-id")
213
+ env["GCLOUD_PROJECT"] || env["DEVSHELL_PROJECT_ID"] || lookup_metadata("project", "project-id")
186
214
  end
187
215
 
188
216
  ##
@@ -284,6 +312,27 @@ module Google
284
312
  lookup_metadata "instance", "attributes/#{key}"
285
313
  end
286
314
 
315
+ ##
316
+ # Returns the name of the running Knative service, or `nil` if the
317
+ # current code is not running on Knative.
318
+ #
319
+ # @return [String,nil]
320
+ #
321
+ def knative_service_id
322
+ env["K_SERVICE"]
323
+ end
324
+ alias knative_service_name knative_service_id
325
+
326
+ ##
327
+ # Returns the revision of the running Knative service, or `nil` if the
328
+ # current code is not running on Knative.
329
+ #
330
+ # @return [String,nil]
331
+ #
332
+ def knative_service_revision
333
+ env["K_REVISION"]
334
+ end
335
+
287
336
  ##
288
337
  # Returns the name of the running App Engine service, or `nil` if the
289
338
  # current code is not running in App Engine.
@@ -293,6 +342,7 @@ module Google
293
342
  def app_engine_service_id
294
343
  env["GAE_SERVICE"]
295
344
  end
345
+ alias app_engine_service_name app_engine_service_id
296
346
 
297
347
  ##
298
348
  # Returns the version of the running App Engine service, or `nil` if the
@@ -340,8 +390,7 @@ module Google
340
390
  # below is set in some older versions of GKE, and the file below is
341
391
  # present in Kubernetes as of version 1.9, but it is possible that
342
392
  # alternatives will need to be found in the future.
343
- env["GKE_NAMESPACE_ID"] ||
344
- ::IO.read("/var/run/secrets/kubernetes.io/serviceaccount/namespace")
393
+ env["GKE_NAMESPACE_ID"] || ::IO.read("/var/run/secrets/kubernetes.io/serviceaccount/namespace")
345
394
  rescue SystemCallError
346
395
  nil
347
396
  end
@@ -415,9 +464,7 @@ module Google
415
464
  if retries_remaining >= 0
416
465
  sleep retry_interval
417
466
  retry_interval *= @retry_backoff_factor
418
- if retry_interval > @retry_max_interval
419
- retry_interval = @retry_max_interval
420
- end
467
+ retry_interval = @retry_max_interval if retry_interval > @retry_max_interval
421
468
  retry
422
469
  end
423
470
  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.3.0".freeze
20
20
  end
21
21
  end
22
22
  end
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: 1.2.1
4
+ version: 1.3.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: 2019-10-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -25,63 +25,63 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0.11'
27
27
  - !ruby/object:Gem::Dependency
28
- name: minitest
28
+ name: autotest-suffix
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '5.10'
33
+ version: '1.1'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '5.10'
40
+ version: '1.1'
41
41
  - !ruby/object:Gem::Dependency
42
- name: minitest-autotest
42
+ name: google-style
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '1.0'
47
+ version: 1.24.0
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '1.0'
54
+ version: 1.24.0
55
55
  - !ruby/object:Gem::Dependency
56
- name: minitest-focus
56
+ name: minitest
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '1.1'
61
+ version: '5.10'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '1.1'
68
+ version: '5.10'
69
69
  - !ruby/object:Gem::Dependency
70
- name: minitest-rg
70
+ name: minitest-autotest
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '5.2'
75
+ version: '1.0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '5.2'
82
+ version: '1.0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: autotest-suffix
84
+ name: minitest-focus
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
@@ -95,33 +95,33 @@ dependencies:
95
95
  - !ruby/object:Gem::Version
96
96
  version: '1.1'
97
97
  - !ruby/object:Gem::Dependency
98
- name: redcarpet
98
+ name: minitest-rg
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '3.0'
103
+ version: '5.2'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '3.0'
110
+ version: '5.2'
111
111
  - !ruby/object:Gem::Dependency
112
- name: rubocop
112
+ name: redcarpet
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: 0.64.0
117
+ version: '3.0'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: 0.64.0
124
+ version: '3.0'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: simplecov
127
127
  requirement: !ruby/object:Gem::Requirement
@@ -195,14 +195,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
195
195
  requirements:
196
196
  - - ">="
197
197
  - !ruby/object:Gem::Version
198
- version: 2.0.0
198
+ version: '2.4'
199
199
  required_rubygems_version: !ruby/object:Gem::Requirement
200
200
  requirements:
201
201
  - - ">="
202
202
  - !ruby/object:Gem::Version
203
203
  version: '0'
204
204
  requirements: []
205
- rubygems_version: 3.0.4
205
+ rubygems_version: 3.0.6
206
206
  signing_key:
207
207
  specification_version: 4
208
208
  summary: Google Cloud Platform hosting environment information.