gcloud 0.11.0 → 0.12.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/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
|
@@ -78,14 +78,10 @@ module Gcloud
|
|
|
78
78
|
#
|
|
79
79
|
def next
|
|
80
80
|
return nil unless next?
|
|
81
|
-
|
|
81
|
+
ensure_service!
|
|
82
82
|
options = { token: token, max: @max }
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
self.class.from_response resp, @connection, @dataset_id, @max
|
|
86
|
-
else
|
|
87
|
-
fail ApiError.from_response(resp)
|
|
88
|
-
end
|
|
83
|
+
gapi = @service.list_tables @dataset_id, options
|
|
84
|
+
self.class.from_gapi gapi, @service, @dataset_id, @max
|
|
89
85
|
end
|
|
90
86
|
|
|
91
87
|
##
|
|
@@ -158,25 +154,25 @@ module Gcloud
|
|
|
158
154
|
|
|
159
155
|
##
|
|
160
156
|
# @private New Table::List from a response object.
|
|
161
|
-
def self.
|
|
162
|
-
tables = List.new(Array(
|
|
163
|
-
Table.from_gapi gapi_object,
|
|
157
|
+
def self.from_gapi gapi_list, service, dataset_id = nil, max = nil
|
|
158
|
+
tables = List.new(Array(gapi_list.tables).map do |gapi_object|
|
|
159
|
+
Table.from_gapi gapi_object, service
|
|
164
160
|
end)
|
|
165
|
-
tables.instance_variable_set
|
|
166
|
-
tables.instance_variable_set
|
|
167
|
-
tables.instance_variable_set
|
|
168
|
-
tables.instance_variable_set
|
|
169
|
-
tables.instance_variable_set
|
|
170
|
-
tables.instance_variable_set
|
|
161
|
+
tables.instance_variable_set :@token, gapi_list.next_page_token
|
|
162
|
+
tables.instance_variable_set :@etag, gapi_list.etag
|
|
163
|
+
tables.instance_variable_set :@total, gapi_list.total_items
|
|
164
|
+
tables.instance_variable_set :@service, service
|
|
165
|
+
tables.instance_variable_set :@dataset_id, dataset_id
|
|
166
|
+
tables.instance_variable_set :@max, max
|
|
171
167
|
tables
|
|
172
168
|
end
|
|
173
169
|
|
|
174
170
|
protected
|
|
175
171
|
|
|
176
172
|
##
|
|
177
|
-
# Raise an error unless an active
|
|
178
|
-
def
|
|
179
|
-
fail "Must have active connection" unless @
|
|
173
|
+
# Raise an error unless an active service is available.
|
|
174
|
+
def ensure_service!
|
|
175
|
+
fail "Must have active connection" unless @service
|
|
180
176
|
end
|
|
181
177
|
end
|
|
182
178
|
end
|
data/lib/gcloud/bigquery/view.rb
CHANGED
|
@@ -13,9 +13,11 @@
|
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
|
|
15
15
|
|
|
16
|
+
require "gcloud/errors"
|
|
17
|
+
require "gcloud/bigquery/service"
|
|
16
18
|
require "gcloud/bigquery/data"
|
|
17
19
|
require "gcloud/bigquery/table/list"
|
|
18
|
-
require "
|
|
20
|
+
require "google/apis/bigquery_v2"
|
|
19
21
|
|
|
20
22
|
module Gcloud
|
|
21
23
|
module Bigquery
|
|
@@ -41,8 +43,8 @@ module Gcloud
|
|
|
41
43
|
#
|
|
42
44
|
class View
|
|
43
45
|
##
|
|
44
|
-
# @private The
|
|
45
|
-
attr_accessor :
|
|
46
|
+
# @private The Service object.
|
|
47
|
+
attr_accessor :service
|
|
46
48
|
|
|
47
49
|
##
|
|
48
50
|
# @private The Google API Client object.
|
|
@@ -51,8 +53,8 @@ module Gcloud
|
|
|
51
53
|
##
|
|
52
54
|
# @private Create an empty Table object.
|
|
53
55
|
def initialize
|
|
54
|
-
@
|
|
55
|
-
@gapi =
|
|
56
|
+
@service = nil
|
|
57
|
+
@gapi = Google::Apis::BigqueryV2::Table.new
|
|
56
58
|
end
|
|
57
59
|
|
|
58
60
|
##
|
|
@@ -63,7 +65,7 @@ module Gcloud
|
|
|
63
65
|
# @!group Attributes
|
|
64
66
|
#
|
|
65
67
|
def table_id
|
|
66
|
-
@gapi
|
|
68
|
+
@gapi.table_reference.table_id
|
|
67
69
|
end
|
|
68
70
|
|
|
69
71
|
##
|
|
@@ -72,7 +74,7 @@ module Gcloud
|
|
|
72
74
|
# @!group Attributes
|
|
73
75
|
#
|
|
74
76
|
def dataset_id
|
|
75
|
-
@gapi
|
|
77
|
+
@gapi.table_reference.dataset_id
|
|
76
78
|
end
|
|
77
79
|
|
|
78
80
|
##
|
|
@@ -81,7 +83,7 @@ module Gcloud
|
|
|
81
83
|
# @!group Attributes
|
|
82
84
|
#
|
|
83
85
|
def project_id
|
|
84
|
-
@gapi
|
|
86
|
+
@gapi.table_reference.project_id
|
|
85
87
|
end
|
|
86
88
|
|
|
87
89
|
##
|
|
@@ -89,27 +91,63 @@ module Gcloud
|
|
|
89
91
|
# The gapi fragment containing the Project ID, Dataset ID, and Table ID as
|
|
90
92
|
# a camel-cased hash.
|
|
91
93
|
def table_ref
|
|
92
|
-
table_ref = @gapi
|
|
94
|
+
table_ref = @gapi.table_reference
|
|
93
95
|
table_ref = table_ref.to_hash if table_ref.respond_to? :to_hash
|
|
94
96
|
table_ref
|
|
95
97
|
end
|
|
96
98
|
|
|
99
|
+
##
|
|
100
|
+
# The combined Project ID, Dataset ID, and Table ID for this table, in the
|
|
101
|
+
# format specified by the [Query
|
|
102
|
+
# Reference](https://cloud.google.com/bigquery/query-reference#from):
|
|
103
|
+
# `project_name:datasetId.tableId`. To use this value in queries see
|
|
104
|
+
# {#query_id}.
|
|
105
|
+
#
|
|
106
|
+
# @!group Attributes
|
|
107
|
+
#
|
|
108
|
+
def id
|
|
109
|
+
@gapi.id
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
##
|
|
113
|
+
# The value returned by {#id}, wrapped in square brackets if the Project
|
|
114
|
+
# ID contains dashes, as specified by the [Query
|
|
115
|
+
# Reference](https://cloud.google.com/bigquery/query-reference#from).
|
|
116
|
+
# Useful in queries.
|
|
117
|
+
#
|
|
118
|
+
# @example
|
|
119
|
+
# require "gcloud"
|
|
120
|
+
#
|
|
121
|
+
# gcloud = Gcloud.new
|
|
122
|
+
# bigquery = gcloud.bigquery
|
|
123
|
+
# dataset = bigquery.dataset "my_dataset"
|
|
124
|
+
# table = dataset.table "my_table"
|
|
125
|
+
#
|
|
126
|
+
# data = bigquery.query "SELECT name FROM #{table.query_id}"
|
|
127
|
+
#
|
|
128
|
+
# @!group Attributes
|
|
129
|
+
#
|
|
130
|
+
def query_id
|
|
131
|
+
project_id["-"] ? "[#{id}]" : id
|
|
132
|
+
end
|
|
133
|
+
|
|
97
134
|
##
|
|
98
135
|
# The name of the table.
|
|
99
136
|
#
|
|
100
137
|
# @!group Attributes
|
|
101
138
|
#
|
|
102
139
|
def name
|
|
103
|
-
@gapi
|
|
140
|
+
@gapi.friendly_name
|
|
104
141
|
end
|
|
105
142
|
|
|
106
143
|
##
|
|
107
144
|
# Updates the name of the table.
|
|
108
145
|
#
|
|
109
|
-
# @!group
|
|
146
|
+
# @!group Attributes
|
|
110
147
|
#
|
|
111
148
|
def name= new_name
|
|
112
|
-
|
|
149
|
+
@gapi.update! friendly_name: new_name
|
|
150
|
+
patch_gapi! :friendly_name
|
|
113
151
|
end
|
|
114
152
|
|
|
115
153
|
##
|
|
@@ -119,7 +157,7 @@ module Gcloud
|
|
|
119
157
|
#
|
|
120
158
|
def etag
|
|
121
159
|
ensure_full_data!
|
|
122
|
-
@gapi
|
|
160
|
+
@gapi.etag
|
|
123
161
|
end
|
|
124
162
|
|
|
125
163
|
##
|
|
@@ -129,7 +167,7 @@ module Gcloud
|
|
|
129
167
|
#
|
|
130
168
|
def api_url
|
|
131
169
|
ensure_full_data!
|
|
132
|
-
@gapi
|
|
170
|
+
@gapi.self_link
|
|
133
171
|
end
|
|
134
172
|
|
|
135
173
|
##
|
|
@@ -139,16 +177,17 @@ module Gcloud
|
|
|
139
177
|
#
|
|
140
178
|
def description
|
|
141
179
|
ensure_full_data!
|
|
142
|
-
@gapi
|
|
180
|
+
@gapi.description
|
|
143
181
|
end
|
|
144
182
|
|
|
145
183
|
##
|
|
146
184
|
# Updates the description of the table.
|
|
147
185
|
#
|
|
148
|
-
# @!group
|
|
186
|
+
# @!group Attributes
|
|
149
187
|
#
|
|
150
188
|
def description= new_description
|
|
151
|
-
|
|
189
|
+
@gapi.update! description: new_description
|
|
190
|
+
patch_gapi! :description
|
|
152
191
|
end
|
|
153
192
|
|
|
154
193
|
##
|
|
@@ -158,7 +197,11 @@ module Gcloud
|
|
|
158
197
|
#
|
|
159
198
|
def created_at
|
|
160
199
|
ensure_full_data!
|
|
161
|
-
|
|
200
|
+
begin
|
|
201
|
+
Time.at(Integer(@gapi.creation_time) / 1000.0)
|
|
202
|
+
rescue
|
|
203
|
+
nil
|
|
204
|
+
end
|
|
162
205
|
end
|
|
163
206
|
|
|
164
207
|
##
|
|
@@ -170,8 +213,11 @@ module Gcloud
|
|
|
170
213
|
#
|
|
171
214
|
def expires_at
|
|
172
215
|
ensure_full_data!
|
|
173
|
-
|
|
174
|
-
|
|
216
|
+
begin
|
|
217
|
+
Time.at(Integer(@gapi.expiration_time) / 1000.0)
|
|
218
|
+
rescue
|
|
219
|
+
nil
|
|
220
|
+
end
|
|
175
221
|
end
|
|
176
222
|
|
|
177
223
|
##
|
|
@@ -181,7 +227,11 @@ module Gcloud
|
|
|
181
227
|
#
|
|
182
228
|
def modified_at
|
|
183
229
|
ensure_full_data!
|
|
184
|
-
|
|
230
|
+
begin
|
|
231
|
+
Time.at(Integer(@gapi.last_modified_time) / 1000.0)
|
|
232
|
+
rescue
|
|
233
|
+
nil
|
|
234
|
+
end
|
|
185
235
|
end
|
|
186
236
|
|
|
187
237
|
##
|
|
@@ -190,7 +240,7 @@ module Gcloud
|
|
|
190
240
|
# @!group Attributes
|
|
191
241
|
#
|
|
192
242
|
def table?
|
|
193
|
-
@gapi
|
|
243
|
+
@gapi.type == "TABLE"
|
|
194
244
|
end
|
|
195
245
|
|
|
196
246
|
##
|
|
@@ -199,7 +249,7 @@ module Gcloud
|
|
|
199
249
|
# @!group Attributes
|
|
200
250
|
#
|
|
201
251
|
def view?
|
|
202
|
-
@gapi
|
|
252
|
+
@gapi.type == "VIEW"
|
|
203
253
|
end
|
|
204
254
|
|
|
205
255
|
##
|
|
@@ -210,41 +260,35 @@ module Gcloud
|
|
|
210
260
|
#
|
|
211
261
|
def location
|
|
212
262
|
ensure_full_data!
|
|
213
|
-
@gapi
|
|
263
|
+
@gapi.location
|
|
214
264
|
end
|
|
215
265
|
|
|
216
266
|
##
|
|
217
|
-
# The schema of the
|
|
267
|
+
# The schema of the view.
|
|
218
268
|
#
|
|
219
269
|
# @!group Attributes
|
|
220
270
|
#
|
|
221
271
|
def schema
|
|
222
272
|
ensure_full_data!
|
|
223
|
-
|
|
224
|
-
s = s.to_hash if s.respond_to? :to_hash
|
|
225
|
-
s = {} if s.nil?
|
|
226
|
-
s
|
|
273
|
+
Schema.from_gapi(@gapi.schema).freeze
|
|
227
274
|
end
|
|
228
275
|
|
|
229
276
|
##
|
|
230
|
-
# The fields of the
|
|
277
|
+
# The fields of the view.
|
|
231
278
|
#
|
|
232
279
|
# @!group Attributes
|
|
233
280
|
#
|
|
234
281
|
def fields
|
|
235
|
-
|
|
236
|
-
f = f.to_hash if f.respond_to? :to_hash
|
|
237
|
-
f = [] if f.nil?
|
|
238
|
-
f
|
|
282
|
+
schema.fields
|
|
239
283
|
end
|
|
240
284
|
|
|
241
285
|
##
|
|
242
|
-
# The names of the columns in the
|
|
286
|
+
# The names of the columns in the view.
|
|
243
287
|
#
|
|
244
288
|
# @!group Attributes
|
|
245
289
|
#
|
|
246
290
|
def headers
|
|
247
|
-
fields.map
|
|
291
|
+
fields.map(&:name)
|
|
248
292
|
end
|
|
249
293
|
|
|
250
294
|
##
|
|
@@ -253,7 +297,7 @@ module Gcloud
|
|
|
253
297
|
# @!group Attributes
|
|
254
298
|
#
|
|
255
299
|
def query
|
|
256
|
-
@gapi
|
|
300
|
+
@gapi.view.query if @gapi.view
|
|
257
301
|
end
|
|
258
302
|
|
|
259
303
|
##
|
|
@@ -277,7 +321,9 @@ module Gcloud
|
|
|
277
321
|
# @!group Lifecycle
|
|
278
322
|
#
|
|
279
323
|
def query= new_query
|
|
280
|
-
|
|
324
|
+
@gapi.view ||= Google::Apis::BigqueryV2::ViewDefinition.new
|
|
325
|
+
@gapi.view.update! query: new_query
|
|
326
|
+
patch_view_gapi! :query
|
|
281
327
|
end
|
|
282
328
|
|
|
283
329
|
##
|
|
@@ -323,16 +369,12 @@ module Gcloud
|
|
|
323
369
|
#
|
|
324
370
|
# @!group Data
|
|
325
371
|
#
|
|
326
|
-
def data max: nil, timeout:
|
|
327
|
-
sql = "SELECT * FROM #{
|
|
328
|
-
|
|
372
|
+
def data max: nil, timeout: 10000, cache: true, dryrun: nil
|
|
373
|
+
sql = "SELECT * FROM #{query_id}"
|
|
374
|
+
ensure_service!
|
|
329
375
|
options = { max: max, timeout: timeout, cache: cache, dryrun: dryrun }
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
QueryData.from_gapi resp.data, connection
|
|
333
|
-
else
|
|
334
|
-
fail ApiError.from_response(resp)
|
|
335
|
-
end
|
|
376
|
+
gapi = service.query sql, options
|
|
377
|
+
QueryData.from_gapi gapi, service
|
|
336
378
|
end
|
|
337
379
|
|
|
338
380
|
##
|
|
@@ -353,13 +395,9 @@ module Gcloud
|
|
|
353
395
|
# @!group Lifecycle
|
|
354
396
|
#
|
|
355
397
|
def delete
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
true
|
|
360
|
-
else
|
|
361
|
-
fail ApiError.from_response(resp)
|
|
362
|
-
end
|
|
398
|
+
ensure_service!
|
|
399
|
+
service.delete_table dataset_id, table_id
|
|
400
|
+
true
|
|
363
401
|
end
|
|
364
402
|
|
|
365
403
|
##
|
|
@@ -368,13 +406,9 @@ module Gcloud
|
|
|
368
406
|
# @!group Lifecycle
|
|
369
407
|
#
|
|
370
408
|
def reload!
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
@gapi = resp.data
|
|
375
|
-
else
|
|
376
|
-
fail ApiError.from_response(resp)
|
|
377
|
-
end
|
|
409
|
+
ensure_service!
|
|
410
|
+
gapi = service.get_table dataset_id, table_id
|
|
411
|
+
@gapi = gapi
|
|
378
412
|
end
|
|
379
413
|
alias_method :refresh!, :reload!
|
|
380
414
|
|
|
@@ -383,26 +417,41 @@ module Gcloud
|
|
|
383
417
|
def self.from_gapi gapi, conn
|
|
384
418
|
new.tap do |f|
|
|
385
419
|
f.gapi = gapi
|
|
386
|
-
f.
|
|
420
|
+
f.service = conn
|
|
387
421
|
end
|
|
388
422
|
end
|
|
389
423
|
|
|
390
424
|
protected
|
|
391
425
|
|
|
392
426
|
##
|
|
393
|
-
# Raise an error unless an active
|
|
394
|
-
def
|
|
395
|
-
fail "Must have active connection" unless
|
|
427
|
+
# Raise an error unless an active service is available.
|
|
428
|
+
def ensure_service!
|
|
429
|
+
fail "Must have active connection" unless service
|
|
396
430
|
end
|
|
397
431
|
|
|
398
|
-
def patch_gapi!
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
432
|
+
def patch_gapi! *attributes
|
|
433
|
+
return if attributes.empty?
|
|
434
|
+
patch_args = Hash[attributes.map do |attr|
|
|
435
|
+
[attr, @gapi.send(attr)]
|
|
436
|
+
end]
|
|
437
|
+
patch_table_gapi patch_args
|
|
438
|
+
end
|
|
439
|
+
|
|
440
|
+
def patch_view_gapi! *attributes
|
|
441
|
+
return if attributes.empty?
|
|
442
|
+
patch_args = Hash[attributes.map do |attr|
|
|
443
|
+
[attr, @gapi.view.send(attr)]
|
|
444
|
+
end]
|
|
445
|
+
patch_view_args = Google::Apis::BigqueryV2::ViewDefinition.new(
|
|
446
|
+
patch_args
|
|
447
|
+
)
|
|
448
|
+
patch_table_gapi view: patch_view_args
|
|
449
|
+
end
|
|
450
|
+
|
|
451
|
+
def patch_table_gapi patch_args
|
|
452
|
+
ensure_service!
|
|
453
|
+
patch_gapi = Google::Apis::BigqueryV2::Table.new patch_args
|
|
454
|
+
@gapi = service.patch_table dataset_id, table_id, patch_gapi
|
|
406
455
|
end
|
|
407
456
|
|
|
408
457
|
##
|
|
@@ -413,17 +462,13 @@ module Gcloud
|
|
|
413
462
|
end
|
|
414
463
|
|
|
415
464
|
def reload_gapi!
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
@gapi = resp.data
|
|
420
|
-
else
|
|
421
|
-
fail ApiError.from_response(resp)
|
|
422
|
-
end
|
|
465
|
+
ensure_service!
|
|
466
|
+
gapi = service.get_table dataset_id, table_id
|
|
467
|
+
@gapi = gapi
|
|
423
468
|
end
|
|
424
469
|
|
|
425
470
|
def data_complete?
|
|
426
|
-
|
|
471
|
+
@gapi.is_a? Google::Apis::BigqueryV2::Table
|
|
427
472
|
end
|
|
428
473
|
end
|
|
429
474
|
end
|