Class: Google::Cloud::Spanner::Service
- Inherits:
-
Object
- Object
- Google::Cloud::Spanner::Service
- Defined in:
- lib/google/cloud/spanner/service.rb
Overview
methods.
Instance Attribute Summary collapse
-
#client_config ⇒ Object
Returns the value of attribute client_config.
-
#credentials ⇒ Object
Returns the value of attribute credentials.
-
#mocked_databases ⇒ Object
Returns the value of attribute mocked_databases.
-
#mocked_instances ⇒ Object
Returns the value of attribute mocked_instances.
-
#mocked_service ⇒ Object
Returns the value of attribute mocked_service.
-
#project ⇒ Object
Returns the value of attribute project.
-
#timeout ⇒ Object
Returns the value of attribute timeout.
Instance Method Summary collapse
- #begin_transaction(session_name) ⇒ Object
- #commit(session_name, mutations = [], transaction_id: nil) ⇒ Object
- #create_database(instance_id, database_id, statements: []) ⇒ Object
- #create_instance(instance_id, name: nil, config: nil, nodes: nil, labels: nil) ⇒ Object
- #create_session(database_name, labels: nil) ⇒ Object
- #create_snapshot(session_name, strong: nil, timestamp: nil, staleness: nil) ⇒ Object
- #databases ⇒ Object
- #delete_instance(name) ⇒ Object
- #delete_session(session_name) ⇒ Object
- #drop_database(instance_id, database_id) ⇒ Object
- #get_database(instance_id, database_id) ⇒ Object
- #get_database_ddl(instance_id, database_id) ⇒ Object
- #get_database_policy(instance_id, database_id) ⇒ Object
- #get_instance(name) ⇒ Object
- #get_instance_config(name) ⇒ Object
- #get_instance_policy(name) ⇒ Object
- #get_session(session_name) ⇒ Object
-
#initialize(project, credentials, timeout: nil, client_config: nil) ⇒ Service
constructor
Creates a new Service instance.
- #inspect ⇒ Object
- #instances ⇒ Object
- #list_databases(instance_id, token: nil, max: nil) ⇒ Object
- #list_instance_configs(token: nil, max: nil) ⇒ Object
- #list_instances(token: nil, max: nil) ⇒ Object
- #partition_query(session_name, sql, transaction, params: nil, types: nil, partition_size_bytes: nil, max_partitions: nil) ⇒ Object
- #partition_read(session_name, table_name, columns, transaction, keys: nil, index: nil, partition_size_bytes: nil, max_partitions: nil) ⇒ Object
- #rollback(session_name, transaction_id) ⇒ Object
- #service ⇒ Object
- #set_database_policy(instance_id, database_id, new_policy) ⇒ Object
- #set_instance_policy(name, new_policy) ⇒ Object
- #streaming_execute_sql(session_name, sql, transaction: nil, params: nil, types: nil, resume_token: nil, partition_token: nil) ⇒ Object
- #streaming_read_table(session_name, table_name, columns, keys: nil, index: nil, transaction: nil, limit: nil, resume_token: nil, partition_token: nil) ⇒ Object
- #test_database_permissions(instance_id, database_id, permissions) ⇒ Object
- #test_instance_permissions(name, permissions) ⇒ Object
- #update_database_ddl(instance_id, database_id, statements: [], operation_id: nil) ⇒ Object
- #update_instance(instance_obj) ⇒ Object
Constructor Details
#initialize(project, credentials, timeout: nil, client_config: nil) ⇒ Service
Creates a new Service instance.
35 36 37 38 39 40 |
# File 'lib/google/cloud/spanner/service.rb', line 35 def initialize project, credentials, timeout: nil, client_config: nil @project = project @credentials = credentials @timeout = timeout @client_config = client_config || {} end |
Instance Attribute Details
#client_config ⇒ Object
Returns the value of attribute client_config.
31 32 33 |
# File 'lib/google/cloud/spanner/service.rb', line 31 def client_config @client_config end |
#credentials ⇒ Object
Returns the value of attribute credentials.
31 32 33 |
# File 'lib/google/cloud/spanner/service.rb', line 31 def credentials @credentials end |
#mocked_databases ⇒ Object
Returns the value of attribute mocked_databases.
79 80 81 |
# File 'lib/google/cloud/spanner/service.rb', line 79 def mocked_databases @mocked_databases end |
#mocked_instances ⇒ Object
Returns the value of attribute mocked_instances.
66 67 68 |
# File 'lib/google/cloud/spanner/service.rb', line 66 def mocked_instances @mocked_instances end |
#mocked_service ⇒ Object
Returns the value of attribute mocked_service.
53 54 55 |
# File 'lib/google/cloud/spanner/service.rb', line 53 def mocked_service @mocked_service end |
#project ⇒ Object
Returns the value of attribute project.
31 32 33 |
# File 'lib/google/cloud/spanner/service.rb', line 31 def project @project end |
#timeout ⇒ Object
Returns the value of attribute timeout.
31 32 33 |
# File 'lib/google/cloud/spanner/service.rb', line 31 def timeout @timeout end |
Instance Method Details
#begin_transaction(session_name) ⇒ Object
342 343 344 345 346 347 348 349 350 |
# File 'lib/google/cloud/spanner/service.rb', line 342 def begin_transaction session_name tx_opts = Google::Spanner::V1::TransactionOptions.new( read_write: Google::Spanner::V1::TransactionOptions::ReadWrite.new ) opts = session_name execute do service.begin_transaction session_name, tx_opts, options: opts end end |
#commit(session_name, mutations = [], transaction_id: nil) ⇒ Object
319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 |
# File 'lib/google/cloud/spanner/service.rb', line 319 def commit session_name, mutations = [], transaction_id: nil tx_opts = nil if transaction_id.nil? tx_opts = Google::Spanner::V1::TransactionOptions.new( read_write: Google::Spanner::V1::TransactionOptions::ReadWrite.new ) end opts = session_name execute do service.commit \ session_name, mutations, transaction_id: transaction_id, single_use_transaction: tx_opts, options: opts end end |
#create_database(instance_id, database_id, statements: []) ⇒ Object
186 187 188 189 190 191 192 193 |
# File 'lib/google/cloud/spanner/service.rb', line 186 def create_database instance_id, database_id, statements: [] execute do databases.create_database \ instance_path(instance_id), "CREATE DATABASE `#{database_id}`", extra_statements: Array(statements) end end |
#create_instance(instance_id, name: nil, config: nil, nodes: nil, labels: nil) ⇒ Object
100 101 102 103 104 105 106 107 108 109 110 111 112 |
# File 'lib/google/cloud/spanner/service.rb', line 100 def create_instance instance_id, name: nil, config: nil, nodes: nil, labels: nil labels = Hash[labels.map { |k, v| [String(k), String(v)] }] if labels create_obj = Google::Spanner::Admin::Instance::V1::Instance.new({ display_name: name, config: instance_config_path(config), node_count: nodes, labels: labels }.delete_if { |_, v| v.nil? }) execute do instances.create_instance project_path, instance_id, create_obj end end |
#create_session(database_name, labels: nil) ⇒ Object
244 245 246 247 248 249 250 251 |
# File 'lib/google/cloud/spanner/service.rb', line 244 def create_session database_name, labels: nil opts = database_name session = Google::Spanner::V1::Session.new(labels: labels) if labels execute do service.create_session database_name, session: session, options: opts end end |
#create_snapshot(session_name, strong: nil, timestamp: nil, staleness: nil) ⇒ Object
352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 |
# File 'lib/google/cloud/spanner/service.rb', line 352 def create_snapshot session_name, strong: nil, timestamp: nil, staleness: nil tx_opts = Google::Spanner::V1::TransactionOptions.new( read_only: Google::Spanner::V1::TransactionOptions::ReadOnly.new( { strong: strong, read_timestamp: Convert.(), exact_staleness: Convert.number_to_duration(staleness), return_read_timestamp: true }.delete_if { |_, v| v.nil? } ) ) opts = session_name execute do service.begin_transaction session_name, tx_opts, options: opts end end |
#databases ⇒ Object
68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/google/cloud/spanner/service.rb', line 68 def databases return mocked_databases if mocked_databases @databases ||= \ Admin::Database::V1::DatabaseAdminClient.new( credentials: credentials, timeout: timeout, client_config: client_config, lib_name: "gccl", lib_version: Google::Cloud::Spanner::VERSION ) end |
#delete_instance(name) ⇒ Object
124 125 126 127 128 |
# File 'lib/google/cloud/spanner/service.rb', line 124 def delete_instance name execute do instances.delete_instance instance_path(name) end end |
#delete_session(session_name) ⇒ Object
253 254 255 256 257 258 |
# File 'lib/google/cloud/spanner/service.rb', line 253 def delete_session session_name opts = session_name execute do service.delete_session session_name, options: opts end end |
#drop_database(instance_id, database_id) ⇒ Object
195 196 197 198 199 |
# File 'lib/google/cloud/spanner/service.rb', line 195 def drop_database instance_id, database_id execute do databases.drop_database database_path(instance_id, database_id) end end |
#get_database(instance_id, database_id) ⇒ Object
180 181 182 183 184 |
# File 'lib/google/cloud/spanner/service.rb', line 180 def get_database instance_id, database_id execute do databases.get_database database_path(instance_id, database_id) end end |
#get_database_ddl(instance_id, database_id) ⇒ Object
201 202 203 204 205 |
# File 'lib/google/cloud/spanner/service.rb', line 201 def get_database_ddl instance_id, database_id execute do databases.get_database_ddl database_path(instance_id, database_id) end end |
#get_database_policy(instance_id, database_id) ⇒ Object
217 218 219 220 221 |
# File 'lib/google/cloud/spanner/service.rb', line 217 def get_database_policy instance_id, database_id execute do databases.get_iam_policy database_path(instance_id, database_id) end end |
#get_instance(name) ⇒ Object
94 95 96 97 98 |
# File 'lib/google/cloud/spanner/service.rb', line 94 def get_instance name execute do instances.get_instance instance_path(name) end end |
#get_instance_config(name) ⇒ Object
161 162 163 164 165 |
# File 'lib/google/cloud/spanner/service.rb', line 161 def get_instance_config name execute do instances.get_instance_config instance_config_path(name) end end |
#get_instance_policy(name) ⇒ Object
130 131 132 133 134 |
# File 'lib/google/cloud/spanner/service.rb', line 130 def get_instance_policy name execute do instances.get_iam_policy instance_path(name) end end |
#get_session(session_name) ⇒ Object
237 238 239 240 241 242 |
# File 'lib/google/cloud/spanner/service.rb', line 237 def get_session session_name opts = session_name execute do service.get_session session_name, options: opts end end |
#inspect ⇒ Object
370 371 372 |
# File 'lib/google/cloud/spanner/service.rb', line 370 def inspect "#{self.class}(#{@project})" end |
#instances ⇒ Object
55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/google/cloud/spanner/service.rb', line 55 def instances return mocked_instances if mocked_instances @instances ||= \ Admin::Instance::V1::InstanceAdminClient.new( credentials: credentials, timeout: timeout, client_config: client_config, lib_name: "gccl", lib_version: Google::Cloud::Spanner::VERSION ) end |
#list_databases(instance_id, token: nil, max: nil) ⇒ Object
167 168 169 170 171 172 173 174 175 176 177 178 |
# File 'lib/google/cloud/spanner/service.rb', line 167 def list_databases instance_id, token: nil, max: nil = nil = Google::Gax::CallOptions.new page_token: token if token execute do paged_enum = databases.list_databases instance_path(instance_id), page_size: max, options: paged_enum.page.response end end |
#list_instance_configs(token: nil, max: nil) ⇒ Object
148 149 150 151 152 153 154 155 156 157 158 159 |
# File 'lib/google/cloud/spanner/service.rb', line 148 def list_instance_configs token: nil, max: nil = nil = Google::Gax::CallOptions.new page_token: token if token execute do paged_enum = instances.list_instance_configs project_path, page_size: max, options: paged_enum.page.response end end |
#list_instances(token: nil, max: nil) ⇒ Object
81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/google/cloud/spanner/service.rb', line 81 def list_instances token: nil, max: nil = nil = Google::Gax::CallOptions.new page_token: token if token execute do paged_enum = instances.list_instances project_path, page_size: max, options: paged_enum.page.response end end |
#partition_query(session_name, sql, transaction, params: nil, types: nil, partition_size_bytes: nil, max_partitions: nil) ⇒ Object
302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 |
# File 'lib/google/cloud/spanner/service.rb', line 302 def partition_query session_name, sql, transaction, params: nil, types: nil, partition_size_bytes: nil, max_partitions: nil partition_opts = partition_size_bytes, max_partitions opts = session_name execute do service.partition_query \ session_name, sql, transaction: transaction, params: params, param_types: types, partition_options: partition_opts, options: opts end end |
#partition_read(session_name, table_name, columns, transaction, keys: nil, index: nil, partition_size_bytes: nil, max_partitions: nil) ⇒ Object
286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 |
# File 'lib/google/cloud/spanner/service.rb', line 286 def partition_read session_name, table_name, columns, transaction, keys: nil, index: nil, partition_size_bytes: nil, max_partitions: nil partition_opts = partition_size_bytes, max_partitions opts = session_name execute do service.partition_read \ session_name, table_name, keys, transaction: transaction, index: index, columns: columns, partition_options: partition_opts, options: opts end end |
#rollback(session_name, transaction_id) ⇒ Object
335 336 337 338 339 340 |
# File 'lib/google/cloud/spanner/service.rb', line 335 def rollback session_name, transaction_id opts = session_name execute do service.rollback session_name, transaction_id, options: opts end end |
#service ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/google/cloud/spanner/service.rb', line 42 def service return mocked_service if mocked_service @service ||= \ V1::SpannerClient.new( credentials: credentials, timeout: timeout, client_config: client_config, lib_name: "gccl", lib_version: Google::Cloud::Spanner::VERSION ) end |
#set_database_policy(instance_id, database_id, new_policy) ⇒ Object
223 224 225 226 227 228 |
# File 'lib/google/cloud/spanner/service.rb', line 223 def set_database_policy instance_id, database_id, new_policy execute do databases.set_iam_policy \ database_path(instance_id, database_id), new_policy end end |
#set_instance_policy(name, new_policy) ⇒ Object
136 137 138 139 140 |
# File 'lib/google/cloud/spanner/service.rb', line 136 def set_instance_policy name, new_policy execute do instances.set_iam_policy instance_path(name), new_policy end end |
#streaming_execute_sql(session_name, sql, transaction: nil, params: nil, types: nil, resume_token: nil, partition_token: nil) ⇒ Object
260 261 262 263 264 265 266 267 268 269 270 271 |
# File 'lib/google/cloud/spanner/service.rb', line 260 def streaming_execute_sql session_name, sql, transaction: nil, params: nil, types: nil, resume_token: nil, partition_token: nil opts = session_name execute do service.execute_streaming_sql \ session_name, sql, transaction: transaction, params: params, param_types: types, resume_token: resume_token, partition_token: partition_token, options: opts end end |
#streaming_read_table(session_name, table_name, columns, keys: nil, index: nil, transaction: nil, limit: nil, resume_token: nil, partition_token: nil) ⇒ Object
273 274 275 276 277 278 279 280 281 282 283 284 |
# File 'lib/google/cloud/spanner/service.rb', line 273 def streaming_read_table session_name, table_name, columns, keys: nil, index: nil, transaction: nil, limit: nil, resume_token: nil, partition_token: nil opts = session_name execute do service.streaming_read \ session_name, table_name, columns, keys, transaction: transaction, index: index, limit: limit, resume_token: resume_token, partition_token: partition_token, options: opts end end |
#test_database_permissions(instance_id, database_id, permissions) ⇒ Object
230 231 232 233 234 235 |
# File 'lib/google/cloud/spanner/service.rb', line 230 def instance_id, database_id, execute do databases. \ database_path(instance_id, database_id), end end |
#test_instance_permissions(name, permissions) ⇒ Object
142 143 144 145 146 |
# File 'lib/google/cloud/spanner/service.rb', line 142 def name, execute do instances. instance_path(name), end end |
#update_database_ddl(instance_id, database_id, statements: [], operation_id: nil) ⇒ Object
207 208 209 210 211 212 213 214 215 |
# File 'lib/google/cloud/spanner/service.rb', line 207 def update_database_ddl instance_id, database_id, statements: [], operation_id: nil execute do databases.update_database_ddl \ database_path(instance_id, database_id), Array(statements), operation_id: operation_id end end |
#update_instance(instance_obj) ⇒ Object
114 115 116 117 118 119 120 121 122 |
# File 'lib/google/cloud/spanner/service.rb', line 114 def update_instance instance_obj mask = Google::Protobuf::FieldMask.new( paths: %w[display_name node_count labels] ) execute do instances.update_instance instance_obj, mask end end |