google-cloud-logging 1.4.0 → 1.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +19 -19
- data/lib/google-cloud-logging.rb +41 -0
- data/lib/google/cloud/logging.rb +65 -16
- data/lib/google/cloud/logging/async_writer.rb +11 -11
- data/lib/google/cloud/logging/credentials.rb +6 -6
- data/lib/google/cloud/logging/entry/http_request.rb +1 -2
- data/lib/google/cloud/logging/entry/list.rb +1 -1
- data/lib/google/cloud/logging/entry/operation.rb +1 -2
- data/lib/google/cloud/logging/entry/source_location.rb +1 -2
- data/lib/google/cloud/logging/log/list.rb +1 -1
- data/lib/google/cloud/logging/logger.rb +12 -11
- data/lib/google/cloud/logging/metric.rb +2 -2
- data/lib/google/cloud/logging/metric/list.rb +1 -1
- data/lib/google/cloud/logging/middleware.rb +23 -16
- data/lib/google/cloud/logging/project.rb +58 -67
- data/lib/google/cloud/logging/rails.rb +16 -13
- data/lib/google/cloud/logging/resource_descriptor/list.rb +3 -2
- data/lib/google/cloud/logging/service.rb +22 -22
- data/lib/google/cloud/logging/sink.rb +63 -49
- data/lib/google/cloud/logging/sink/list.rb +1 -1
- data/lib/google/cloud/logging/version.rb +1 -1
- metadata +11 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f630302c8714555f32d66a9a19a5da340c6bbd840b1a1ed9c7da1798b42254df
|
4
|
+
data.tar.gz: d0fb2056868a23c282082339be24ddd1aeca4c4ff9cc4659b1fd3091b5364596
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 484774d516102279b6197436dc1daee472eabd055d24f0d9e4a7460144aec2255cce2ad33bfa176b76713f5e252e72aa05014da53952587c15de9fc7e01688c0
|
7
|
+
data.tar.gz: 051e5a2e070aa2a2fbef148971fbf1d5e02d05c211720442682775591254803548a31745b359aee8a48be2eb4bd5a2d86671b6dc9ed150070fa550958e7181f3
|
data/README.md
CHANGED
@@ -28,7 +28,7 @@ gem "google-cloud-logging"
|
|
28
28
|
$ bundle install
|
29
29
|
```
|
30
30
|
|
31
|
-
Alternatively, check out the [`stackdriver`](../stackdriver) gem that includes
|
31
|
+
Alternatively, check out the [`stackdriver`](../stackdriver) gem that includes
|
32
32
|
the `google-cloud-logging` gem.
|
33
33
|
|
34
34
|
## Logging using client library
|
@@ -61,13 +61,13 @@ logging.write_entries entry
|
|
61
61
|
|
62
62
|
## Using Stackdriver Logging in frameworks
|
63
63
|
|
64
|
-
The `google-cloud-logging` library provides framework integration for popular
|
65
|
-
Rack-based frameworks, such as Ruby on Rails and Sinatra, which sets the default
|
64
|
+
The `google-cloud-logging` library provides framework integration for popular
|
65
|
+
Rack-based frameworks, such as Ruby on Rails and Sinatra, which sets the default
|
66
66
|
Rack logger to an instance of the Stackdriver Logging logger.
|
67
67
|
|
68
68
|
### With Ruby on Rails
|
69
69
|
|
70
|
-
You can load the Railtie that comes with the library into your Ruby
|
70
|
+
You can load the Railtie that comes with the library into your Ruby
|
71
71
|
on Rails application by explicitly requiring it during the application startup:
|
72
72
|
|
73
73
|
```ruby
|
@@ -75,7 +75,7 @@ on Rails application by explicitly requiring it during the application startup:
|
|
75
75
|
require "google/cloud/logging/rails"
|
76
76
|
```
|
77
77
|
|
78
|
-
If you're using the `stackdriver` gem, it automatically loads the Railtie into
|
78
|
+
If you're using the `stackdriver` gem, it automatically loads the Railtie into
|
79
79
|
your application when it starts.
|
80
80
|
|
81
81
|
You'll be able to use Stackdriver logger through the standard Rails logger:
|
@@ -88,7 +88,7 @@ logger.warn "Hola Mundo"
|
|
88
88
|
|
89
89
|
### With other Rack-based frameworks
|
90
90
|
|
91
|
-
Other Rack-based applications can use the Rack Middleware to replace the Rack
|
91
|
+
Other Rack-based applications can use the Rack Middleware to replace the Rack
|
92
92
|
logger with the Stackdriver Logging logger:
|
93
93
|
|
94
94
|
```ruby
|
@@ -96,8 +96,8 @@ require "google/cloud/logging"
|
|
96
96
|
use Google::Cloud::Logging::Middleware
|
97
97
|
```
|
98
98
|
|
99
|
-
Once the Rack logger is set, some Rack-based frameworks, such as Ruby on Rails
|
100
|
-
and Sinatra, automatically initialize the default application logger to use the
|
99
|
+
Once the Rack logger is set, some Rack-based frameworks, such as Ruby on Rails
|
100
|
+
and Sinatra, automatically initialize the default application logger to use the
|
101
101
|
Rack logger:
|
102
102
|
|
103
103
|
```ruby
|
@@ -106,26 +106,26 @@ logger.warn "Hola Mundo"
|
|
106
106
|
logger.error "Bonjour Monde"
|
107
107
|
```
|
108
108
|
|
109
|
-
For other frameworks, consult the documentations on how to utilize the Rack
|
109
|
+
For other frameworks, consult the documentations on how to utilize the Rack
|
110
110
|
logger.
|
111
111
|
|
112
112
|
### Configuring the framework integration
|
113
113
|
|
114
|
-
You can customize the behavior of the Stackdriver Logging framework integration
|
115
|
-
for Ruby. See the [configuration guide](../stackdriver/configuration.md) for a
|
114
|
+
You can customize the behavior of the Stackdriver Logging framework integration
|
115
|
+
for Ruby. See the [configuration guide](../stackdriver/configuration.md) for a
|
116
116
|
list of possible configuration options.
|
117
117
|
|
118
118
|
## Authentication
|
119
119
|
|
120
|
-
This library uses Service Account credentials to connect to Google Cloud
|
121
|
-
services. When running on Compute Engine the credentials will be discovered
|
122
|
-
automatically. When running on other environments the Service Account
|
120
|
+
This library uses Service Account credentials to connect to Google Cloud
|
121
|
+
services. When running on Compute Engine the credentials will be discovered
|
122
|
+
automatically. When running on other environments the Service Account
|
123
123
|
credentials can be specified by providing in several ways.
|
124
124
|
|
125
|
-
If you're using Ruby on Rails and the library's Rails integration feature, you
|
126
|
-
can provide the authentication parameters through the Rails configuration
|
125
|
+
If you're using Ruby on Rails and the library's Rails integration feature, you
|
126
|
+
can provide the authentication parameters through the Rails configuration
|
127
127
|
interface:
|
128
|
-
|
128
|
+
|
129
129
|
```ruby
|
130
130
|
# Add this to config/environments/*.rb
|
131
131
|
Rails.application.configure do |config|
|
@@ -137,7 +137,7 @@ Rails.application.configure do |config|
|
|
137
137
|
config.google_cloud.logging.keyfile = "/path/to/key.json"
|
138
138
|
end
|
139
139
|
```
|
140
|
-
Other Rack-based applications that are loading the Rack Middleware directly can
|
140
|
+
Other Rack-based applications that are loading the Rack Middleware directly can
|
141
141
|
use the configration interface:
|
142
142
|
|
143
143
|
```ruby
|
@@ -152,7 +152,7 @@ Google::Cloud.configure do |config|
|
|
152
152
|
end
|
153
153
|
```
|
154
154
|
|
155
|
-
See the [Authentication
|
155
|
+
See the [Authentication
|
156
156
|
Guide](https://googlecloudplatform.github.io/google-cloud-ruby/#/docs/google-cloud-logging/guides/authentication).
|
157
157
|
for more ways to authenticate the client library.
|
158
158
|
|
data/lib/google-cloud-logging.rb
CHANGED
@@ -20,6 +20,8 @@
|
|
20
20
|
|
21
21
|
gem "google-cloud-core"
|
22
22
|
require "google/cloud"
|
23
|
+
require "google/cloud/config"
|
24
|
+
require "googleauth"
|
23
25
|
|
24
26
|
module Google
|
25
27
|
module Cloud
|
@@ -38,6 +40,7 @@ module Google
|
|
38
40
|
# The default scope is:
|
39
41
|
#
|
40
42
|
# * `https://www.googleapis.com/auth/logging.admin`
|
43
|
+
#
|
41
44
|
# @param [Integer] timeout Default timeout to use in requests. Optional.
|
42
45
|
# @param [Hash] client_config A hash of values to override the default
|
43
46
|
# behavior of the API client. Optional.
|
@@ -89,6 +92,7 @@ module Google
|
|
89
92
|
# The default scope is:
|
90
93
|
#
|
91
94
|
# * `https://www.googleapis.com/auth/logging.admin`
|
95
|
+
#
|
92
96
|
# @param [Integer] timeout Default timeout to use in requests. Optional.
|
93
97
|
# @param [Hash] client_config A hash of values to override the default
|
94
98
|
# behavior of the API client. Optional.
|
@@ -115,3 +119,40 @@ module Google
|
|
115
119
|
end
|
116
120
|
end
|
117
121
|
end
|
122
|
+
|
123
|
+
# Add logging to top-level configuration
|
124
|
+
Google::Cloud.configure do |config|
|
125
|
+
unless config.field? :use_logging
|
126
|
+
config.add_field! :use_logging, nil, enum: [true, false]
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
# Set the default logging configuration
|
131
|
+
Google::Cloud.configure.add_config! :logging do |config|
|
132
|
+
default_project = Google::Cloud::Config.deferred do
|
133
|
+
ENV["LOGGING_PROJECT"]
|
134
|
+
end
|
135
|
+
default_creds = Google::Cloud::Config.deferred do
|
136
|
+
Google::Cloud::Config.credentials_from_env(
|
137
|
+
"LOGGING_CREDENTIALS", "LOGGING_CREDENTIALS_JSON",
|
138
|
+
"LOGGING_KEYFILE", "LOGGING_KEYFILE_JSON"
|
139
|
+
)
|
140
|
+
end
|
141
|
+
|
142
|
+
config.add_field! :project_id, default_project, match: String, allow_nil: true
|
143
|
+
config.add_alias! :project, :project_id
|
144
|
+
config.add_field! :credentials, default_creds,
|
145
|
+
match: [String, Hash, Google::Auth::Credentials],
|
146
|
+
allow_nil: true
|
147
|
+
config.add_alias! :keyfile, :credentials
|
148
|
+
config.add_field! :scope, nil, match: [String, Array]
|
149
|
+
config.add_field! :timeout, nil, match: Integer
|
150
|
+
config.add_field! :client_config, nil, match: Hash
|
151
|
+
config.add_field! :log_name, nil, match: String
|
152
|
+
config.add_field! :log_name_map, nil, match: Hash
|
153
|
+
config.add_field! :labels, nil, match: Hash
|
154
|
+
config.add_config! :monitored_resource do |mrconfig|
|
155
|
+
mrconfig.add_field! :type, nil, match: String
|
156
|
+
mrconfig.add_field! :labels, nil, match: Hash
|
157
|
+
end
|
158
|
+
end
|
data/lib/google/cloud/logging.rb
CHANGED
@@ -15,6 +15,8 @@
|
|
15
15
|
|
16
16
|
require "google-cloud-logging"
|
17
17
|
require "google/cloud/logging/project"
|
18
|
+
require "google/cloud/config"
|
19
|
+
require "google/cloud/env"
|
18
20
|
require "stackdriver/core"
|
19
21
|
|
20
22
|
module Google
|
@@ -38,11 +40,12 @@ module Google
|
|
38
40
|
# Logging Documentation](https://cloud.google.com/logging/docs/).
|
39
41
|
#
|
40
42
|
# The goal of google-cloud is to provide an API that is comfortable to
|
41
|
-
# Rubyists.
|
42
|
-
#
|
43
|
-
#
|
44
|
-
#
|
45
|
-
# about the options for connecting in the
|
43
|
+
# Rubyists. Your authentication credentials are detected automatically in
|
44
|
+
# Google Cloud Platform environments such as Google Compute Engine, Google
|
45
|
+
# App Engine and Google Kubernetes Engine. In other environments you can
|
46
|
+
# configure authentication easily, either directly in your code or via
|
47
|
+
# environment variables. Read more about the options for connecting in the
|
48
|
+
# [Authentication
|
46
49
|
# Guide](https://googlecloudplatform.github.io/google-cloud-ruby/#/docs/guides/authentication).
|
47
50
|
#
|
48
51
|
# If you just want to write your application's logs to the Stackdriver
|
@@ -347,12 +350,6 @@ module Google
|
|
347
350
|
# ```
|
348
351
|
#
|
349
352
|
module Logging
|
350
|
-
# Initialize :error_reporting as a nested Configuration under
|
351
|
-
# Google::Cloud if haven't already
|
352
|
-
unless Google::Cloud.configure.option? :logging
|
353
|
-
Google::Cloud.configure.add_options logging: :monitored_resource
|
354
|
-
end
|
355
|
-
|
356
353
|
##
|
357
354
|
# Creates a new object for connecting to the Stackdriver Logging service.
|
358
355
|
# Each call creates a new connection.
|
@@ -375,6 +372,7 @@ module Google
|
|
375
372
|
# The default scope is:
|
376
373
|
#
|
377
374
|
# * `https://www.googleapis.com/auth/logging.admin`
|
375
|
+
#
|
378
376
|
# @param [Integer] timeout Default timeout to use in requests. Optional.
|
379
377
|
# @param [Hash] client_config A hash of values to override the default
|
380
378
|
# behavior of the API client. Optional.
|
@@ -396,11 +394,15 @@ module Google
|
|
396
394
|
#
|
397
395
|
def self.new project_id: nil, credentials: nil, scope: nil, timeout: nil,
|
398
396
|
client_config: nil, project: nil, keyfile: nil
|
399
|
-
project_id ||= (project ||
|
397
|
+
project_id ||= (project || default_project_id)
|
400
398
|
project_id = project_id.to_s # Always cast to a string
|
401
|
-
|
399
|
+
raise ArgumentError, "project_id is missing" if project_id.empty?
|
400
|
+
|
401
|
+
scope ||= configure.scope
|
402
|
+
timeout ||= configure.timeout
|
403
|
+
client_config ||= configure.client_config
|
402
404
|
|
403
|
-
credentials ||= (keyfile ||
|
405
|
+
credentials ||= (keyfile || default_credentials(scope: scope))
|
404
406
|
unless credentials.is_a? Google::Auth::Credentials
|
405
407
|
credentials = Logging::Credentials.new credentials, scope: scope
|
406
408
|
end
|
@@ -408,18 +410,49 @@ module Google
|
|
408
410
|
Logging::Project.new(
|
409
411
|
Logging::Service.new(
|
410
412
|
project_id, credentials, timeout: timeout,
|
411
|
-
client_config: client_config
|
413
|
+
client_config: client_config
|
414
|
+
)
|
415
|
+
)
|
412
416
|
end
|
413
417
|
|
414
418
|
##
|
415
419
|
# Configure the Google::Cloud::Logging::Middleware when used in a
|
416
420
|
# Rack-based application.
|
417
421
|
#
|
422
|
+
# The following Stackdriver Logging configuration parameters are
|
423
|
+
# supported:
|
424
|
+
#
|
425
|
+
# * `project_id` - (String) Project identifier for the Stackdriver
|
426
|
+
# Logging service you are connecting to. (The parameter `project` is
|
427
|
+
# considered deprecated, but may also be used.)
|
428
|
+
# * `credentials` - (String, Hash, Google::Auth::Credentials) The path to
|
429
|
+
# the keyfile as a String, the contents of the keyfile as a Hash, or a
|
430
|
+
# Google::Auth::Credentials object. (See {Logging::Credentials}) (The
|
431
|
+
# parameter `keyfile` is considered deprecated, but may also be used.)
|
432
|
+
# * `scope` - (String, Array<String>) The OAuth 2.0 scopes controlling
|
433
|
+
# the set of resources and operations that the connection can access.
|
434
|
+
# * `timeout` - (Integer) Default timeout to use in requests.
|
435
|
+
# * `client_config` - (Hash) A hash of values to override the default
|
436
|
+
# behavior of the API client.
|
437
|
+
# * `log_name` - (String) Name of the application log file. Default:
|
438
|
+
# `"ruby_app_log"`
|
439
|
+
# * `log_name_map` - (Hash) Map specific request routes to other log.
|
440
|
+
# Default: `{ "/_ah/health" => "ruby_health_check_log" }`
|
441
|
+
# * `monitored_resource.type` (String) Resource type name. See [full
|
442
|
+
# list](https://cloud.google.com/logging/docs/api/v2/resource-list).
|
443
|
+
# Self discovered on GCP.
|
444
|
+
# * `monitored_resource.labels` -(Hash) Resource labels. See [full
|
445
|
+
# list](https://cloud.google.com/logging/docs/api/v2/resource-list).
|
446
|
+
# Self discovered on GCP.
|
447
|
+
# * `labels` - (Hash) User defined labels. A `Hash` of label names to
|
448
|
+
# string label values or callables/`Proc` which are functions of the
|
449
|
+
# Rack environment.
|
450
|
+
#
|
418
451
|
# See the [Configuration
|
419
452
|
# Guide](https://googlecloudplatform.github.io/google-cloud-ruby/#/docs/stackdriver/guides/instrumentation_configuration)
|
420
453
|
# for full configuration parameters.
|
421
454
|
#
|
422
|
-
# @return [
|
455
|
+
# @return [Google::Cloud::Config] The configuration object
|
423
456
|
# the Google::Cloud::Logging module uses.
|
424
457
|
#
|
425
458
|
def self.configure
|
@@ -427,6 +460,22 @@ module Google
|
|
427
460
|
|
428
461
|
Google::Cloud.configure.logging
|
429
462
|
end
|
463
|
+
|
464
|
+
##
|
465
|
+
# @private Default project.
|
466
|
+
def self.default_project_id
|
467
|
+
Google::Cloud.configure.logging.project_id ||
|
468
|
+
Google::Cloud.configure.project_id ||
|
469
|
+
Google::Cloud.env.project_id
|
470
|
+
end
|
471
|
+
|
472
|
+
##
|
473
|
+
# @private Default credentials.
|
474
|
+
def self.default_credentials scope: nil
|
475
|
+
Google::Cloud.configure.logging.credentials ||
|
476
|
+
Google::Cloud.configure.credentials ||
|
477
|
+
Logging::Credentials.default(scope: scope)
|
478
|
+
end
|
430
479
|
end
|
431
480
|
end
|
432
481
|
end
|
@@ -87,7 +87,7 @@ module Google
|
|
87
87
|
# The current state. Either :running, :suspended, :stopping, or :stopped
|
88
88
|
#
|
89
89
|
# DEPRECATED. Use #async_state instead.
|
90
|
-
|
90
|
+
alias state async_state
|
91
91
|
|
92
92
|
##
|
93
93
|
# The last exception thrown by the background thread, or nil if nothing
|
@@ -152,7 +152,7 @@ module Google
|
|
152
152
|
ensure_thread
|
153
153
|
entries = Array(entries)
|
154
154
|
synchronize do
|
155
|
-
|
155
|
+
raise "AsyncWriter has been stopped" unless writable?
|
156
156
|
queue_item = QueueItem.new entries, log_name, resource, labels
|
157
157
|
if @queue.empty? || !@queue.last.try_combine(queue_item)
|
158
158
|
@queue.push queue_item
|
@@ -213,7 +213,7 @@ module Google
|
|
213
213
|
# @return [Boolean] Returns true if the writer was running, or false
|
214
214
|
# if the writer had already been stopped.
|
215
215
|
#
|
216
|
-
|
216
|
+
alias stop async_stop
|
217
217
|
|
218
218
|
##
|
219
219
|
# Suspends this asynchronous writer.
|
@@ -226,7 +226,7 @@ module Google
|
|
226
226
|
# @return [Boolean] Returns true if the writer had been running and was
|
227
227
|
# suspended, otherwise false.
|
228
228
|
#
|
229
|
-
|
229
|
+
alias suspend async_suspend
|
230
230
|
|
231
231
|
##
|
232
232
|
# Resumes this suspended asynchronous writer.
|
@@ -239,7 +239,7 @@ module Google
|
|
239
239
|
# @return [Boolean] Returns true if the writer had been suspended and
|
240
240
|
# is now running, otherwise false.
|
241
241
|
#
|
242
|
-
|
242
|
+
alias resume async_resume
|
243
243
|
|
244
244
|
##
|
245
245
|
# Returns true if this writer is running.
|
@@ -248,7 +248,7 @@ module Google
|
|
248
248
|
#
|
249
249
|
# @return [Boolean] Returns true if the writer is currently running.
|
250
250
|
#
|
251
|
-
|
251
|
+
alias running? async_running?
|
252
252
|
|
253
253
|
##
|
254
254
|
# Returns true if this writer is suspended.
|
@@ -257,7 +257,7 @@ module Google
|
|
257
257
|
#
|
258
258
|
# @return [Boolean] Returns true if the writer is currently suspended.
|
259
259
|
#
|
260
|
-
|
260
|
+
alias suspended? async_suspended?
|
261
261
|
|
262
262
|
##
|
263
263
|
# Returns true if this writer is still accepting writes. This means
|
@@ -267,7 +267,7 @@ module Google
|
|
267
267
|
#
|
268
268
|
# @return [Boolean] Returns true if the writer is accepting writes.
|
269
269
|
#
|
270
|
-
|
270
|
+
alias writable? async_working?
|
271
271
|
|
272
272
|
##
|
273
273
|
# Returns true if this writer is fully stopped.
|
@@ -276,7 +276,7 @@ module Google
|
|
276
276
|
#
|
277
277
|
# @return [Boolean] Returns true if the writer is fully stopped.
|
278
278
|
#
|
279
|
-
|
279
|
+
alias stopped? async_stopped?
|
280
280
|
|
281
281
|
##
|
282
282
|
# Blocks until this asynchronous writer has been stopped, or the given
|
@@ -290,7 +290,7 @@ module Google
|
|
290
290
|
# @return [Boolean] Returns true if the writer is stopped, or false
|
291
291
|
# if the timeout expired.
|
292
292
|
#
|
293
|
-
|
293
|
+
alias wait_until_stopped wait_until_async_stopped
|
294
294
|
|
295
295
|
##
|
296
296
|
# Stop this asynchronous writer and block until it has been stopped.
|
@@ -340,7 +340,7 @@ module Google
|
|
340
340
|
labels: queue_item.labels,
|
341
341
|
partial_success: @partial_success
|
342
342
|
)
|
343
|
-
rescue => e
|
343
|
+
rescue StandardError => e
|
344
344
|
# Ignore any exceptions thrown from the background thread, but
|
345
345
|
# keep running to ensure its state behavior remains consistent.
|
346
346
|
@last_exception = e
|
@@ -38,19 +38,19 @@ module Google
|
|
38
38
|
# logging.project_id #=> "my-project"
|
39
39
|
#
|
40
40
|
class Credentials < Google::Auth::Credentials
|
41
|
-
SCOPE = ["https://www.googleapis.com/auth/logging.admin"]
|
42
|
-
PATH_ENV_VARS = %w
|
41
|
+
SCOPE = ["https://www.googleapis.com/auth/logging.admin"].freeze
|
42
|
+
PATH_ENV_VARS = %w[LOGGING_CREDENTIALS
|
43
43
|
LOGGING_KEYFILE
|
44
44
|
GOOGLE_CLOUD_CREDENTIALS
|
45
45
|
GOOGLE_CLOUD_KEYFILE
|
46
|
-
GCLOUD_KEYFILE
|
47
|
-
JSON_ENV_VARS = %w
|
46
|
+
GCLOUD_KEYFILE].freeze
|
47
|
+
JSON_ENV_VARS = %w[LOGGING_CREDENTIALS_JSON
|
48
48
|
LOGGING_KEYFILE_JSON
|
49
49
|
GOOGLE_CLOUD_CREDENTIALS_JSON
|
50
50
|
GOOGLE_CLOUD_KEYFILE_JSON
|
51
|
-
GCLOUD_KEYFILE_JSON
|
51
|
+
GCLOUD_KEYFILE_JSON].freeze
|
52
52
|
DEFAULT_PATHS = \
|
53
|
-
["~/.config/gcloud/application_default_credentials.json"]
|
53
|
+
["~/.config/gcloud/application_default_credentials.json"].freeze
|
54
54
|
end
|
55
55
|
end
|
56
56
|
end
|