gcloud 0.10.0 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +8 -8
- data/CHANGELOG.md +36 -0
- data/lib/gcloud/backoff.rb +5 -5
- data/lib/gcloud/bigquery.rb +24 -0
- data/lib/gcloud/bigquery/connection.rb +32 -25
- data/lib/gcloud/bigquery/data.rb +99 -1
- data/lib/gcloud/bigquery/dataset.rb +5 -13
- data/lib/gcloud/bigquery/dataset/list.rb +124 -2
- data/lib/gcloud/bigquery/job/list.rb +125 -2
- data/lib/gcloud/bigquery/project.rb +30 -27
- data/lib/gcloud/bigquery/query_data.rb +102 -1
- data/lib/gcloud/bigquery/table.rb +17 -2
- data/lib/gcloud/bigquery/table/list.rb +132 -3
- data/lib/gcloud/datastore.rb +30 -19
- data/lib/gcloud/datastore/dataset.rb +2 -22
- data/lib/gcloud/datastore/dataset/lookup_results.rb +160 -4
- data/lib/gcloud/datastore/dataset/query_results.rb +229 -23
- data/lib/gcloud/datastore/transaction.rb +2 -5
- data/lib/gcloud/dns.rb +20 -0
- data/lib/gcloud/dns/change/list.rb +109 -6
- data/lib/gcloud/dns/connection.rb +18 -9
- data/lib/gcloud/dns/project.rb +4 -8
- data/lib/gcloud/dns/record/list.rb +96 -13
- data/lib/gcloud/dns/zone.rb +9 -24
- data/lib/gcloud/dns/zone/list.rb +102 -5
- data/lib/gcloud/dns/zone/transaction.rb +1 -1
- data/lib/gcloud/logging.rb +19 -0
- data/lib/gcloud/logging/entry/list.rb +83 -14
- data/lib/gcloud/logging/metric/list.rb +89 -12
- data/lib/gcloud/logging/project.rb +18 -30
- data/lib/gcloud/logging/resource_descriptor/list.rb +105 -6
- data/lib/gcloud/logging/sink/list.rb +89 -12
- data/lib/gcloud/pubsub.rb +23 -0
- data/lib/gcloud/pubsub/project.rb +21 -29
- data/lib/gcloud/pubsub/service.rb +1 -3
- data/lib/gcloud/pubsub/subscription/list.rb +167 -13
- data/lib/gcloud/pubsub/topic.rb +15 -13
- data/lib/gcloud/pubsub/topic/batch.rb +10 -4
- data/lib/gcloud/pubsub/topic/list.rb +134 -8
- data/lib/gcloud/resource_manager.rb +24 -0
- data/lib/gcloud/resource_manager/connection.rb +18 -9
- data/lib/gcloud/resource_manager/manager.rb +7 -4
- data/lib/gcloud/resource_manager/project/list.rb +93 -14
- data/lib/gcloud/storage.rb +63 -0
- data/lib/gcloud/storage/bucket.rb +100 -61
- data/lib/gcloud/storage/bucket/list.rb +132 -8
- data/lib/gcloud/storage/connection.rb +68 -44
- data/lib/gcloud/storage/errors.rb +9 -3
- data/lib/gcloud/storage/file.rb +48 -4
- data/lib/gcloud/storage/file/list.rb +151 -15
- data/lib/gcloud/storage/file/verifier.rb +3 -3
- data/lib/gcloud/storage/project.rb +15 -30
- data/lib/gcloud/translate.rb +20 -0
- data/lib/gcloud/translate/connection.rb +12 -3
- data/lib/gcloud/version.rb +1 -1
- data/lib/gcloud/vision.rb +20 -0
- data/lib/gcloud/vision/connection.rb +10 -1
- data/lib/gcloud/vision/image.rb +15 -18
- metadata +16 -2
data/lib/gcloud/logging.rb
CHANGED
@@ -302,6 +302,25 @@ module Gcloud
|
|
302
302
|
# logger.info "Job started."
|
303
303
|
# ```
|
304
304
|
#
|
305
|
+
# ## Configuring Backoff
|
306
|
+
#
|
307
|
+
# The {Gcloud::Backoff} class allows users to globally configure how Cloud API
|
308
|
+
# requests are automatically retried in the case of some errors, such as a
|
309
|
+
# `500` or `503` status code, or a specific internal error code such as
|
310
|
+
# `rateLimitExceeded`.
|
311
|
+
#
|
312
|
+
# If an API call fails, the response will be inspected to see if the call
|
313
|
+
# should be retried. If the response matches the criteria, then the request
|
314
|
+
# will be retried after a delay. If another error occurs, the delay will be
|
315
|
+
# increased incrementally before a subsequent attempt. The first retry will be
|
316
|
+
# delayed one second, the second retry two seconds, and so on.
|
317
|
+
#
|
318
|
+
# ```ruby
|
319
|
+
# require "gcloud"
|
320
|
+
# require "gcloud/backoff"
|
321
|
+
#
|
322
|
+
# Gcloud::Backoff.retries = 5 # Raise the maximum number of retries from 3
|
323
|
+
# ```
|
305
324
|
#
|
306
325
|
module Logging
|
307
326
|
end
|
@@ -34,12 +34,40 @@ module Gcloud
|
|
34
34
|
|
35
35
|
##
|
36
36
|
# Whether there is a next page of entries.
|
37
|
+
#
|
38
|
+
# @return [Boolean]
|
39
|
+
#
|
40
|
+
# @example
|
41
|
+
# require "gcloud"
|
42
|
+
#
|
43
|
+
# gcloud = Gcloud.new
|
44
|
+
# logging = gcloud.logging
|
45
|
+
#
|
46
|
+
# entries = logging.entries
|
47
|
+
# if entries.next?
|
48
|
+
# next_entries = entries.next
|
49
|
+
# end
|
50
|
+
#
|
37
51
|
def next?
|
38
52
|
!token.nil?
|
39
53
|
end
|
40
54
|
|
41
55
|
##
|
42
56
|
# Retrieve the next page of entries.
|
57
|
+
#
|
58
|
+
# @return [Sink::List]
|
59
|
+
#
|
60
|
+
# @example
|
61
|
+
# require "gcloud"
|
62
|
+
#
|
63
|
+
# gcloud = Gcloud.new
|
64
|
+
# logging = gcloud.logging
|
65
|
+
#
|
66
|
+
# entries = dataset.entries
|
67
|
+
# if entries.next?
|
68
|
+
# next_entries = entries.next
|
69
|
+
# end
|
70
|
+
#
|
43
71
|
def next
|
44
72
|
return nil unless next?
|
45
73
|
ensure_service!
|
@@ -51,30 +79,71 @@ module Gcloud
|
|
51
79
|
end
|
52
80
|
|
53
81
|
##
|
54
|
-
# Retrieves all log entries by repeatedly loading {#next} until
|
55
|
-
#
|
56
|
-
#
|
82
|
+
# Retrieves all log entries by repeatedly loading {#next} until {#next?}
|
83
|
+
# returns `false`. Calls the given block once for each log entry, which
|
84
|
+
# is passed as the parameter.
|
85
|
+
#
|
86
|
+
# An Enumerator is returned if no block is given.
|
57
87
|
#
|
58
88
|
# This method may make several API calls until all log entries are
|
59
89
|
# retrieved. Be sure to use as narrow a search criteria as possible.
|
60
90
|
# Please use with caution.
|
61
91
|
#
|
62
|
-
# @
|
92
|
+
# @param [Integer] request_limit The upper limit of API requests to make
|
93
|
+
# to load all log entries. Default is no limit.
|
94
|
+
# @yield [entry] The block for accessing each log entry.
|
95
|
+
# @yieldparam [Entry] entry The log entry object.
|
96
|
+
#
|
97
|
+
# @return [Enumerator]
|
98
|
+
#
|
99
|
+
# @example Iterating each log entry by passing a block:
|
100
|
+
# require "gcloud"
|
101
|
+
#
|
102
|
+
# gcloud = Gcloud.new
|
103
|
+
# logging = gcloud.logging
|
104
|
+
# entries = logging.entries order: "timestamp desc"
|
105
|
+
#
|
106
|
+
# entries.all do |entry|
|
107
|
+
# puts "[#{e.timestamp}] #{e.log_name} #{e.payload.inspect}"
|
108
|
+
# end
|
109
|
+
#
|
110
|
+
# @example Using the enumerator by not passing a block:
|
63
111
|
# require "gcloud"
|
64
112
|
#
|
65
113
|
# gcloud = Gcloud.new
|
66
114
|
# logging = gcloud.logging
|
67
|
-
#
|
68
|
-
#
|
69
|
-
#
|
70
|
-
#
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
115
|
+
# entries = logging.entries order: "timestamp desc"
|
116
|
+
#
|
117
|
+
# all_payloads = entries.all.map do |entry|
|
118
|
+
# entry.payload
|
119
|
+
# end
|
120
|
+
#
|
121
|
+
# @example Limit the number of API calls made:
|
122
|
+
# require "gcloud"
|
123
|
+
#
|
124
|
+
# gcloud = Gcloud.new
|
125
|
+
# logging = gcloud.logging
|
126
|
+
# entries = logging.entries order: "timestamp desc"
|
127
|
+
#
|
128
|
+
# entries.all(request_limit: 10) do |entry|
|
129
|
+
# puts "[#{e.timestamp}] #{e.log_name} #{e.payload.inspect}"
|
130
|
+
# end
|
131
|
+
#
|
132
|
+
def all request_limit: nil
|
133
|
+
request_limit = request_limit.to_i if request_limit
|
134
|
+
unless block_given?
|
135
|
+
return enum_for(:all, request_limit: request_limit)
|
136
|
+
end
|
137
|
+
results = self
|
138
|
+
loop do
|
139
|
+
results.each { |r| yield r }
|
140
|
+
if request_limit
|
141
|
+
request_limit -= 1
|
142
|
+
break if request_limit < 0
|
143
|
+
end
|
144
|
+
break unless results.next?
|
145
|
+
results = results.next
|
76
146
|
end
|
77
|
-
self
|
78
147
|
end
|
79
148
|
|
80
149
|
##
|
@@ -34,45 +34,121 @@ module Gcloud
|
|
34
34
|
|
35
35
|
##
|
36
36
|
# Whether there is a next page of metrics.
|
37
|
+
#
|
38
|
+
# @return [Boolean]
|
39
|
+
#
|
40
|
+
# @example
|
41
|
+
# require "gcloud"
|
42
|
+
#
|
43
|
+
# gcloud = Gcloud.new
|
44
|
+
# logging = gcloud.logging
|
45
|
+
#
|
46
|
+
# metrics = logging.metrics
|
47
|
+
# if metrics.next?
|
48
|
+
# next_metrics = metrics.next
|
49
|
+
# end
|
50
|
+
#
|
37
51
|
def next?
|
38
52
|
!token.nil?
|
39
53
|
end
|
40
54
|
|
41
55
|
##
|
42
56
|
# Retrieve the next page of metrics.
|
57
|
+
#
|
58
|
+
# @return [Sink::List]
|
59
|
+
#
|
60
|
+
# @example
|
61
|
+
# require "gcloud"
|
62
|
+
#
|
63
|
+
# gcloud = Gcloud.new
|
64
|
+
# logging = gcloud.logging
|
65
|
+
#
|
66
|
+
# metrics = dataset.metrics
|
67
|
+
# if metrics.next?
|
68
|
+
# next_metrics = metrics.next
|
69
|
+
# end
|
70
|
+
#
|
43
71
|
def next
|
44
72
|
return nil unless next?
|
45
73
|
ensure_service!
|
46
|
-
grpc = @service.list_metrics token: token
|
74
|
+
grpc = @service.list_metrics token: token, max: @max
|
47
75
|
self.class.from_grpc grpc, @service
|
48
76
|
rescue GRPC::BadStatus => e
|
49
77
|
raise Gcloud::Error.from_error(e)
|
50
78
|
end
|
51
79
|
|
52
80
|
##
|
53
|
-
# Retrieves all metrics by repeatedly loading {#next
|
54
|
-
# returns `false`.
|
81
|
+
# Retrieves all metrics by repeatedly loading {#next} until {#next?}
|
82
|
+
# returns `false`. Calls the given block once for each metric, which is
|
83
|
+
# passed as the parameter.
|
55
84
|
#
|
56
|
-
#
|
85
|
+
# An Enumerator is returned if no block is given.
|
86
|
+
#
|
87
|
+
# This method may make several API calls until all metrics are
|
88
|
+
# retrieved. Be sure to use as narrow a search criteria as possible.
|
89
|
+
# Please use with caution.
|
90
|
+
#
|
91
|
+
# @param [Integer] request_limit The upper limit of API requests to make
|
92
|
+
# to load all metrics. Default is no limit.
|
93
|
+
# @yield [metric] The block for accessing each metric.
|
94
|
+
# @yieldparam [Metric] metric The metric object.
|
95
|
+
#
|
96
|
+
# @return [Enumerator]
|
97
|
+
#
|
98
|
+
# @example Iterating each metric by passing a block:
|
99
|
+
# require "gcloud"
|
100
|
+
#
|
101
|
+
# gcloud = Gcloud.new
|
102
|
+
# logging = gcloud.logging
|
103
|
+
# metrics = logging.metrics
|
104
|
+
#
|
105
|
+
# metrics.all do |metric|
|
106
|
+
# puts "#{metric.name}: #{metric.filter}"
|
107
|
+
# end
|
108
|
+
#
|
109
|
+
# @example Using the enumerator by not passing a block:
|
57
110
|
# require "gcloud"
|
58
111
|
#
|
59
112
|
# gcloud = Gcloud.new
|
60
113
|
# logging = gcloud.logging
|
61
|
-
#
|
114
|
+
# metrics = logging.metrics
|
115
|
+
#
|
116
|
+
# all_names = metrics.all.map do |metric|
|
117
|
+
# metric.name
|
118
|
+
# end
|
62
119
|
#
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
120
|
+
# @example Limit the number of API calls made:
|
121
|
+
# require "gcloud"
|
122
|
+
#
|
123
|
+
# gcloud = Gcloud.new
|
124
|
+
# logging = gcloud.logging
|
125
|
+
# metrics = logging.metrics
|
126
|
+
#
|
127
|
+
# metrics.all(request_limit: 10) do |metric|
|
128
|
+
# puts "#{metric.name}: #{metric.filter}"
|
129
|
+
# end
|
130
|
+
#
|
131
|
+
def all request_limit: nil
|
132
|
+
request_limit = request_limit.to_i if request_limit
|
133
|
+
unless block_given?
|
134
|
+
return enum_for(:all, request_limit: request_limit)
|
135
|
+
end
|
136
|
+
results = self
|
137
|
+
loop do
|
138
|
+
results.each { |r| yield r }
|
139
|
+
if request_limit
|
140
|
+
request_limit -= 1
|
141
|
+
break if request_limit < 0
|
142
|
+
end
|
143
|
+
break unless results.next?
|
144
|
+
results = results.next
|
68
145
|
end
|
69
|
-
self
|
70
146
|
end
|
71
147
|
|
72
148
|
##
|
73
149
|
# @private New Metric::List from a
|
74
150
|
# Google::Logging::V2::ListLogMetricsResponse object.
|
75
|
-
def self.from_grpc grpc_list, service
|
151
|
+
def self.from_grpc grpc_list, service, max = nil
|
76
152
|
metrics = new(Array(grpc_list.metrics).map do |grpc_metric|
|
77
153
|
Metric.from_grpc grpc_metric, service
|
78
154
|
end)
|
@@ -80,6 +156,7 @@ module Gcloud
|
|
80
156
|
token = nil if token == ""
|
81
157
|
metrics.instance_variable_set "@token", token
|
82
158
|
metrics.instance_variable_set "@service", service
|
159
|
+
metrics.instance_variable_set "@max", max
|
83
160
|
metrics
|
84
161
|
end
|
85
162
|
|
@@ -132,18 +132,15 @@ module Gcloud
|
|
132
132
|
# puts "[#{e.timestamp}] #{e.log_name} #{e.payload.inspect}"
|
133
133
|
# end
|
134
134
|
#
|
135
|
-
# @example
|
135
|
+
# @example Retrieve all log entries: (See {Entry::List#all})
|
136
136
|
# require "gcloud"
|
137
137
|
#
|
138
138
|
# gcloud = Gcloud.new
|
139
139
|
# logging = gcloud.logging
|
140
140
|
# entries = logging.entries
|
141
|
-
#
|
142
|
-
#
|
143
|
-
#
|
144
|
-
# end
|
145
|
-
# break unless entries.next?
|
146
|
-
# entries = entries.next
|
141
|
+
#
|
142
|
+
# entries.all do |e|
|
143
|
+
# puts "[#{e.timestamp}] #{e.log_name} #{e.payload.inspect}"
|
147
144
|
# end
|
148
145
|
#
|
149
146
|
def entries projects: nil, filter: nil, order: nil, token: nil, max: nil
|
@@ -341,18 +338,15 @@ module Gcloud
|
|
341
338
|
# gcloud = Gcloud.new
|
342
339
|
# logging = gcloud.logging
|
343
340
|
# resource_descriptors = logging.resource_descriptors
|
344
|
-
#
|
345
|
-
#
|
346
|
-
#
|
347
|
-
# end
|
348
|
-
# break unless resource_descriptors.next?
|
349
|
-
# resource_descriptors = resource_descriptors.next
|
341
|
+
#
|
342
|
+
# resource_descriptors.all do |rd|
|
343
|
+
# puts rd.type
|
350
344
|
# end
|
351
345
|
#
|
352
346
|
def resource_descriptors token: nil, max: nil
|
353
347
|
ensure_service!
|
354
348
|
list_grpc = service.list_resource_descriptors token: token, max: max
|
355
|
-
ResourceDescriptor::List.from_grpc list_grpc, service
|
349
|
+
ResourceDescriptor::List.from_grpc list_grpc, service, max
|
356
350
|
rescue GRPC::BadStatus => e
|
357
351
|
raise Gcloud::Error.from_error(e)
|
358
352
|
end
|
@@ -401,24 +395,21 @@ module Gcloud
|
|
401
395
|
# puts "#{s.name}: #{s.filter} -> #{s.destination}"
|
402
396
|
# end
|
403
397
|
#
|
404
|
-
# @example
|
398
|
+
# @example Retrieve all sinks: (See {Sink::List#all})
|
405
399
|
# require "gcloud"
|
406
400
|
#
|
407
401
|
# gcloud = Gcloud.new
|
408
402
|
# logging = gcloud.logging
|
409
403
|
# sinks = logging.sinks
|
410
|
-
#
|
411
|
-
#
|
412
|
-
#
|
413
|
-
# end
|
414
|
-
# break unless sinks.next?
|
415
|
-
# sinks = sinks.next
|
404
|
+
#
|
405
|
+
# sinks.all do |s|
|
406
|
+
# puts "#{s.name}: #{s.filter} -> #{s.destination}"
|
416
407
|
# end
|
417
408
|
#
|
418
409
|
def sinks token: nil, max: nil
|
419
410
|
ensure_service!
|
420
411
|
list_grpc = service.list_sinks token: token, max: max
|
421
|
-
Sink::List.from_grpc list_grpc, service
|
412
|
+
Sink::List.from_grpc list_grpc, service, max
|
422
413
|
rescue GRPC::BadStatus => e
|
423
414
|
raise Gcloud::Error.from_error(e)
|
424
415
|
end
|
@@ -545,24 +536,21 @@ module Gcloud
|
|
545
536
|
# puts "#{m.name}: #{m.filter}"
|
546
537
|
# end
|
547
538
|
#
|
548
|
-
# @example
|
539
|
+
# @example Retrieve all metrics: (See {Metric::List#all})
|
549
540
|
# require "gcloud"
|
550
541
|
#
|
551
542
|
# gcloud = Gcloud.new
|
552
543
|
# logging = gcloud.logging
|
553
544
|
# metrics = logging.metrics
|
554
|
-
#
|
555
|
-
#
|
556
|
-
#
|
557
|
-
# end
|
558
|
-
# break unless metrics.next?
|
559
|
-
# metrics = metrics.next
|
545
|
+
#
|
546
|
+
# metrics.all do |m|
|
547
|
+
# puts "#{m.name}: #{m.filter}"
|
560
548
|
# end
|
561
549
|
#
|
562
550
|
def metrics token: nil, max: nil
|
563
551
|
ensure_service!
|
564
552
|
grpc = service.list_metrics token: token, max: max
|
565
|
-
Metric::List.from_grpc grpc, service
|
553
|
+
Metric::List.from_grpc grpc, service, max
|
566
554
|
rescue GRPC::BadStatus => e
|
567
555
|
raise Gcloud::Error.from_error(e)
|
568
556
|
end
|
@@ -35,33 +35,132 @@ module Gcloud
|
|
35
35
|
|
36
36
|
##
|
37
37
|
# Whether there is a next page of resource descriptors.
|
38
|
+
#
|
39
|
+
# @return [Boolean]
|
40
|
+
#
|
41
|
+
# @example
|
42
|
+
# require "gcloud"
|
43
|
+
#
|
44
|
+
# gcloud = Gcloud.new
|
45
|
+
# logging = gcloud.logging
|
46
|
+
#
|
47
|
+
# resource_descriptors = logging.resource_descriptors
|
48
|
+
# if resource_descriptors.next?
|
49
|
+
# next_resource_descriptors = resource_descriptors.next
|
50
|
+
# end
|
51
|
+
#
|
38
52
|
def next?
|
39
53
|
!token.nil?
|
40
54
|
end
|
41
55
|
|
42
56
|
##
|
43
57
|
# Retrieve the next page of resource descriptors.
|
58
|
+
#
|
59
|
+
# @return [Sink::List]
|
60
|
+
#
|
61
|
+
# @example
|
62
|
+
# require "gcloud"
|
63
|
+
#
|
64
|
+
# gcloud = Gcloud.new
|
65
|
+
# logging = gcloud.logging
|
66
|
+
#
|
67
|
+
# resource_descriptors = logging.resource_descriptors
|
68
|
+
# if resource_descriptors.next?
|
69
|
+
# next_resource_descriptors = resource_descriptors.next
|
70
|
+
# end
|
71
|
+
#
|
44
72
|
def next
|
45
73
|
return nil unless next?
|
46
74
|
ensure_service!
|
47
|
-
list_grpc = @service.list_resource_descriptors token: token
|
75
|
+
list_grpc = @service.list_resource_descriptors token: token, max: @max
|
48
76
|
self.class.from_grpc list_grpc, @service
|
49
77
|
rescue GRPC::BadStatus => e
|
50
78
|
raise Gcloud::Error.from_error(e)
|
51
79
|
end
|
52
80
|
|
81
|
+
##
|
82
|
+
# Retrieves all resource descriptors by repeatedly loading {#next} until
|
83
|
+
# {#next?} returns `false`. Calls the given block once for each resource
|
84
|
+
# descriptor, which is passed as the parameter.
|
85
|
+
#
|
86
|
+
# An Enumerator is returned if no block is given.
|
87
|
+
#
|
88
|
+
# This method may make several API calls until all resource descriptors
|
89
|
+
# are retrieved. Be sure to use as narrow a search criteria as possible.
|
90
|
+
# Please use with caution.
|
91
|
+
#
|
92
|
+
# @param [Integer] request_limit The upper limit of API requests to make
|
93
|
+
# to load all resource descriptors. Default is no limit.
|
94
|
+
# @yield [resource_descriptor] The block for accessing each resource
|
95
|
+
# descriptor.
|
96
|
+
# @yieldparam [ResourceDescriptor] resource_descriptor The resource
|
97
|
+
# descriptor object.
|
98
|
+
#
|
99
|
+
# @return [Enumerator]
|
100
|
+
#
|
101
|
+
# @example Iterating each resource descriptor by passing a block:
|
102
|
+
# require "gcloud"
|
103
|
+
#
|
104
|
+
# gcloud = Gcloud.new
|
105
|
+
# logging = gcloud.logging
|
106
|
+
# resource_descriptors = logging.resource_descriptors
|
107
|
+
#
|
108
|
+
# resource_descriptors.all do |rd|
|
109
|
+
# puts rd.type
|
110
|
+
# end
|
111
|
+
#
|
112
|
+
# @example Using the enumerator by not passing a block:
|
113
|
+
# require "gcloud"
|
114
|
+
#
|
115
|
+
# gcloud = Gcloud.new
|
116
|
+
# logging = gcloud.logging
|
117
|
+
# resource_descriptors = logging.resource_descriptors
|
118
|
+
#
|
119
|
+
# all_types = resource_descriptors.all.map do |rd|
|
120
|
+
# rd.type
|
121
|
+
# end
|
122
|
+
#
|
123
|
+
# @example Limit the number of API calls made:
|
124
|
+
# require "gcloud"
|
125
|
+
#
|
126
|
+
# gcloud = Gcloud.new
|
127
|
+
# logging = gcloud.logging
|
128
|
+
# resource_descriptors = logging.resource_descriptors
|
129
|
+
#
|
130
|
+
# resource_descriptors.all(request_limit: 10) do |rd|
|
131
|
+
# puts rd.type
|
132
|
+
# end
|
133
|
+
#
|
134
|
+
def all request_limit: nil
|
135
|
+
request_limit = request_limit.to_i if request_limit
|
136
|
+
unless block_given?
|
137
|
+
return enum_for(:all, request_limit: request_limit)
|
138
|
+
end
|
139
|
+
results = self
|
140
|
+
loop do
|
141
|
+
results.each { |r| yield r }
|
142
|
+
if request_limit
|
143
|
+
request_limit -= 1
|
144
|
+
break if request_limit < 0
|
145
|
+
end
|
146
|
+
break unless results.next?
|
147
|
+
results = results.next
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
53
151
|
##
|
54
152
|
# @private New ResourceDescriptor::List from a
|
55
153
|
# Google::Logging::V2::ListMonitoredResourceDescriptorsResponse object.
|
56
|
-
def self.from_grpc grpc_list, service
|
57
|
-
|
154
|
+
def self.from_grpc grpc_list, service, max = nil
|
155
|
+
rds = new(Array(grpc_list.resource_descriptors).map do |grpc|
|
58
156
|
ResourceDescriptor.from_grpc grpc
|
59
157
|
end)
|
60
158
|
token = grpc_list.next_page_token
|
61
159
|
token = nil if token == ""
|
62
|
-
|
63
|
-
|
64
|
-
|
160
|
+
rds.instance_variable_set "@token", token
|
161
|
+
rds.instance_variable_set "@service", service
|
162
|
+
rds.instance_variable_set "@max", max
|
163
|
+
rds
|
65
164
|
end
|
66
165
|
|
67
166
|
protected
|