google-cloud-bigtable 0.6.1 → 1.0.1
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 +4 -4
- data/AUTHENTICATION.md +4 -26
- data/CHANGELOG.md +85 -0
- data/CONTRIBUTING.md +1 -1
- data/OVERVIEW.md +388 -19
- data/lib/google-cloud-bigtable.rb +19 -22
- data/lib/google/bigtable/admin/v2/bigtable_table_admin_services_pb.rb +1 -1
- data/lib/google/bigtable/v2/bigtable_pb.rb +3 -0
- data/lib/google/bigtable/v2/bigtable_services_pb.rb +1 -1
- data/lib/google/cloud/bigtable.rb +11 -17
- data/lib/google/cloud/bigtable/admin.rb +1 -1
- data/lib/google/cloud/bigtable/admin/v2.rb +1 -1
- data/lib/google/cloud/bigtable/admin/v2/bigtable_table_admin_client.rb +1 -1
- data/lib/google/cloud/bigtable/admin/v2/doc/google/iam/v1/policy.rb +42 -21
- data/lib/google/cloud/bigtable/app_profile.rb +162 -96
- data/lib/google/cloud/bigtable/app_profile/job.rb +5 -8
- data/lib/google/cloud/bigtable/app_profile/list.rb +18 -12
- data/lib/google/cloud/bigtable/chunk_processor.rb +24 -36
- data/lib/google/cloud/bigtable/cluster.rb +45 -18
- data/lib/google/cloud/bigtable/cluster/job.rb +3 -7
- data/lib/google/cloud/bigtable/cluster/list.rb +22 -20
- data/lib/google/cloud/bigtable/column_family.rb +18 -231
- data/lib/google/cloud/bigtable/column_family_map.rb +426 -0
- data/lib/google/cloud/bigtable/column_range.rb +15 -7
- data/lib/google/cloud/bigtable/convert.rb +12 -4
- data/lib/google/cloud/bigtable/errors.rb +4 -1
- data/lib/google/cloud/bigtable/gc_rule.rb +188 -69
- data/lib/google/cloud/bigtable/instance.rb +209 -189
- data/lib/google/cloud/bigtable/instance/cluster_map.rb +17 -13
- data/lib/google/cloud/bigtable/instance/job.rb +6 -5
- data/lib/google/cloud/bigtable/instance/list.rb +18 -13
- data/lib/google/cloud/bigtable/longrunning_job.rb +7 -1
- data/lib/google/cloud/bigtable/mutation_entry.rb +36 -39
- data/lib/google/cloud/bigtable/mutation_operations.rb +90 -73
- data/lib/google/cloud/bigtable/policy.rb +9 -5
- data/lib/google/cloud/bigtable/project.rb +87 -196
- data/lib/google/cloud/bigtable/read_modify_write_rule.rb +15 -10
- data/lib/google/cloud/bigtable/read_operations.rb +42 -59
- data/lib/google/cloud/bigtable/routing_policy.rb +172 -0
- data/lib/google/cloud/bigtable/row.rb +32 -21
- data/lib/google/cloud/bigtable/row_filter.rb +80 -35
- data/lib/google/cloud/bigtable/row_filter/chain_filter.rb +119 -68
- data/lib/google/cloud/bigtable/row_filter/condition_filter.rb +8 -2
- data/lib/google/cloud/bigtable/row_filter/interleave_filter.rb +117 -66
- data/lib/google/cloud/bigtable/row_filter/simple_filter.rb +24 -9
- data/lib/google/cloud/bigtable/row_range.rb +5 -0
- data/lib/google/cloud/bigtable/rows_mutator.rb +14 -21
- data/lib/google/cloud/bigtable/rows_reader.rb +23 -18
- data/lib/google/cloud/bigtable/sample_row_key.rb +6 -3
- data/lib/google/cloud/bigtable/service.rb +200 -253
- data/lib/google/cloud/bigtable/status.rb +76 -0
- data/lib/google/cloud/bigtable/table.rb +158 -262
- data/lib/google/cloud/bigtable/table/cluster_state.rb +17 -6
- data/lib/google/cloud/bigtable/table/list.rb +16 -9
- data/lib/google/cloud/bigtable/v2.rb +1 -1
- data/lib/google/cloud/bigtable/v2/bigtable_client.rb +12 -12
- data/lib/google/cloud/bigtable/v2/doc/google/bigtable/v2/bigtable.rb +16 -13
- data/lib/google/cloud/bigtable/value_range.rb +19 -13
- data/lib/google/cloud/bigtable/version.rb +1 -1
- metadata +67 -25
- data/lib/google/cloud/bigtable/table/column_family_map.rb +0 -70
@@ -35,30 +35,25 @@ module Google
|
|
35
35
|
# Creates a new Service instance.
|
36
36
|
#
|
37
37
|
# @param project_id [String] Project identifier
|
38
|
-
# @param credentials [Google::Auth::Credentials, String, Hash, GRPC::Core::Channel,
|
39
|
-
#
|
40
|
-
# be one of the following types.
|
41
|
-
# `Google::Auth::Credentials` uses the properties of its represented keyfile for
|
42
|
-
#
|
43
|
-
# `String` will be treated as the path to the keyfile to use to construct
|
44
|
-
# credentials for this client.
|
45
|
-
# `Hash` will be treated as the contents of a keyfile to use to construct
|
46
|
-
# credentials for this client.
|
38
|
+
# @param credentials [Google::Auth::Credentials, String, Hash, GRPC::Core::Channel,
|
39
|
+
# GRPC::Core::ChannelCredentials, Proc]
|
40
|
+
# The means for authenticating requests made by the client. This parameter can be one of the following types.
|
41
|
+
# `Google::Auth::Credentials` uses the properties of its represented keyfile for authenticating requests made
|
42
|
+
# by this client.
|
43
|
+
# `String` will be treated as the path to the keyfile to use to construct credentials for this client.
|
44
|
+
# `Hash` will be treated as the contents of a keyfile to use to construct credentials for this client.
|
47
45
|
# `GRPC::Core::Channel` will be used to make calls through.
|
48
|
-
# `GRPC::Core::ChannelCredentials` will be used to set up the gRPC client. The channel credentials
|
49
|
-
#
|
50
|
-
# `Proc` will be used as an updater_proc for the gRPC channel. The proc transforms the
|
51
|
-
#
|
46
|
+
# `GRPC::Core::ChannelCredentials` will be used to set up the gRPC client. The channel credentials should
|
47
|
+
# already be composed with a `GRPC::Core::CallCredentials` object.
|
48
|
+
# `Proc` will be used as an updater_proc for the gRPC channel. The proc transforms the metadata for requests,
|
49
|
+
# generally, to give OAuth credentials.
|
52
50
|
# @param timeout [Integer]
|
53
51
|
# The default timeout, in seconds, for calls made through this client.
|
54
52
|
# @param client_config [Hash]
|
55
|
-
# A hash for call options for each method.
|
56
|
-
#
|
57
|
-
#
|
58
|
-
|
59
|
-
|
60
|
-
def initialize project_id, credentials, host: nil, timeout: nil,
|
61
|
-
client_config: nil
|
53
|
+
# A hash for call options for each method. See Google::Gax#construct_settings for the structure of this data.
|
54
|
+
# Falls back to the default config if not specified or the specified config is missing data points.
|
55
|
+
#
|
56
|
+
def initialize project_id, credentials, host: nil, timeout: nil, client_config: nil
|
62
57
|
@project_id = project_id
|
63
58
|
@credentials = credentials
|
64
59
|
@host = host
|
@@ -72,74 +67,73 @@ module Google
|
|
72
67
|
end
|
73
68
|
|
74
69
|
def chan_args
|
75
|
-
{ "grpc.max_send_message_length"
|
76
|
-
"grpc.max_receive_message_length"
|
70
|
+
{ "grpc.max_send_message_length" => -1,
|
71
|
+
"grpc.max_receive_message_length" => -1,
|
77
72
|
"grpc.service_config_disable_resolution" => 1 }
|
78
73
|
end
|
79
74
|
|
80
75
|
def chan_creds
|
81
76
|
return credentials if insecure?
|
82
77
|
require "grpc"
|
83
|
-
GRPC::Core::ChannelCredentials.new.compose
|
84
|
-
GRPC::Core::CallCredentials.new credentials.client.updater_proc
|
78
|
+
GRPC::Core::ChannelCredentials.new.compose GRPC::Core::CallCredentials.new credentials.client.updater_proc
|
85
79
|
end
|
86
80
|
|
81
|
+
##
|
87
82
|
# Creates or returns an instance of an instance admin client.
|
88
83
|
#
|
89
84
|
# @return [Google::Cloud::Bigtable::Admin::V2::BigtableInstanceAdminClient]
|
90
|
-
|
85
|
+
#
|
91
86
|
def instances
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
lib_name: "gccl",
|
101
|
-
lib_version: Google::Cloud::Bigtable::VERSION
|
102
|
-
)
|
103
|
-
end
|
87
|
+
return mocked_instances if mocked_instances
|
88
|
+
@instances ||= Admin::V2::BigtableInstanceAdminClient.new(
|
89
|
+
credentials: channel(Admin::V2::BigtableInstanceAdminClient::SERVICE_ADDRESS),
|
90
|
+
timeout: timeout,
|
91
|
+
client_config: client_config,
|
92
|
+
lib_name: "gccl",
|
93
|
+
lib_version: Google::Cloud::Bigtable::VERSION
|
94
|
+
)
|
104
95
|
end
|
96
|
+
attr_accessor :mocked_instances
|
105
97
|
|
98
|
+
##
|
106
99
|
# Creates or returns an instance of a table admin client.
|
107
100
|
#
|
108
101
|
# @return [Google::Cloud::Bigtable::Admin::V2::BigtableTableAdminClient]
|
109
|
-
|
102
|
+
#
|
110
103
|
def tables
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
lib_name: "gccl",
|
120
|
-
lib_version: Google::Cloud::Bigtable::VERSION
|
121
|
-
)
|
122
|
-
end
|
104
|
+
return mocked_tables if mocked_tables
|
105
|
+
@tables ||= Admin::V2::BigtableTableAdminClient.new(
|
106
|
+
credentials: channel(Admin::V2::BigtableTableAdminClient::SERVICE_ADDRESS),
|
107
|
+
timeout: timeout,
|
108
|
+
client_config: client_config,
|
109
|
+
lib_name: "gccl",
|
110
|
+
lib_version: Google::Cloud::Bigtable::VERSION
|
111
|
+
)
|
123
112
|
end
|
113
|
+
attr_accessor :mocked_tables
|
124
114
|
|
115
|
+
##
|
125
116
|
# Creates an instance of a data client.
|
126
117
|
#
|
127
118
|
# @return [Google::Cloud::Bigtable::V2::BigtableClient]
|
128
|
-
|
119
|
+
#
|
129
120
|
def client
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
121
|
+
return mocked_client if mocked_client
|
122
|
+
@client ||= V2::BigtableClient.new(
|
123
|
+
credentials: channel(V2::BigtableClient::SERVICE_ADDRESS),
|
124
|
+
timeout: timeout,
|
125
|
+
client_config: client_config,
|
126
|
+
lib_name: "gccl",
|
127
|
+
lib_version: Google::Cloud::Bigtable::VERSION
|
128
|
+
)
|
138
129
|
end
|
130
|
+
attr_accessor :mocked_client
|
139
131
|
|
140
132
|
def insecure?
|
141
133
|
credentials == :this_channel_is_insecure
|
142
134
|
end
|
135
|
+
|
136
|
+
##
|
143
137
|
# Creates an instance within a project.
|
144
138
|
#
|
145
139
|
# @param instance_id [String]
|
@@ -153,50 +147,40 @@ module Google
|
|
153
147
|
# +projects/myproject/instances/myinstance/clusters/mycluster+.
|
154
148
|
# Alternatively, provide a hash in the form of `Google::Bigtable::Admin::V2::Cluster`
|
155
149
|
# @return [Google::Gax::Operation]
|
156
|
-
|
157
|
-
def create_instance
|
158
|
-
instance_id,
|
159
|
-
instance,
|
160
|
-
clusters
|
150
|
+
#
|
151
|
+
def create_instance instance_id, instance, clusters
|
161
152
|
execute do
|
162
|
-
instances.create_instance
|
163
|
-
project_path,
|
164
|
-
instance_id,
|
165
|
-
instance,
|
166
|
-
clusters
|
167
|
-
)
|
153
|
+
instances.create_instance project_path, instance_id, instance, clusters
|
168
154
|
end
|
169
155
|
end
|
170
156
|
|
157
|
+
##
|
171
158
|
# Lists the instances in a project.
|
172
159
|
#
|
173
160
|
# @param token [String]
|
174
161
|
# The value of +next_page_token+ returned by a previous call.
|
175
162
|
# @return [Google::Bigtable::Admin::V2::ListInstancesResponse]
|
176
|
-
|
163
|
+
#
|
177
164
|
def list_instances token: nil
|
178
165
|
execute do
|
179
|
-
instances.list_instances
|
180
|
-
project_path,
|
181
|
-
page_token: token
|
182
|
-
)
|
166
|
+
instances.list_instances project_path, page_token: token
|
183
167
|
end
|
184
168
|
end
|
185
169
|
|
170
|
+
##
|
186
171
|
# Gets information about an instance.
|
187
172
|
#
|
188
173
|
# @param instance_id [String]
|
189
174
|
# Unique ID of the requested instance.
|
190
175
|
# @return [Google::Bigtable::Admin::V2::Instance]
|
191
|
-
|
176
|
+
#
|
192
177
|
def get_instance instance_id
|
193
178
|
execute do
|
194
|
-
instances.get_instance(
|
195
|
-
instance_path(instance_id)
|
196
|
-
)
|
179
|
+
instances.get_instance instance_path(instance_id)
|
197
180
|
end
|
198
181
|
end
|
199
182
|
|
183
|
+
##
|
200
184
|
# Partially updates an instance.
|
201
185
|
#
|
202
186
|
# @param instance [Google::Bigtable::Admin::V2::Instance | Hash]
|
@@ -207,18 +191,19 @@ module Google
|
|
207
191
|
# Must be explicitly set.
|
208
192
|
# Alternatively, provide a hash in the form of `Google::Protobuf::FieldMask`.
|
209
193
|
# @return [Google::Gax::Operation]
|
210
|
-
|
194
|
+
#
|
211
195
|
def partial_update_instance instance, update_mask
|
212
196
|
execute do
|
213
|
-
instances.partial_update_instance
|
197
|
+
instances.partial_update_instance instance, update_mask
|
214
198
|
end
|
215
199
|
end
|
216
200
|
|
201
|
+
##
|
217
202
|
# Deletes an instance from a project.
|
218
203
|
#
|
219
204
|
# @param instance_id [String]
|
220
205
|
# Unique ID of the instance to be deleted.
|
221
|
-
|
206
|
+
#
|
222
207
|
def delete_instance instance_id
|
223
208
|
execute do
|
224
209
|
instances.delete_instance(
|
@@ -227,6 +212,7 @@ module Google
|
|
227
212
|
end
|
228
213
|
end
|
229
214
|
|
215
|
+
##
|
230
216
|
# Creates a cluster within an instance.
|
231
217
|
#
|
232
218
|
# @param instance_id [String]
|
@@ -238,21 +224,16 @@ module Google
|
|
238
224
|
# Alternatively, provide a hash in the form of `Google::Bigtable::Admin::V2::Cluster`
|
239
225
|
#
|
240
226
|
# @return [Google::Gax::Operation]
|
241
|
-
|
227
|
+
#
|
242
228
|
def create_cluster instance_id, cluster_id, cluster
|
243
|
-
unless cluster.location == ""
|
244
|
-
cluster.location = location_path(cluster.location)
|
245
|
-
end
|
229
|
+
cluster.location = location_path cluster.location unless cluster.location == ""
|
246
230
|
|
247
231
|
execute do
|
248
|
-
instances.create_cluster(
|
249
|
-
instance_path(instance_id),
|
250
|
-
cluster_id,
|
251
|
-
cluster
|
252
|
-
)
|
232
|
+
instances.create_cluster instance_path(instance_id), cluster_id, cluster
|
253
233
|
end
|
254
234
|
end
|
255
235
|
|
236
|
+
##
|
256
237
|
# Lists information about clusters in an instance.
|
257
238
|
#
|
258
239
|
# @param instance_id [String]
|
@@ -260,16 +241,14 @@ module Google
|
|
260
241
|
# @param token [String]
|
261
242
|
# The value of +next_page_token+ returned by a previous call.
|
262
243
|
# @return [Google::Bigtable::Admin::V2::ListClustersResponse]
|
263
|
-
|
244
|
+
#
|
264
245
|
def list_clusters instance_id, token: nil
|
265
246
|
execute do
|
266
|
-
instances.list_clusters(
|
267
|
-
instance_path(instance_id),
|
268
|
-
page_token: token
|
269
|
-
)
|
247
|
+
instances.list_clusters instance_path(instance_id), page_token: token
|
270
248
|
end
|
271
249
|
end
|
272
250
|
|
251
|
+
##
|
273
252
|
# Gets information about a cluster.
|
274
253
|
#
|
275
254
|
# @param instance_id [String]
|
@@ -277,15 +256,14 @@ module Google
|
|
277
256
|
# @param cluster_id [String]
|
278
257
|
# Unique ID of the requested cluster.
|
279
258
|
# @return [Google::Bigtable::Admin::V2::Cluster]
|
280
|
-
|
259
|
+
#
|
281
260
|
def get_cluster instance_id, cluster_id
|
282
261
|
execute do
|
283
|
-
instances.get_cluster(
|
284
|
-
cluster_path(instance_id, cluster_id)
|
285
|
-
)
|
262
|
+
instances.get_cluster cluster_path(instance_id, cluster_id)
|
286
263
|
end
|
287
264
|
end
|
288
265
|
|
266
|
+
##
|
289
267
|
# Updates a cluster within an instance.
|
290
268
|
#
|
291
269
|
# @param instance_id [String]
|
@@ -301,32 +279,28 @@ module Google
|
|
301
279
|
# The number of nodes allocated to this cluster. More nodes enable higher
|
302
280
|
# throughput and more consistent performance.
|
303
281
|
# @return [Google::Gax::Operation]
|
304
|
-
|
282
|
+
#
|
305
283
|
def update_cluster instance_id, cluster_id, location, serve_nodes
|
306
284
|
execute do
|
307
|
-
instances.update_cluster(
|
308
|
-
cluster_path(instance_id, cluster_id),
|
309
|
-
location,
|
310
|
-
serve_nodes
|
311
|
-
)
|
285
|
+
instances.update_cluster cluster_path(instance_id, cluster_id), location, serve_nodes
|
312
286
|
end
|
313
287
|
end
|
314
288
|
|
289
|
+
##
|
315
290
|
# Deletes a cluster from an instance.
|
316
291
|
#
|
317
292
|
# @param instance_id [String]
|
318
293
|
# Unique ID of the instance the cluster is in.
|
319
294
|
# @param cluster_id [String]
|
320
295
|
# Unique ID of the cluster to be deleted.
|
321
|
-
|
296
|
+
#
|
322
297
|
def delete_cluster instance_id, cluster_id
|
323
298
|
execute do
|
324
|
-
instances.delete_cluster(
|
325
|
-
cluster_path(instance_id, cluster_id)
|
326
|
-
)
|
299
|
+
instances.delete_cluster cluster_path(instance_id, cluster_id)
|
327
300
|
end
|
328
301
|
end
|
329
302
|
|
303
|
+
##
|
330
304
|
# Creates a new table in the specified instance.
|
331
305
|
# Optionally, creates the table with a full set of initial column families.
|
332
306
|
#
|
@@ -357,26 +331,16 @@ module Google
|
|
357
331
|
# Alternatively, provide a hash in the form of
|
358
332
|
# `Google::Bigtable::Admin::V2::CreateTableRequest::Split`
|
359
333
|
# @return [Google::Bigtable::Admin::V2::Table]
|
360
|
-
|
361
|
-
def create_table
|
362
|
-
|
363
|
-
table_id,
|
364
|
-
table,
|
365
|
-
initial_splits: nil
|
366
|
-
if initial_splits
|
367
|
-
initial_splits = initial_splits.map { |key| { key: key } }
|
368
|
-
end
|
334
|
+
#
|
335
|
+
def create_table instance_id, table_id, table, initial_splits: nil
|
336
|
+
initial_splits = initial_splits.map { |key| { key: key } } if initial_splits
|
369
337
|
|
370
338
|
execute do
|
371
|
-
tables.create_table(
|
372
|
-
instance_path(instance_id),
|
373
|
-
table_id,
|
374
|
-
table,
|
375
|
-
initial_splits: initial_splits
|
376
|
-
)
|
339
|
+
tables.create_table instance_path(instance_id), table_id, table, initial_splits: initial_splits
|
377
340
|
end
|
378
341
|
end
|
379
342
|
|
343
|
+
##
|
380
344
|
# Lists all tables in an instance.
|
381
345
|
#
|
382
346
|
# @param instance_id [String]
|
@@ -388,16 +352,14 @@ module Google
|
|
388
352
|
# An enumerable of Google::Bigtable::Admin::V2::Table instances.
|
389
353
|
# See Google::Gax::PagedEnumerable documentation for other
|
390
354
|
# operations such as per-page iteration or access to the response.
|
391
|
-
|
355
|
+
#
|
392
356
|
def list_tables instance_id, view: nil
|
393
357
|
execute do
|
394
|
-
tables.list_tables(
|
395
|
-
instance_path(instance_id),
|
396
|
-
view: view
|
397
|
-
)
|
358
|
+
tables.list_tables instance_path(instance_id), view: view
|
398
359
|
end
|
399
360
|
end
|
400
361
|
|
362
|
+
##
|
401
363
|
# Gets metadata about the specified table.
|
402
364
|
#
|
403
365
|
# @param instance_id [String]
|
@@ -408,31 +370,28 @@ module Google
|
|
408
370
|
# View to be applied to the returned table's fields.
|
409
371
|
# Defaults to +SCHEMA_VIEW+ if unspecified.
|
410
372
|
# @return [Google::Bigtable::Admin::V2::Table]
|
411
|
-
|
373
|
+
#
|
412
374
|
def get_table instance_id, table_id, view: nil
|
413
375
|
execute do
|
414
|
-
tables.get_table(
|
415
|
-
table_path(instance_id, table_id),
|
416
|
-
view: view
|
417
|
-
)
|
376
|
+
tables.get_table table_path(instance_id, table_id), view: view
|
418
377
|
end
|
419
378
|
end
|
420
379
|
|
380
|
+
##
|
421
381
|
# Permanently deletes a table and all of its data.
|
422
382
|
#
|
423
383
|
# @param instance_id [String]
|
424
384
|
# Unique ID of the instance the table is in.
|
425
385
|
# @param table_id [String]
|
426
386
|
# Unique ID of the table to be deleted.
|
427
|
-
|
387
|
+
#
|
428
388
|
def delete_table instance_id, table_id
|
429
389
|
execute do
|
430
|
-
tables.delete_table(
|
431
|
-
table_path(instance_id, table_id)
|
432
|
-
)
|
390
|
+
tables.delete_table table_path(instance_id, table_id)
|
433
391
|
end
|
434
392
|
end
|
435
393
|
|
394
|
+
##
|
436
395
|
# Performs a series of column family modifications on the specified table.
|
437
396
|
# Either all or none of the modifications will occur before this method
|
438
397
|
# returns. Data requests received prior to completion of this method may reach a table
|
@@ -450,16 +409,14 @@ module Google
|
|
450
409
|
# Alternatively, provide a hash in the form of
|
451
410
|
# `Google::Bigtable::Admin::V2::ModifyColumnFamiliesRequest::Modification`.
|
452
411
|
# @return [Google::Bigtable::Admin::V2::Table]
|
453
|
-
|
412
|
+
#
|
454
413
|
def modify_column_families instance_id, table_id, modifications
|
455
414
|
execute do
|
456
|
-
tables.modify_column_families(
|
457
|
-
table_path(instance_id, table_id),
|
458
|
-
modifications
|
459
|
-
)
|
415
|
+
tables.modify_column_families table_path(instance_id, table_id), modifications
|
460
416
|
end
|
461
417
|
end
|
462
418
|
|
419
|
+
##
|
463
420
|
# Generates a consistency token for a table.
|
464
421
|
# The consistency token can be be used in CheckConsistency to check whether
|
465
422
|
# mutations to the table that finished before this call started have been replicated.
|
@@ -470,15 +427,14 @@ module Google
|
|
470
427
|
# @param table_id [String]
|
471
428
|
# Unique ID of the table the consistency token is for.
|
472
429
|
# @return [Google::Bigtable::Admin::V2::GenerateConsistencyTokenResponse]
|
473
|
-
|
430
|
+
#
|
474
431
|
def generate_consistency_token instance_id, table_id
|
475
432
|
execute do
|
476
|
-
tables.generate_consistency_token(
|
477
|
-
table_path(instance_id, table_id)
|
478
|
-
)
|
433
|
+
tables.generate_consistency_token table_path(instance_id, table_id)
|
479
434
|
end
|
480
435
|
end
|
481
436
|
|
437
|
+
##
|
482
438
|
# Checks replication consistency based on a consistency token.
|
483
439
|
# Determines if replication has caught up, based on the conditions in the token
|
484
440
|
# and the check request.
|
@@ -490,16 +446,14 @@ module Google
|
|
490
446
|
# @param token [String] Consistency token
|
491
447
|
# The token created for the table using GenerateConsistencyToken.
|
492
448
|
# @return [Google::Bigtable::Admin::V2::CheckConsistencyResponse]
|
493
|
-
|
449
|
+
#
|
494
450
|
def check_consistency instance_id, table_id, token
|
495
451
|
execute do
|
496
|
-
tables.check_consistency(
|
497
|
-
table_path(instance_id, table_id),
|
498
|
-
token
|
499
|
-
)
|
452
|
+
tables.check_consistency table_path(instance_id, table_id), token
|
500
453
|
end
|
501
454
|
end
|
502
455
|
|
456
|
+
##
|
503
457
|
# Permanently deletes a row range from a table. The request can
|
504
458
|
# specify whether to delete all rows in a table or only rows that match a
|
505
459
|
# particular row key prefix.
|
@@ -515,13 +469,8 @@ module Google
|
|
515
469
|
# If true, delete all rows in the table. Setting this to false is a no-op.
|
516
470
|
# @param timeout [Integer]
|
517
471
|
# Sets the API call timeout if deadline exceeds exception.
|
518
|
-
|
519
|
-
def drop_row_range
|
520
|
-
instance_id,
|
521
|
-
table_id,
|
522
|
-
row_key_prefix: nil,
|
523
|
-
delete_all_data_from_table: nil,
|
524
|
-
timeout: nil
|
472
|
+
#
|
473
|
+
def drop_row_range instance_id, table_id, row_key_prefix: nil, delete_all_data_from_table: nil, timeout: nil
|
525
474
|
call_options = nil
|
526
475
|
|
527
476
|
# Pass a timeout with a larger value if the drop operation throws
|
@@ -531,21 +480,20 @@ module Google
|
|
531
480
|
[],
|
532
481
|
Google::Gax::BackoffSettings.new(0, 0, 0, timeout * 1000, 0, 0, 0)
|
533
482
|
)
|
534
|
-
call_options = Google::Gax::CallOptions.new
|
535
|
-
retry_options: retry_options
|
536
|
-
)
|
483
|
+
call_options = Google::Gax::CallOptions.new retry_options: retry_options
|
537
484
|
end
|
538
485
|
|
539
486
|
execute do
|
540
487
|
tables.drop_row_range(
|
541
488
|
table_path(instance_id, table_id),
|
542
|
-
row_key_prefix:
|
489
|
+
row_key_prefix: row_key_prefix,
|
543
490
|
delete_all_data_from_table: delete_all_data_from_table,
|
544
|
-
options:
|
491
|
+
options: call_options
|
545
492
|
)
|
546
493
|
end
|
547
494
|
end
|
548
495
|
|
496
|
+
##
|
549
497
|
# Creates an app profile within an instance.
|
550
498
|
#
|
551
499
|
# @param instance_id [String]
|
@@ -559,12 +507,8 @@ module Google
|
|
559
507
|
# @param ignore_warnings [Boolean]
|
560
508
|
# If true, ignore safety checks when creating the app profile.
|
561
509
|
# @return [Google::Bigtable::Admin::V2::AppProfile]
|
562
|
-
|
563
|
-
def create_app_profile
|
564
|
-
instance_id,
|
565
|
-
app_profile_id,
|
566
|
-
app_profile,
|
567
|
-
ignore_warnings: nil
|
510
|
+
#
|
511
|
+
def create_app_profile instance_id, app_profile_id, app_profile, ignore_warnings: nil
|
568
512
|
execute do
|
569
513
|
instances.create_app_profile(
|
570
514
|
instance_path(instance_id),
|
@@ -575,6 +519,7 @@ module Google
|
|
575
519
|
end
|
576
520
|
end
|
577
521
|
|
522
|
+
##
|
578
523
|
# Gets information about an app profile.
|
579
524
|
#
|
580
525
|
# @param instance_id [String]
|
@@ -582,15 +527,14 @@ module Google
|
|
582
527
|
# @param app_profile_id [String]
|
583
528
|
# Unique ID of the requested app profile.
|
584
529
|
# @return [Google::Bigtable::Admin::V2::AppProfile]
|
585
|
-
|
530
|
+
#
|
586
531
|
def get_app_profile instance_id, app_profile_id
|
587
532
|
execute do
|
588
|
-
instances.get_app_profile(
|
589
|
-
app_profile_path(instance_id, app_profile_id)
|
590
|
-
)
|
533
|
+
instances.get_app_profile app_profile_path(instance_id, app_profile_id)
|
591
534
|
end
|
592
535
|
end
|
593
536
|
|
537
|
+
##
|
594
538
|
# Lists information about app profiles in an instance.
|
595
539
|
#
|
596
540
|
# @param instance_id [String]
|
@@ -600,14 +544,14 @@ module Google
|
|
600
544
|
# See Google::Gax::PagedEnumerable documentation for other
|
601
545
|
# operations such as per-page iteration or access to the response
|
602
546
|
# object.
|
547
|
+
#
|
603
548
|
def list_app_profiles instance_id
|
604
549
|
execute do
|
605
|
-
instances.list_app_profiles(
|
606
|
-
instance_path(instance_id)
|
607
|
-
)
|
550
|
+
instances.list_app_profiles instance_path(instance_id)
|
608
551
|
end
|
609
552
|
end
|
610
553
|
|
554
|
+
##
|
611
555
|
# Updates an app profile within an instance.
|
612
556
|
#
|
613
557
|
# @param app_profile [Google::Bigtable::Admin::V2::AppProfile | Hash]
|
@@ -621,17 +565,14 @@ module Google
|
|
621
565
|
# @param ignore_warnings [Boolean]
|
622
566
|
# If true, ignore safety checks when updating the app profile.
|
623
567
|
# @return [Google::Longrunning::Operation]
|
624
|
-
|
568
|
+
#
|
625
569
|
def update_app_profile app_profile, update_mask, ignore_warnings: nil
|
626
570
|
execute do
|
627
|
-
instances.update_app_profile
|
628
|
-
app_profile,
|
629
|
-
update_mask,
|
630
|
-
ignore_warnings: ignore_warnings
|
631
|
-
)
|
571
|
+
instances.update_app_profile app_profile, update_mask, ignore_warnings: ignore_warnings
|
632
572
|
end
|
633
573
|
end
|
634
574
|
|
575
|
+
##
|
635
576
|
# Deletes an app profile from an instance.
|
636
577
|
#
|
637
578
|
# @param instance_id [String]
|
@@ -640,31 +581,28 @@ module Google
|
|
640
581
|
# Unique ID of the app profile to be deleted.
|
641
582
|
# @param ignore_warnings [Boolean]
|
642
583
|
# If true, ignore safety checks when deleting the app profile.
|
643
|
-
|
584
|
+
#
|
644
585
|
def delete_app_profile instance_id, app_profile_id, ignore_warnings: nil
|
645
586
|
execute do
|
646
|
-
instances.delete_app_profile(
|
647
|
-
app_profile_path(instance_id, app_profile_id),
|
648
|
-
ignore_warnings
|
649
|
-
)
|
587
|
+
instances.delete_app_profile app_profile_path(instance_id, app_profile_id), ignore_warnings
|
650
588
|
end
|
651
589
|
end
|
652
590
|
|
591
|
+
##
|
653
592
|
# Gets the access control policy for an instance resource. Returns an empty
|
654
593
|
# policy if an instance exists but does not have a policy set.
|
655
594
|
#
|
656
595
|
# @param instance_id [String]
|
657
596
|
# Unique ID of the instance for which the policy is being requested.
|
658
597
|
# @return [Google::Iam::V1::Policy]
|
659
|
-
|
598
|
+
#
|
660
599
|
def get_instance_policy instance_id
|
661
600
|
execute do
|
662
|
-
instances.get_iam_policy(
|
663
|
-
instance_path(instance_id)
|
664
|
-
)
|
601
|
+
instances.get_iam_policy instance_path(instance_id)
|
665
602
|
end
|
666
603
|
end
|
667
604
|
|
605
|
+
##
|
668
606
|
# Sets the access control policy on an instance resource. Replaces any
|
669
607
|
# existing policy.
|
670
608
|
#
|
@@ -677,16 +615,14 @@ module Google
|
|
677
615
|
# might reject an empty policy.
|
678
616
|
# Alternatively, provide a hash similar to `Google::Iam::V1::Policy`.
|
679
617
|
# @return [Google::Iam::V1::Policy]
|
680
|
-
|
618
|
+
#
|
681
619
|
def set_instance_policy instance_id, policy
|
682
620
|
execute do
|
683
|
-
instances.set_iam_policy(
|
684
|
-
instance_path(instance_id),
|
685
|
-
policy
|
686
|
-
)
|
621
|
+
instances.set_iam_policy instance_path(instance_id), policy
|
687
622
|
end
|
688
623
|
end
|
689
624
|
|
625
|
+
##
|
690
626
|
# Returns permissions that the caller has for the specified instance resource.
|
691
627
|
#
|
692
628
|
# @param instance_id [String]
|
@@ -697,20 +633,60 @@ module Google
|
|
697
633
|
# information see
|
698
634
|
# [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
|
699
635
|
# @return [Google::Iam::V1::TestIamPermissionsResponse]
|
700
|
-
|
636
|
+
#
|
701
637
|
def test_instance_permissions instance_id, permissions
|
702
638
|
execute do
|
703
|
-
instances.test_iam_permissions(
|
704
|
-
|
705
|
-
|
706
|
-
|
639
|
+
instances.test_iam_permissions instance_path(instance_id), permissions
|
640
|
+
end
|
641
|
+
end
|
642
|
+
|
643
|
+
def read_rows instance_id, table_id, app_profile_id: nil, rows: nil, filter: nil, rows_limit: nil
|
644
|
+
# execute is not used because error handling is in ReadOperations#read_rows
|
645
|
+
client.read_rows table_path(instance_id, table_id),
|
646
|
+
rows: rows,
|
647
|
+
filter: filter,
|
648
|
+
rows_limit: rows_limit,
|
649
|
+
app_profile_id: app_profile_id
|
650
|
+
end
|
651
|
+
|
652
|
+
def sample_row_keys table_name, app_profile_id: nil
|
653
|
+
execute do
|
654
|
+
client.sample_row_keys table_name, app_profile_id: app_profile_id
|
655
|
+
end
|
656
|
+
end
|
657
|
+
|
658
|
+
def mutate_row table_name, row_key, mutations, app_profile_id: nil
|
659
|
+
execute do
|
660
|
+
client.mutate_row table_name, row_key, mutations, app_profile_id: app_profile_id
|
661
|
+
end
|
662
|
+
end
|
663
|
+
|
664
|
+
def mutate_rows table_name, entries, app_profile_id: nil
|
665
|
+
execute do
|
666
|
+
client.mutate_rows table_name, entries, app_profile_id: app_profile_id
|
667
|
+
end
|
668
|
+
end
|
669
|
+
|
670
|
+
def check_and_mutate_row table_name, row_key, app_profile_id: nil, predicate_filter: nil, true_mutations: nil,
|
671
|
+
false_mutations: nil
|
672
|
+
execute do
|
673
|
+
client.check_and_mutate_row table_name, row_key, app_profile_id: app_profile_id,
|
674
|
+
predicate_filter: predicate_filter, true_mutations: true_mutations,
|
675
|
+
false_mutations: false_mutations
|
676
|
+
end
|
677
|
+
end
|
678
|
+
|
679
|
+
def read_modify_write_row table_name, row_key, rules, app_profile_id: nil
|
680
|
+
execute do
|
681
|
+
client.read_modify_write_row table_name, row_key, rules, app_profile_id: app_profile_id
|
707
682
|
end
|
708
683
|
end
|
709
684
|
|
685
|
+
##
|
710
686
|
# Executes the API call and wrap errors to {Google::Cloud::Error}.
|
711
687
|
#
|
712
688
|
# @raise [Google::Cloud::Error]
|
713
|
-
|
689
|
+
#
|
714
690
|
def execute
|
715
691
|
yield
|
716
692
|
rescue Google::Gax::GaxError => e
|
@@ -719,30 +695,30 @@ module Google
|
|
719
695
|
raise Google::Cloud::Error.from_error(e)
|
720
696
|
end
|
721
697
|
|
698
|
+
##
|
722
699
|
# Creates a formatted project path.
|
723
700
|
#
|
724
701
|
# @return [String]
|
725
702
|
# Formatted project path
|
726
703
|
# +projects/<project>+
|
727
|
-
|
704
|
+
#
|
728
705
|
def project_path
|
729
|
-
Admin::V2::BigtableInstanceAdminClient.project_path
|
706
|
+
Admin::V2::BigtableInstanceAdminClient.project_path project_id
|
730
707
|
end
|
731
708
|
|
709
|
+
##
|
732
710
|
# Creates a formatted instance path.
|
733
711
|
#
|
734
712
|
# @param instance_id [String]
|
735
713
|
# @return [String]
|
736
714
|
# Formatted instance path
|
737
715
|
# +projects/<project>/instances/[a-z][a-z0-9\\-]+[a-z0-9]+.
|
738
|
-
|
716
|
+
#
|
739
717
|
def instance_path instance_id
|
740
|
-
Admin::V2::BigtableInstanceAdminClient.instance_path
|
741
|
-
project_id,
|
742
|
-
instance_id
|
743
|
-
)
|
718
|
+
Admin::V2::BigtableInstanceAdminClient.instance_path project_id, instance_id
|
744
719
|
end
|
745
720
|
|
721
|
+
##
|
746
722
|
# Creates a formatted cluster path.
|
747
723
|
#
|
748
724
|
# @param instance_id [String]
|
@@ -750,15 +726,12 @@ module Google
|
|
750
726
|
# @return [String]
|
751
727
|
# Formatted cluster path
|
752
728
|
# +projects/<project>/instances/<instance>/clusters/<cluster>+.
|
753
|
-
|
729
|
+
#
|
754
730
|
def cluster_path instance_id, cluster_id
|
755
|
-
Admin::V2::BigtableInstanceAdminClient.cluster_path
|
756
|
-
project_id,
|
757
|
-
instance_id,
|
758
|
-
cluster_id
|
759
|
-
)
|
731
|
+
Admin::V2::BigtableInstanceAdminClient.cluster_path project_id, instance_id, cluster_id
|
760
732
|
end
|
761
733
|
|
734
|
+
##
|
762
735
|
# Creates a formatted location path.
|
763
736
|
#
|
764
737
|
# @param location [String]
|
@@ -766,47 +739,24 @@ module Google
|
|
766
739
|
# @return [String]
|
767
740
|
# Formatted location path
|
768
741
|
# +projects/<project_id>/locations/<location>+.
|
769
|
-
|
742
|
+
#
|
770
743
|
def location_path location
|
771
|
-
Admin::V2::BigtableInstanceAdminClient.location_path
|
772
|
-
project_id,
|
773
|
-
location
|
774
|
-
)
|
744
|
+
Admin::V2::BigtableInstanceAdminClient.location_path project_id, location
|
775
745
|
end
|
776
746
|
|
747
|
+
##
|
777
748
|
# Creates a formatted table path.
|
778
749
|
#
|
779
750
|
# @param table_id [String]
|
780
751
|
# @return [String]
|
781
752
|
# Formatted table path
|
782
753
|
# +projects/<project>/instances/<instance>/tables/<table>+
|
783
|
-
|
784
|
-
def table_path instance_id, table_id
|
785
|
-
Admin::V2::BigtableTableAdminClient.table_path(
|
786
|
-
project_id,
|
787
|
-
instance_id,
|
788
|
-
table_id
|
789
|
-
)
|
790
|
-
end
|
791
|
-
|
792
|
-
# Creates a formatted snapshot path.
|
793
754
|
#
|
794
|
-
|
795
|
-
|
796
|
-
# @param snapshot_id [String]
|
797
|
-
# @return [String]
|
798
|
-
# Formatted snapshot path
|
799
|
-
# +projects/<project>/instances/<instance>/clusters/<cluster>/snapshots/<snapshot>+
|
800
|
-
|
801
|
-
def snapshot_path instance_id, cluster_id, snapshot_id
|
802
|
-
Admin::V2::BigtableTableAdminClient.snapshot_path(
|
803
|
-
project_id,
|
804
|
-
instance_id,
|
805
|
-
cluster_id,
|
806
|
-
snapshot_id
|
807
|
-
)
|
755
|
+
def table_path instance_id, table_id
|
756
|
+
Admin::V2::BigtableTableAdminClient.table_path project_id, instance_id, table_id
|
808
757
|
end
|
809
758
|
|
759
|
+
##
|
810
760
|
# Creates a formatted app profile path.
|
811
761
|
#
|
812
762
|
# @param instance_id [String]
|
@@ -814,18 +764,15 @@ module Google
|
|
814
764
|
# @return [String]
|
815
765
|
# Formatted snapshot path
|
816
766
|
# +projects/<project>/instances/<instance>/appProfiles/<app_profile>+
|
817
|
-
|
767
|
+
#
|
818
768
|
def app_profile_path instance_id, app_profile_id
|
819
|
-
Admin::V2::BigtableInstanceAdminClient.app_profile_path
|
820
|
-
project_id,
|
821
|
-
instance_id,
|
822
|
-
app_profile_id
|
823
|
-
)
|
769
|
+
Admin::V2::BigtableInstanceAdminClient.app_profile_path project_id, instance_id, app_profile_id
|
824
770
|
end
|
825
771
|
|
772
|
+
##
|
826
773
|
# Inspects the service object.
|
827
774
|
# @return [String]
|
828
|
-
|
775
|
+
#
|
829
776
|
def inspect
|
830
777
|
"#{self.class}(#{@project_id})"
|
831
778
|
end
|