gcloud 0.11.0 → 0.12.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/AUTHENTICATION.md +3 -3
- data/CHANGELOG.md +92 -0
- data/OVERVIEW.md +3 -3
- data/lib/gcloud.rb +75 -25
- data/lib/gcloud/backoff.rb +5 -1
- data/lib/gcloud/bigquery.rb +25 -43
- data/lib/gcloud/bigquery/copy_job.rb +13 -13
- data/lib/gcloud/bigquery/data.rb +20 -16
- data/lib/gcloud/bigquery/dataset.rb +202 -177
- data/lib/gcloud/bigquery/dataset/access.rb +118 -104
- data/lib/gcloud/bigquery/dataset/list.rb +14 -18
- data/lib/gcloud/bigquery/extract_job.rb +12 -12
- data/lib/gcloud/bigquery/insert_response.rb +12 -14
- data/lib/gcloud/bigquery/job.rb +45 -57
- data/lib/gcloud/bigquery/job/list.rb +18 -24
- data/lib/gcloud/bigquery/load_job.rb +35 -27
- data/lib/gcloud/bigquery/project.rb +53 -73
- data/lib/gcloud/bigquery/query_data.rb +28 -35
- data/lib/gcloud/bigquery/query_job.rb +18 -18
- data/lib/gcloud/bigquery/schema.rb +359 -0
- data/lib/gcloud/bigquery/service.rb +506 -0
- data/lib/gcloud/bigquery/table.rb +185 -266
- data/lib/gcloud/bigquery/table/list.rb +15 -19
- data/lib/gcloud/bigquery/view.rb +126 -81
- data/lib/gcloud/datastore.rb +39 -27
- data/lib/gcloud/datastore/commit.rb +2 -2
- data/lib/gcloud/datastore/dataset.rb +8 -19
- data/lib/gcloud/datastore/dataset/lookup_results.rb +2 -4
- data/lib/gcloud/datastore/dataset/query_results.rb +0 -2
- data/lib/gcloud/datastore/entity.rb +7 -1
- data/lib/gcloud/datastore/errors.rb +5 -27
- data/lib/gcloud/datastore/grpc_utils.rb +4 -3
- data/lib/gcloud/datastore/key.rb +6 -0
- data/lib/gcloud/datastore/service.rb +18 -12
- data/lib/gcloud/datastore/transaction.rb +0 -10
- data/lib/gcloud/dns.rb +29 -19
- data/lib/gcloud/dns/change.rb +10 -15
- data/lib/gcloud/dns/change/list.rb +4 -4
- data/lib/gcloud/dns/importer.rb +1 -1
- data/lib/gcloud/dns/project.rb +32 -49
- data/lib/gcloud/dns/record.rb +8 -2
- data/lib/gcloud/dns/record/list.rb +4 -4
- data/lib/gcloud/dns/service.rb +167 -0
- data/lib/gcloud/dns/zone.rb +33 -52
- data/lib/gcloud/dns/zone/list.rb +12 -16
- data/lib/gcloud/errors.rb +31 -19
- data/lib/gcloud/logging.rb +50 -39
- data/lib/gcloud/logging/entry.rb +197 -24
- data/lib/gcloud/logging/entry/list.rb +0 -2
- data/lib/gcloud/logging/logger.rb +1 -1
- data/lib/gcloud/logging/metric.rb +3 -9
- data/lib/gcloud/logging/metric/list.rb +0 -2
- data/lib/gcloud/logging/project.rb +58 -54
- data/lib/gcloud/logging/resource_descriptor.rb +2 -2
- data/lib/gcloud/logging/resource_descriptor/list.rb +0 -2
- data/lib/gcloud/logging/service.rb +32 -23
- data/lib/gcloud/logging/sink.rb +8 -14
- data/lib/gcloud/logging/sink/list.rb +0 -2
- data/lib/gcloud/pubsub.rb +21 -16
- data/lib/gcloud/pubsub/policy.rb +204 -0
- data/lib/gcloud/pubsub/project.rb +26 -38
- data/lib/gcloud/pubsub/service.rb +39 -31
- data/lib/gcloud/pubsub/subscription.rb +56 -59
- data/lib/gcloud/pubsub/subscription/list.rb +4 -4
- data/lib/gcloud/pubsub/topic.rb +69 -66
- data/lib/gcloud/pubsub/topic/list.rb +0 -2
- data/lib/gcloud/pubsub/topic/{batch.rb → publisher.rb} +15 -2
- data/lib/gcloud/resource_manager.rb +27 -26
- data/lib/gcloud/resource_manager/manager.rb +19 -39
- data/lib/gcloud/resource_manager/policy.rb +211 -0
- data/lib/gcloud/resource_manager/project.rb +97 -121
- data/lib/gcloud/resource_manager/project/list.rb +7 -7
- data/lib/gcloud/resource_manager/project/updater.rb +4 -9
- data/lib/gcloud/resource_manager/service.rb +127 -0
- data/lib/gcloud/storage.rb +24 -42
- data/lib/gcloud/storage/bucket.rb +104 -192
- data/lib/gcloud/storage/bucket/acl.rb +47 -143
- data/lib/gcloud/storage/bucket/cors.rb +55 -11
- data/lib/gcloud/storage/bucket/list.rb +14 -14
- data/lib/gcloud/storage/errors.rb +3 -43
- data/lib/gcloud/storage/file.rb +114 -111
- data/lib/gcloud/storage/file/acl.rb +27 -113
- data/lib/gcloud/storage/file/list.rb +21 -21
- data/lib/gcloud/storage/project.rb +49 -59
- data/lib/gcloud/storage/service.rb +347 -0
- data/lib/gcloud/translate.rb +24 -14
- data/lib/gcloud/translate/api.rb +12 -21
- data/lib/gcloud/translate/detection.rb +5 -5
- data/lib/gcloud/translate/language.rb +1 -1
- data/lib/gcloud/translate/service.rb +80 -0
- data/lib/gcloud/translate/translation.rb +6 -6
- data/lib/gcloud/version.rb +1 -1
- data/lib/gcloud/vision.rb +24 -15
- data/lib/gcloud/vision/annotate.rb +24 -21
- data/lib/gcloud/vision/annotation.rb +9 -9
- data/lib/gcloud/vision/annotation/entity.rb +11 -11
- data/lib/gcloud/vision/annotation/face.rb +25 -25
- data/lib/gcloud/vision/annotation/properties.rb +8 -8
- data/lib/gcloud/vision/annotation/safe_search.rb +4 -4
- data/lib/gcloud/vision/annotation/text.rb +7 -7
- data/lib/gcloud/vision/annotation/vertex.rb +1 -1
- data/lib/gcloud/vision/image.rb +11 -11
- data/lib/gcloud/vision/location.rb +5 -2
- data/lib/gcloud/vision/project.rb +14 -16
- data/lib/gcloud/vision/service.rb +66 -0
- data/lib/google/api_client.rb +0 -0
- metadata +27 -24
- data/lib/gcloud/bigquery/connection.rb +0 -624
- data/lib/gcloud/bigquery/errors.rb +0 -68
- data/lib/gcloud/bigquery/table/schema.rb +0 -234
- data/lib/gcloud/dns/connection.rb +0 -173
- data/lib/gcloud/dns/errors.rb +0 -68
- data/lib/gcloud/resource_manager/connection.rb +0 -134
- data/lib/gcloud/resource_manager/errors.rb +0 -68
- data/lib/gcloud/storage/connection.rb +0 -444
- data/lib/gcloud/translate/connection.rb +0 -85
- data/lib/gcloud/translate/errors.rb +0 -68
- data/lib/gcloud/upload.rb +0 -95
- data/lib/gcloud/vision/connection.rb +0 -63
- data/lib/gcloud/vision/errors.rb +0 -69
@@ -14,9 +14,9 @@
|
|
14
14
|
|
15
15
|
|
16
16
|
require "gcloud/gce"
|
17
|
-
require "gcloud/
|
17
|
+
require "gcloud/errors"
|
18
|
+
require "gcloud/bigquery/service"
|
18
19
|
require "gcloud/bigquery/credentials"
|
19
|
-
require "gcloud/bigquery/errors"
|
20
20
|
require "gcloud/bigquery/dataset"
|
21
21
|
require "gcloud/bigquery/job"
|
22
22
|
require "gcloud/bigquery/query_data"
|
@@ -46,17 +46,15 @@ module Gcloud
|
|
46
46
|
#
|
47
47
|
class Project
|
48
48
|
##
|
49
|
-
# @private The
|
50
|
-
attr_accessor :
|
49
|
+
# @private The Service object.
|
50
|
+
attr_accessor :service
|
51
51
|
|
52
52
|
##
|
53
|
-
# Creates a new
|
53
|
+
# Creates a new Service instance.
|
54
54
|
#
|
55
55
|
# See {Gcloud.bigquery}
|
56
|
-
def initialize
|
57
|
-
|
58
|
-
fail ArgumentError, "project is missing" if project.empty?
|
59
|
-
@connection = Connection.new project, credentials
|
56
|
+
def initialize service
|
57
|
+
@service = service
|
60
58
|
end
|
61
59
|
|
62
60
|
##
|
@@ -71,7 +69,7 @@ module Gcloud
|
|
71
69
|
# bigquery.project #=> "my-todo-project"
|
72
70
|
#
|
73
71
|
def project
|
74
|
-
|
72
|
+
service.project
|
75
73
|
end
|
76
74
|
|
77
75
|
##
|
@@ -148,16 +146,12 @@ module Gcloud
|
|
148
146
|
def query_job query, priority: "INTERACTIVE", cache: true, table: nil,
|
149
147
|
create: nil, write: nil, large_results: nil, flatten: nil,
|
150
148
|
dataset: nil
|
151
|
-
|
149
|
+
ensure_service!
|
152
150
|
options = { priority: priority, cache: cache, table: table,
|
153
151
|
create: create, write: write, large_results: large_results,
|
154
152
|
flatten: flatten, dataset: dataset }
|
155
|
-
|
156
|
-
|
157
|
-
Job.from_gapi resp.data, connection
|
158
|
-
else
|
159
|
-
fail ApiError.from_response(resp)
|
160
|
-
end
|
153
|
+
gapi = service.query_job query, options
|
154
|
+
Job.from_gapi gapi, service
|
161
155
|
end
|
162
156
|
|
163
157
|
##
|
@@ -223,15 +217,11 @@ module Gcloud
|
|
223
217
|
#
|
224
218
|
def query query, max: nil, timeout: 10000, dryrun: nil, cache: true,
|
225
219
|
dataset: nil, project: nil
|
226
|
-
|
220
|
+
ensure_service!
|
227
221
|
options = { max: max, timeout: timeout, dryrun: dryrun, cache: cache,
|
228
222
|
dataset: dataset, project: project }
|
229
|
-
|
230
|
-
|
231
|
-
QueryData.from_gapi resp.data, connection
|
232
|
-
else
|
233
|
-
fail ApiError.from_response(resp)
|
234
|
-
end
|
223
|
+
gapi = service.query query, options
|
224
|
+
QueryData.from_gapi gapi, service
|
235
225
|
end
|
236
226
|
|
237
227
|
##
|
@@ -252,14 +242,11 @@ module Gcloud
|
|
252
242
|
# puts dataset.name
|
253
243
|
#
|
254
244
|
def dataset dataset_id
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
return nil if resp.status == 404
|
261
|
-
fail ApiError.from_response(resp)
|
262
|
-
end
|
245
|
+
ensure_service!
|
246
|
+
gapi = service.get_dataset dataset_id
|
247
|
+
Dataset.from_gapi gapi, service
|
248
|
+
rescue Gcloud::NotFoundError
|
249
|
+
nil
|
263
250
|
end
|
264
251
|
|
265
252
|
##
|
@@ -273,11 +260,6 @@ module Gcloud
|
|
273
260
|
# @param [Integer] expiration The default lifetime of all tables in the
|
274
261
|
# dataset, in milliseconds. The minimum value is 3600000 milliseconds
|
275
262
|
# (one hour).
|
276
|
-
# @param [Array<Hash>] access The access rules for a Dataset using the
|
277
|
-
# Google Cloud Datastore API data structure of an array of hashes. See
|
278
|
-
# [BigQuery Access
|
279
|
-
# Control](https://cloud.google.com/bigquery/access-control) for more
|
280
|
-
# information.
|
281
263
|
# @param [String] location The geographic location where the dataset
|
282
264
|
# should reside. Possible values include `EU` and `US`. The default
|
283
265
|
# value is `US`.
|
@@ -324,20 +306,29 @@ module Gcloud
|
|
324
306
|
# end
|
325
307
|
#
|
326
308
|
def create_dataset dataset_id, name: nil, description: nil,
|
327
|
-
expiration: nil,
|
309
|
+
expiration: nil, location: nil
|
310
|
+
ensure_service!
|
311
|
+
|
312
|
+
new_ds = Google::Apis::BigqueryV2::Dataset.new(
|
313
|
+
dataset_reference: Google::Apis::BigqueryV2::DatasetReference.new(
|
314
|
+
project_id: project, dataset_id: dataset_id))
|
315
|
+
|
316
|
+
# Can set location only on creation, no Dataset#location method
|
317
|
+
new_ds.update! location: location unless location.nil?
|
318
|
+
|
319
|
+
updater = Dataset::Updater.new(new_ds).tap do |b|
|
320
|
+
b.name = name unless name.nil?
|
321
|
+
b.description = description unless description.nil?
|
322
|
+
b.default_expiration = expiration unless expiration.nil?
|
323
|
+
end
|
324
|
+
|
328
325
|
if block_given?
|
329
|
-
|
330
|
-
|
331
|
-
yield access_builder
|
332
|
-
access = access_builder.access if access_builder.changed?
|
326
|
+
yield updater
|
327
|
+
updater.check_for_mutated_access!
|
333
328
|
end
|
334
329
|
|
335
|
-
|
336
|
-
|
337
|
-
expiration: expiration, access: access, location: location }
|
338
|
-
resp = connection.insert_dataset dataset_id, options
|
339
|
-
return Dataset.from_gapi(resp.data, connection) if resp.success?
|
340
|
-
fail ApiError.from_response(resp)
|
330
|
+
gapi = service.insert_dataset new_ds
|
331
|
+
Dataset.from_gapi gapi, service
|
341
332
|
end
|
342
333
|
|
343
334
|
##
|
@@ -383,14 +374,10 @@ module Gcloud
|
|
383
374
|
# end
|
384
375
|
#
|
385
376
|
def datasets all: nil, token: nil, max: nil
|
386
|
-
|
377
|
+
ensure_service!
|
387
378
|
options = { all: all, token: token, max: max }
|
388
|
-
|
389
|
-
|
390
|
-
Dataset::List.from_response resp, connection, all, max
|
391
|
-
else
|
392
|
-
fail ApiError.from_response(resp)
|
393
|
-
end
|
379
|
+
gapi = service.list_datasets options
|
380
|
+
Dataset::List.from_gapi gapi, service, all, max
|
394
381
|
end
|
395
382
|
|
396
383
|
##
|
@@ -410,14 +397,11 @@ module Gcloud
|
|
410
397
|
# job = bigquery.job "my_job"
|
411
398
|
#
|
412
399
|
def job job_id
|
413
|
-
|
414
|
-
|
415
|
-
|
416
|
-
|
417
|
-
|
418
|
-
return nil if resp.status == 404
|
419
|
-
fail ApiError.from_response(resp)
|
420
|
-
end
|
400
|
+
ensure_service!
|
401
|
+
gapi = service.get_job job_id
|
402
|
+
Job.from_gapi gapi, service
|
403
|
+
rescue Gcloud::NotFoundError
|
404
|
+
nil
|
421
405
|
end
|
422
406
|
|
423
407
|
##
|
@@ -473,22 +457,18 @@ module Gcloud
|
|
473
457
|
# end
|
474
458
|
#
|
475
459
|
def jobs all: nil, token: nil, max: nil, filter: nil
|
476
|
-
|
460
|
+
ensure_service!
|
477
461
|
options = { all: all, token: token, max: max, filter: filter }
|
478
|
-
|
479
|
-
|
480
|
-
Job::List.from_response resp, connection, all, max, filter
|
481
|
-
else
|
482
|
-
fail ApiError.from_response(resp)
|
483
|
-
end
|
462
|
+
gapi = service.list_jobs options
|
463
|
+
Job::List.from_gapi gapi, service, all, max, filter
|
484
464
|
end
|
485
465
|
|
486
466
|
protected
|
487
467
|
|
488
468
|
##
|
489
|
-
# Raise an error unless an active
|
490
|
-
def
|
491
|
-
fail "Must have active connection" unless
|
469
|
+
# Raise an error unless an active service is available.
|
470
|
+
def ensure_service!
|
471
|
+
fail "Must have active connection" unless service
|
492
472
|
end
|
493
473
|
end
|
494
474
|
end
|
@@ -13,6 +13,7 @@
|
|
13
13
|
# limitations under the License.
|
14
14
|
|
15
15
|
|
16
|
+
require "gcloud/bigquery/service"
|
16
17
|
require "gcloud/bigquery/data"
|
17
18
|
|
18
19
|
module Gcloud
|
@@ -23,8 +24,8 @@ module Gcloud
|
|
23
24
|
# Represents Data returned from a query a a list of name/value pairs.
|
24
25
|
class QueryData < Data
|
25
26
|
##
|
26
|
-
# @private The
|
27
|
-
attr_accessor :
|
27
|
+
# @private The Service object.
|
28
|
+
attr_accessor :service
|
28
29
|
|
29
30
|
# @private
|
30
31
|
def initialize arr = []
|
@@ -34,33 +35,32 @@ module Gcloud
|
|
34
35
|
|
35
36
|
# The total number of bytes processed for this query.
|
36
37
|
def total_bytes
|
37
|
-
@gapi
|
38
|
+
Integer @gapi.total_bytes_processed
|
39
|
+
rescue
|
40
|
+
nil
|
38
41
|
end
|
39
42
|
|
40
43
|
# Whether the query has completed or not. When data is present this will
|
41
44
|
# always be `true`. When `false`, `total` will not be available.
|
42
45
|
def complete?
|
43
|
-
@gapi
|
46
|
+
@gapi.job_complete
|
44
47
|
end
|
45
48
|
|
46
49
|
# Whether the query result was fetched from the query cache.
|
47
50
|
def cache_hit?
|
48
|
-
@gapi
|
51
|
+
@gapi.cache_hit
|
49
52
|
end
|
50
53
|
|
51
54
|
##
|
52
55
|
# The schema of the data.
|
53
56
|
def schema
|
54
|
-
|
55
|
-
s = s.to_hash if s.respond_to? :to_hash
|
56
|
-
s = {} if s.nil?
|
57
|
-
s
|
57
|
+
Schema.from_gapi(@gapi.schema).freeze
|
58
58
|
end
|
59
59
|
|
60
60
|
##
|
61
61
|
# The fields of the data.
|
62
62
|
def fields
|
63
|
-
f = schema
|
63
|
+
f = schema.fields
|
64
64
|
f = f.to_hash if f.respond_to? :to_hash
|
65
65
|
f = [] if f.nil?
|
66
66
|
f
|
@@ -69,7 +69,7 @@ module Gcloud
|
|
69
69
|
##
|
70
70
|
# The name of the columns in the data.
|
71
71
|
def headers
|
72
|
-
fields.map
|
72
|
+
fields.map(&:name)
|
73
73
|
end
|
74
74
|
|
75
75
|
##
|
@@ -112,13 +112,9 @@ module Gcloud
|
|
112
112
|
#
|
113
113
|
def next
|
114
114
|
return nil unless next?
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
QueryData.from_gapi resp.data, connection
|
119
|
-
else
|
120
|
-
fail ApiError.from_response(resp)
|
121
|
-
end
|
115
|
+
ensure_service!
|
116
|
+
gapi = service.job_query_results job_id, token: token
|
117
|
+
QueryData.from_gapi gapi, service
|
122
118
|
end
|
123
119
|
|
124
120
|
##
|
@@ -195,29 +191,26 @@ module Gcloud
|
|
195
191
|
def job
|
196
192
|
return @job if @job
|
197
193
|
return nil unless job?
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
return nil if resp.status == 404
|
204
|
-
fail ApiError.from_response(resp)
|
205
|
-
end
|
194
|
+
ensure_service!
|
195
|
+
gapi = service.get_job job_id
|
196
|
+
@job = Job.from_gapi gapi, service
|
197
|
+
rescue Gcloud::NotFoundError
|
198
|
+
nil
|
206
199
|
end
|
207
200
|
|
208
201
|
##
|
209
202
|
# @private New Data from a response object.
|
210
|
-
def self.from_gapi gapi,
|
211
|
-
if gapi
|
203
|
+
def self.from_gapi gapi, service
|
204
|
+
if gapi.schema.nil?
|
212
205
|
formatted_rows = []
|
213
206
|
else
|
214
|
-
formatted_rows = format_rows gapi
|
215
|
-
gapi
|
207
|
+
formatted_rows = format_rows gapi.rows,
|
208
|
+
gapi.schema.fields
|
216
209
|
end
|
217
210
|
|
218
211
|
data = new formatted_rows
|
219
212
|
data.gapi = gapi
|
220
|
-
data.
|
213
|
+
data.service = service
|
221
214
|
data
|
222
215
|
end
|
223
216
|
|
@@ -225,16 +218,16 @@ module Gcloud
|
|
225
218
|
|
226
219
|
##
|
227
220
|
# Raise an error unless an active connection is available.
|
228
|
-
def
|
229
|
-
fail "Must have active connection" unless
|
221
|
+
def ensure_service!
|
222
|
+
fail "Must have active connection" unless service
|
230
223
|
end
|
231
224
|
|
232
225
|
def job?
|
233
|
-
@gapi
|
226
|
+
@gapi.job_reference && @gapi.job_reference.job_id
|
234
227
|
end
|
235
228
|
|
236
229
|
def job_id
|
237
|
-
@gapi
|
230
|
+
@gapi.job_reference.job_id
|
238
231
|
end
|
239
232
|
end
|
240
233
|
end
|
@@ -13,6 +13,8 @@
|
|
13
13
|
# limitations under the License.
|
14
14
|
|
15
15
|
|
16
|
+
require "gcloud/bigquery/service"
|
17
|
+
|
16
18
|
module Gcloud
|
17
19
|
module Bigquery
|
18
20
|
##
|
@@ -30,14 +32,14 @@ module Gcloud
|
|
30
32
|
##
|
31
33
|
# Checks if the priority for the query is `BATCH`.
|
32
34
|
def batch?
|
33
|
-
val =
|
35
|
+
val = @gapi.configuration.query.priority
|
34
36
|
val == "BATCH"
|
35
37
|
end
|
36
38
|
|
37
39
|
##
|
38
40
|
# Checks if the priority for the query is `INTERACTIVE`.
|
39
41
|
def interactive?
|
40
|
-
val =
|
42
|
+
val = @gapi.configuration.query.priority
|
41
43
|
return true if val.nil?
|
42
44
|
val == "INTERACTIVE"
|
43
45
|
end
|
@@ -46,7 +48,7 @@ module Gcloud
|
|
46
48
|
# Checks if the the query job allows arbitrarily large results at a slight
|
47
49
|
# cost to performance.
|
48
50
|
def large_results?
|
49
|
-
val =
|
51
|
+
val = @gapi.configuration.query.allow_large_results
|
50
52
|
return false if val.nil?
|
51
53
|
val
|
52
54
|
end
|
@@ -56,7 +58,7 @@ module Gcloud
|
|
56
58
|
# For more information, see [Query
|
57
59
|
# Caching](https://cloud.google.com/bigquery/querying-data#querycaching).
|
58
60
|
def cache?
|
59
|
-
val =
|
61
|
+
val = @gapi.configuration.query.use_query_cache
|
60
62
|
return false if val.nil?
|
61
63
|
val
|
62
64
|
end
|
@@ -66,7 +68,7 @@ module Gcloud
|
|
66
68
|
# results. The default is `true`. If the value is `false`, #large_results?
|
67
69
|
# should return `true`.
|
68
70
|
def flatten?
|
69
|
-
val =
|
71
|
+
val = @gapi.configuration.query.flatten_results
|
70
72
|
return true if val.nil?
|
71
73
|
val
|
72
74
|
end
|
@@ -74,23 +76,25 @@ module Gcloud
|
|
74
76
|
##
|
75
77
|
# Checks if the query results are from the query cache.
|
76
78
|
def cache_hit?
|
77
|
-
|
79
|
+
@gapi.statistics.query.cache_hit
|
78
80
|
end
|
79
81
|
|
80
82
|
##
|
81
83
|
# The number of bytes processed by the query.
|
82
84
|
def bytes_processed
|
83
|
-
|
85
|
+
Integer @gapi.statistics.query.total_bytes_processed
|
86
|
+
rescue
|
87
|
+
nil
|
84
88
|
end
|
85
89
|
|
86
90
|
##
|
87
91
|
# The table in which the query results are stored.
|
88
92
|
def destination
|
89
|
-
table =
|
93
|
+
table = @gapi.configuration.query.destination_table
|
90
94
|
return nil unless table
|
91
|
-
retrieve_table table
|
92
|
-
table
|
93
|
-
table
|
95
|
+
retrieve_table table.project_id,
|
96
|
+
table.dataset_id,
|
97
|
+
table.table_id
|
94
98
|
end
|
95
99
|
|
96
100
|
##
|
@@ -123,14 +127,10 @@ module Gcloud
|
|
123
127
|
# data = data.next if data.next?
|
124
128
|
#
|
125
129
|
def query_results token: nil, max: nil, start: nil, timeout: nil
|
126
|
-
|
130
|
+
ensure_service!
|
127
131
|
options = { token: token, max: max, start: start, timeout: timeout }
|
128
|
-
|
129
|
-
|
130
|
-
QueryData.from_gapi resp.data, connection
|
131
|
-
else
|
132
|
-
fail ApiError.from_response(resp)
|
133
|
-
end
|
132
|
+
gapi = service.job_query_results job_id, options
|
133
|
+
QueryData.from_gapi gapi, service
|
134
134
|
end
|
135
135
|
end
|
136
136
|
end
|