google-gax 1.6.3 → 1.7.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9847ac9e9a0a70858ef968b78959f0a937683b615a42d0c68bbad0afc6c6b177
4
- data.tar.gz: 074c7489303474af0d4fcbb3274284752dbb2a8df4a32ddbd3587e262946abf0
3
+ metadata.gz: 7271bd48161698b84de9f66e337c3742e44b765f75fa1344c2e59b3608359e65
4
+ data.tar.gz: d2483f6d0f41e82f6655a1d5893712785721b73b7c675772752f457c9de0986e
5
5
  SHA512:
6
- metadata.gz: c72b11044418c8e9f83fdad9e218e5ecf7b48b981b5dc7b824d73b5aff270ade922f9725e382ab2edd8823c6abaf5acc9f03df09d6769b01c85a31cc5046c582
7
- data.tar.gz: 62af70fe132c6c8dd47a5ea6fac5eaa702bf4ae522faa5055b0c76c6fa6f5ab35025137e9375f9cee5cebdcae99dab078b8886bbdea2efbc2340884a1012e1f7
6
+ metadata.gz: 8b92de0ba1398fd9d71a7cdd66aa000975677996fefcfdcf4828d12c6fff7194c0b93da9178eaf26d51d924f77dc3b493ad3bffba5011d1e8ea7bfb670d92311
7
+ data.tar.gz: cf0103edeab0f7e8244b2e008d72974bb7562236281d6eed0ce2466740f48a56a433d934286d9205d89d84382003ace8f55527250cba09b4868b6b57b80b74e1
@@ -122,11 +122,13 @@ module Google
122
122
  interceptors: [])
123
123
  verify_params(channel, chan_creds, updater_proc)
124
124
  address = "#{service_path}:#{port}"
125
+ default_channel_args = { 'grpc.service_config_disable_resolution' => 1 }
125
126
  if channel
126
127
  yield(address, nil, channel_override: channel,
127
128
  interceptors: interceptors)
128
129
  elsif chan_creds
129
- yield(address, chan_creds, interceptors: interceptors)
130
+ yield(address, chan_creds, interceptors: interceptors,
131
+ channel_args: default_channel_args)
130
132
  else
131
133
  if updater_proc.nil?
132
134
  auth_creds = Google::Auth.get_application_default(scopes)
@@ -134,7 +136,8 @@ module Google
134
136
  end
135
137
  call_creds = GRPC::Core::CallCredentials.new(updater_proc)
136
138
  chan_creds = GRPC::Core::ChannelCredentials.new.compose(call_creds)
137
- yield(address, chan_creds, interceptors: interceptors)
139
+ yield(address, chan_creds, interceptors: interceptors,
140
+ channel_args: default_channel_args)
138
141
  end
139
142
  end
140
143
 
@@ -29,6 +29,6 @@
29
29
 
30
30
  module Google
31
31
  module Gax
32
- VERSION = '1.6.3'.freeze
32
+ VERSION = '1.7.0'.freeze
33
33
  end
34
34
  end
@@ -1,4 +1,5 @@
1
- # Copyright 2017, Google LLC All rights reserved.
1
+ # Copyright 2017, Google LLC
2
+ # All rights reserved.
2
3
  #
3
4
  # Redistribution and use in source and binary forms, with or without
4
5
  # modification, are permitted provided that the following conditions are
@@ -108,6 +109,10 @@ module Google
108
109
  # or the specified config is missing data points.
109
110
  # @param timeout [Numeric]
110
111
  # The default timeout, in seconds, for calls made through this client.
112
+ # @param service_address [String]
113
+ # The hostname of the backend service. Defaults to {SERVICE_ADDRESS}.
114
+ # @param service_port [Integer]
115
+ # The port of the backend service. Defaults to {DEFAULT_SERVICE_PORT}.
111
116
  # @param metadata [Hash]
112
117
  # The request metadata headers.
113
118
  def initialize \
@@ -117,6 +122,8 @@ module Google
117
122
  timeout: DEFAULT_TIMEOUT,
118
123
  lib_name: nil,
119
124
  lib_version: "",
125
+ service_address: nil,
126
+ service_port: nil,
120
127
  metadata: nil
121
128
  # These require statements are intentionally placed here to initialize
122
129
  # the gRPC module only when it's required.
@@ -169,8 +176,8 @@ module Google
169
176
  end
170
177
 
171
178
  # Allow overriding the service path/port in subclasses.
