google-cloud-spanner 1.13.1 → 1.14.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +10 -0
- data/lib/google-cloud-spanner.rb +39 -4
- data/lib/google/cloud/spanner.rb +27 -4
- data/lib/google/cloud/spanner/service.rb +16 -5
- data/lib/google/cloud/spanner/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 68e910df98ae5fce8c055a045ec853ff60dfa2d8d2de3d625cad423a17a48fbf
|
4
|
+
data.tar.gz: 8eb916b7a90df206630629a9b9be3e4f83a3f3dbc10df56e346647bd5008578a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8d58bf9e158e9aabe3a05366e3a68be9d07d3f864a7a799f80127f2e72b78340db6fd984fe48eb2e64cb593825b70eef2da5753fae819b3108f42052e24eb315
|
7
|
+
data.tar.gz: 1e1e8d72cdb03be22f10a5ff47c4a268927033986e9b1f6cae41872c8a5482c8d3eb61f6bac8ecb034903beab0f725d5cd38951b23593b9c9fc9d6dbe993c528
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,15 @@
|
|
1
1
|
# Release History
|
2
2
|
|
3
|
+
### 1.14.0 / 2020-02-18
|
4
|
+
|
5
|
+
#### Features
|
6
|
+
|
7
|
+
* allow custom lib name and version for telemetry purpose ([#4762](https://www.github.com/googleapis/google-cloud-ruby/issues/4762))
|
8
|
+
* allow custom lib name and version for telemetry purpose
|
9
|
+
* format docs
|
10
|
+
* added custom lib name and version prefix
|
11
|
+
* update test cases for lib name and version
|
12
|
+
|
3
13
|
### 1.13.1 / 2020-01-22
|
4
14
|
|
5
15
|
#### Documentation
|
data/lib/google-cloud-spanner.rb
CHANGED
@@ -45,6 +45,20 @@ module Google
|
|
45
45
|
# @param [Integer] timeout Default timeout to use in requests. Optional.
|
46
46
|
# @param [Hash] client_config A hash of values to override the default
|
47
47
|
# behavior of the API client. Optional.
|
48
|
+
# @param [String] lib_name Library name. This will be added as a prefix
|
49
|
+
# to the API call tracking header `x-goog-api-client` with provided
|
50
|
+
# lib version for telemetry. Optional. For example prefix looks like
|
51
|
+
# `spanner-activerecord/0.0.1 gccl/1.13.1`. Here,
|
52
|
+
# `spanner-activerecord/0.0.1` is provided custom library name and
|
53
|
+
# version and `gccl/1.13.1` represents the Cloud Spanner Ruby library
|
54
|
+
# with version.
|
55
|
+
# @param [String] lib_version Library version. This will be added as a
|
56
|
+
# prefix to the API call tracking header `x-goog-api-client` with
|
57
|
+
# provided lib name for telemetry. Optional. For example prefix look like
|
58
|
+
# `spanner-activerecord/0.0.1 gccl/1.13.1`. Here,
|
59
|
+
# `spanner-activerecord/0.0.1` is provided custom library name and
|
60
|
+
# version and `gccl/1.13.1` represents the Cloud Spanner Ruby library
|
61
|
+
# with version.
|
48
62
|
#
|
49
63
|
# @return [Google::Cloud::Spanner::Project]
|
50
64
|
#
|
@@ -61,10 +75,13 @@ module Google
|
|
61
75
|
# platform_scope = "https://www.googleapis.com/auth/cloud-platform"
|
62
76
|
# spanner = gcloud.spanner scope: platform_scope
|
63
77
|
#
|
64
|
-
def spanner scope: nil, timeout: nil, client_config: nil
|
78
|
+
def spanner scope: nil, timeout: nil, client_config: nil, lib_name: nil,
|
79
|
+
lib_version: nil
|
65
80
|
Google::Cloud.spanner @project, @keyfile, scope: scope,
|
66
81
|
timeout: (timeout || @timeout),
|
67
|
-
client_config: client_config
|
82
|
+
client_config: client_config,
|
83
|
+
lib_name: lib_name,
|
84
|
+
lib_version: lib_version
|
68
85
|
end
|
69
86
|
|
70
87
|
##
|
@@ -92,6 +109,20 @@ module Google
|
|
92
109
|
# @param [Integer] timeout Default timeout to use in requests. Optional.
|
93
110
|
# @param [Hash] client_config A hash of values to override the default
|
94
111
|
# behavior of the API client. Optional.
|
112
|
+
# @param [String] lib_name Library name. This will be added as a prefix
|
113
|
+
# to the API call tracking header `x-goog-api-client` with provided
|
114
|
+
# lib version for telemetry. Optional. For example prefix looks like
|
115
|
+
# `spanner-activerecord/0.0.1 gccl/1.13.1`. Here,
|
116
|
+
# `spanner-activerecord/0.0.1` is provided custom library name and
|
117
|
+
# version and `gccl/1.13.1` represents the Cloud Spanner Ruby library
|
118
|
+
# with version.
|
119
|
+
# @param [String] lib_version Library version. This will be added as a
|
120
|
+
# prefix to the API call tracking header `x-goog-api-client` with
|
121
|
+
# provided lib name for telemetry. Optional. For example prefix look like
|
122
|
+
# `spanner-activerecord/0.0.1 gccl/1.13.1`. Here,
|
123
|
+
# `spanner-activerecord/0.0.1` is provided custom library name and
|
124
|
+
# version and `gccl/1.13.1` represents the Cloud Spanner Ruby library
|
125
|
+
# with version.
|
95
126
|
#
|
96
127
|
# @return [Google::Cloud::Spanner::Project]
|
97
128
|
#
|
@@ -101,12 +132,14 @@ module Google
|
|
101
132
|
# spanner = Google::Cloud.spanner
|
102
133
|
#
|
103
134
|
def self.spanner project_id = nil, credentials = nil, scope: nil,
|
104
|
-
timeout: nil, client_config: nil
|
135
|
+
timeout: nil, client_config: nil, lib_name: nil,
|
136
|
+
lib_version: nil
|
105
137
|
require "google/cloud/spanner"
|
106
138
|
Google::Cloud::Spanner.new project_id: project_id,
|
107
139
|
credentials: credentials,
|
108
140
|
scope: scope, timeout: timeout,
|
109
|
-
client_config: client_config
|
141
|
+
client_config: client_config,
|
142
|
+
lib_name: lib_name, lib_version: lib_version
|
110
143
|
end
|
111
144
|
end
|
112
145
|
end
|
@@ -137,4 +170,6 @@ Google::Cloud.configure.add_config! :spanner do |config|
|
|
137
170
|
config.add_field! :client_config, nil, match: Hash
|
138
171
|
config.add_field! :endpoint, nil, match: String
|
139
172
|
config.add_field! :emulator_host, default_emulator, match: String, allow_nil: true
|
173
|
+
config.add_field! :lib_name, nil, match: String, allow_nil: true
|
174
|
+
config.add_field! :lib_version, nil, match: String, allow_nil: true
|
140
175
|
end
|
data/lib/google/cloud/spanner.rb
CHANGED
@@ -34,7 +34,7 @@ module Google
|
|
34
34
|
# See {file:OVERVIEW.md Spanner Overview}.
|
35
35
|
#
|
36
36
|
module Spanner
|
37
|
-
# rubocop:disable Metrics/MethodLength
|
37
|
+
# rubocop:disable Metrics/MethodLength,Metrics/AbcSize
|
38
38
|
|
39
39
|
##
|
40
40
|
# Creates a new object for connecting to the Spanner service.
|
@@ -68,6 +68,20 @@ module Google
|
|
68
68
|
# Deprecated.
|
69
69
|
# @param [String] emulator_host Spanner emulator host. Optional.
|
70
70
|
# If the param is nil, uses the value of the `emulator_host` config.
|
71
|
+
# @param [String] lib_name Library name. This will be added as a prefix
|
72
|
+
# to the API call tracking header `x-goog-api-client` with provided
|
73
|
+
# lib version for telemetry. Optional. For example prefix looks like
|
74
|
+
# `spanner-activerecord/0.0.1 gccl/1.13.1`. Here,
|
75
|
+
# `spanner-activerecord/0.0.1` is provided custom library name and
|
76
|
+
# version and `gccl/1.13.1` represents the Cloud Spanner Ruby library
|
77
|
+
# with version.
|
78
|
+
# @param [String] lib_version Library version. This will be added as a
|
79
|
+
# prefix to the API call tracking header `x-goog-api-client` with
|
80
|
+
# provided lib name for telemetry. Optional. For example prefix look like
|
81
|
+
# `spanner-activerecord/0.0.1 gccl/1.13.1`. Here,
|
82
|
+
# `spanner-activerecord/0.0.1` is provided custom library name and
|
83
|
+
# version and `gccl/1.13.1` represents the Cloud Spanner Ruby library
|
84
|
+
# with version.
|
71
85
|
#
|
72
86
|
# @return [Google::Cloud::Spanner::Project]
|
73
87
|
#
|
@@ -78,7 +92,7 @@ module Google
|
|
78
92
|
#
|
79
93
|
def self.new project_id: nil, credentials: nil, scope: nil, timeout: nil,
|
80
94
|
client_config: nil, endpoint: nil, project: nil, keyfile: nil,
|
81
|
-
emulator_host: nil
|
95
|
+
emulator_host: nil, lib_name: nil, lib_version: nil
|
82
96
|
project_id ||= (project || default_project_id)
|
83
97
|
scope ||= configure.scope
|
84
98
|
timeout ||= configure.timeout
|
@@ -86,6 +100,8 @@ module Google
|
|
86
100
|
endpoint ||= configure.endpoint
|
87
101
|
credentials ||= (keyfile || default_credentials(scope: scope))
|
88
102
|
emulator_host ||= configure.emulator_host
|
103
|
+
lib_name ||= configure.lib_name
|
104
|
+
lib_version ||= configure.lib_version
|
89
105
|
|
90
106
|
if emulator_host
|
91
107
|
credentials = :this_channel_is_insecure
|
@@ -106,12 +122,13 @@ module Google
|
|
106
122
|
Spanner::Project.new(
|
107
123
|
Spanner::Service.new(
|
108
124
|
project_id, credentials,
|
109
|
-
host: endpoint, timeout: timeout, client_config: client_config
|
125
|
+
host: endpoint, timeout: timeout, client_config: client_config,
|
126
|
+
lib_name: lib_name, lib_version: lib_version
|
110
127
|
)
|
111
128
|
)
|
112
129
|
end
|
113
130
|
|
114
|
-
# rubocop:enable Metrics/MethodLength
|
131
|
+
# rubocop:enable Metrics/MethodLength,Metrics/AbcSize
|
115
132
|
|
116
133
|
##
|
117
134
|
# Configure the Google Cloud Spanner library.
|
@@ -133,6 +150,12 @@ module Google
|
|
133
150
|
# to use the default endpoint.
|
134
151
|
# * `emulator_host` - (String) Host name of the emulator. Defaults to
|
135
152
|
# `ENV["SPANNER_EMULATOR_HOST"]`.
|
153
|
+
# * `lib_name` - (String) Override the lib name , or `nil`
|
154
|
+
# to use the default lib name without prefix in agent tracking
|
155
|
+
# header.
|
156
|
+
# * `lib_version` - (String) Override the lib version , or `nil`
|
157
|
+
# to use the default version lib name without prefix in agent
|
158
|
+
# tracking header.
|
136
159
|
#
|
137
160
|
# @return [Google::Cloud::Config] The configuration object the
|
138
161
|
# Google::Cloud::Spanner library uses.
|
@@ -29,17 +29,20 @@ module Google
|
|
29
29
|
# @private Represents the gRPC Spanner service, including all the API
|
30
30
|
# methods.
|
31
31
|
class Service
|
32
|
-
attr_accessor :project, :credentials, :timeout, :client_config, :host
|
32
|
+
attr_accessor :project, :credentials, :timeout, :client_config, :host,
|
33
|
+
:lib_name, :lib_version
|
33
34
|
|
34
35
|
##
|
35
36
|
# Creates a new Service instance.
|
36
37
|
def initialize project, credentials, host: nil, timeout: nil,
|
37
|
-
client_config: nil
|
38
|
+
client_config: nil, lib_name: nil, lib_version: nil
|
38
39
|
@project = project
|
39
40
|
@credentials = credentials
|
40
41
|
@host = host || V1::SpannerClient::SERVICE_ADDRESS
|
41
42
|
@timeout = timeout
|
42
43
|
@client_config = client_config || {}
|
44
|
+
@lib_name = lib_name
|
45
|
+
@lib_version = lib_version
|
43
46
|
end
|
44
47
|
|
45
48
|
def channel
|
@@ -67,7 +70,7 @@ module Google
|
|
67
70
|
client_config: client_config,
|
68
71
|
service_address: service_address,
|
69
72
|
service_port: service_port,
|
70
|
-
lib_name:
|
73
|
+
lib_name: lib_name_with_prefix,
|
71
74
|
lib_version: Google::Cloud::Spanner::VERSION
|
72
75
|
)
|
73
76
|
end
|
@@ -82,7 +85,7 @@ module Google
|
|
82
85
|
client_config: client_config,
|
83
86
|
service_address: service_address,
|
84
87
|
service_port: service_port,
|
85
|
-
lib_name:
|
88
|
+
lib_name: lib_name_with_prefix,
|
86
89
|
lib_version: Google::Cloud::Spanner::VERSION
|
87
90
|
)
|
88
91
|
end
|
@@ -97,7 +100,7 @@ module Google
|
|
97
100
|
client_config: client_config,
|
98
101
|
service_address: service_address,
|
99
102
|
service_port: service_port,
|
100
|
-
lib_name:
|
103
|
+
lib_name: lib_name_with_prefix,
|
101
104
|
lib_version: Google::Cloud::Spanner::VERSION
|
102
105
|
)
|
103
106
|
end
|
@@ -459,6 +462,14 @@ module Google
|
|
459
462
|
URI.parse("//#{host}").port
|
460
463
|
end
|
461
464
|
|
465
|
+
def lib_name_with_prefix
|
466
|
+
return "gccl" if [nil, "gccl"].include? lib_name
|
467
|
+
|
468
|
+
value = lib_name.dup
|
469
|
+
value << "/#{lib_version}" if lib_version
|
470
|
+
value << " gccl"
|
471
|
+
end
|
472
|
+
|
462
473
|
def default_options_from_session session_name
|
463
474
|
default_prefix = session_name.split("/sessions/").first
|
464
475
|
Google::Gax::CallOptions.new kwargs: \
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: google-cloud-spanner
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.14.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mike Moore
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2020-
|
12
|
+
date: 2020-02-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: google-cloud-core
|