172
- service_path = self.class::SERVICE_ADDRESS
173
- port = self.class::DEFAULT_SERVICE_PORT
179
+ service_path = service_address || self.class::SERVICE_ADDRESS
180
+ port = service_port || self.class::DEFAULT_SERVICE_PORT
174
181
  @operations_stub = Google::Gax::Grpc.create_stub(
175
182
  service_path,
176
183
  port,
@@ -35,6 +35,7 @@ describe Google::Gax::Grpc do
35
35
  mock = instance_double(GRPC::Core::ChannelCredentials)
36
36
  composed_mock = instance_double(GRPC::Core::ChannelCredentials)
37
37
  default_creds = instance_double(Google::Auth::ServiceAccountCredentials)
38
+ channel_args = { 'grpc.service_config_disable_resolution' => 1 }
38
39
  updater_proc = proc {}
39
40
 
40
41
  allow(Google::Auth)
@@ -45,7 +46,10 @@ describe Google::Gax::Grpc do
45
46
 
46
47
  expect do |blk|
47
48
  Google::Gax::Grpc.create_stub('service', 'port', &blk)
48
- end.to yield_with_args('service:port', composed_mock, interceptors: [])
49
+ end.to yield_with_args(
50
+ 'service:port', composed_mock,
51
+ interceptors: [], channel_args: channel_args
52
+ )
49
53
  end
50
54
 
51
55
  it 'yields given channel' do
@@ -85,25 +89,28 @@ describe Google::Gax::Grpc do
85
89
  end
86
90
 
87
91
  it 'yields given channel credentials' do
92
+ channel_args = { 'grpc.service_config_disable_resolution' => 1 }
88
93
  mock = instance_double(GRPC::Core::ChannelCredentials)
89
94
  expect do |blk|
90
95
  Google::Gax::Grpc.create_stub(
91
96
  'service', 'port', chan_creds: mock, &blk
92
97
  )
93
98
  end.to yield_with_args(
94
- 'service:port', mock, interceptors: []
99
+ 'service:port', mock, interceptors: [], channel_args: channel_args
95
100
  )
96
101
  end
97
102
 
98
103
  it 'yields given channel credentials and interceptors' do
99
104
  mock = instance_double(GRPC::Core::ChannelCredentials)
100
105
  interceptors = instance_double(Array)
106
+ channel_args = { 'grpc.service_config_disable_resolution' => 1 }
101
107
  expect do |blk|
102
108
  Google::Gax::Grpc.create_stub(
103
109
  'service', 'port', chan_creds: mock, interceptors: interceptors, &blk
104
110
  )
105
111
  end.to yield_with_args(
106
- 'service:port', mock, interceptors: interceptors
112
+ 'service:port', mock,
113
+ interceptors: interceptors, channel_args: channel_args
107
114
  )
108
115
  end
109
116
 
@@ -112,6 +119,7 @@ describe Google::Gax::Grpc do
112
119
  composed_chan_creds = instance_double(GRPC::Core::ChannelCredentials)
113
120
  call_creds = instance_double(GRPC::Core::CallCredentials)
114
121
  updater_proc = proc {}
122
+ channel_args = { 'grpc.service_config_disable_resolution' => 1 }
115
123
 
116
124
  allow(GRPC::Core::CallCredentials)
117
125
  .to receive(:new).with(updater_proc).and_return(call_creds)
@@ -124,7 +132,8 @@ describe Google::Gax::Grpc do
124
132
  'service', 'port', updater_proc: updater_proc, &blk
125
133
  )
126
134
  end.to yield_with_args(
127
- 'service:port', composed_chan_creds, interceptors: []
135
+ 'service:port', composed_chan_creds,
136
+ interceptors: [], channel_args: channel_args
128
137
  )
129
138
  end
130
139
 
@@ -0,0 +1,73 @@
1
+ # Copyright 2019, Google LLC
2
+ # All rights reserved.
3
+ #
4
+ # Redistribution and use in source and binary forms, with or without
5
+ # modification, are permitted provided that the following conditions are
6
+ # met:
7
+ #
8
+ # * Redistributions of source code must retain the above copyright
9
+ # notice, this list of conditions and the following disclaimer.
10
+ # * Redistributions in binary form must reproduce the above
11
+ # copyright notice, this list of conditions and the following disclaimer
12
+ # in the documentation and/or other materials provided with the
13
+ # distribution.
14
+ # * Neither the name of Google LLC nor the names of its
15
+ # contributors may be used to endorse or promote products derived from
16
+ # this software without specific prior written permission.
17
+ #
18
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19
+ # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20
+ # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21
+ # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22
+ # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23
+ # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24
+ # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25
+ # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26
+ # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27
+ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28
+ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29
+
30
+ require 'google/gax'
31
+ require 'google/longrunning/operations_client'
32
+
33
+ class MockCredentials < Google::Auth::Credentials
34
+ def initialize; end
35
+
36
+ def updater_proc
37
+ proc do
38
+ raise 'The credentials tried to make an update request. This should' \
39
+ ' not happen since the grpc layer is being mocked.'
40
+ end
41
+ end
42
+ end
43
+
44
+ describe Google::Longrunning::OperationsClient do
45
+ it 'uses the default address' do
46
+ client = Google::Longrunning::OperationsClient.new(
47
+ credentials: MockCredentials.new
48
+ )
49
+ host = client.instance_variable_get(:@operations_stub)
50
+ .instance_variable_get(:@host)
51
+ expect(host).to eq('longrunning.googleapis.com:443')
52
+ end
53
+
54
+ it 'supports subclass overriding of the address' do
55
+ class CustomClient < Google::Longrunning::OperationsClient
56
+ SERVICE_ADDRESS = 'my-service.example.com'.freeze
57
+ DEFAULT_SERVICE_PORT = 8080
58
+ end
59
+ client = CustomClient.new(credentials: MockCredentials.new)
60
+ host = client.instance_variable_get(:@operations_stub)
61
+ .instance_variable_get(:@host)
62
+ expect(host).to eq('my-service.example.com:8080')
63
+ end
64
+
65
+ it 'supports parameter overriding of the address' do
66
+ client = CustomClient.new(credentials: MockCredentials.new,
67
+ service_address: 'foo-service.example.com',
68
+ service_port: 8081)
69
+ host = client.instance_variable_get(:@operations_stub)
70
+ .instance_variable_get(:@host)
71
+ expect(host).to eq('foo-service.example.com:8081')
72
+ end
73
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-gax
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.3
4
+ version: 1.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Google API Authors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-06-04 00:00:00.000000000 Z
11
+ date: 2019-06-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: googleauth
@@ -201,6 +201,7 @@ files:
201
201
  - spec/google/gax/path_template_spec.rb
202
202
  - spec/google/gax/settings_spec.rb
203
203
  - spec/google/gax/util_spec.rb
204
+ - spec/google/longrunning_spec.rb
204
205
  - spec/spec_helper.rb
205
206
  homepage: https://github.com/googleapis/gax-ruby
206
207
  licenses: