google-cloud-pubsub 0.37.0 → 0.37.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/CHANGELOG.md +6 -0
- data/lib/google/cloud/pubsub/subscriber/timed_unary_buffer.rb +26 -12
- data/lib/google/cloud/pubsub/v1/doc/google/iam/v1/options.rb +21 -0
- data/lib/google/cloud/pubsub/v1/publisher_client.rb +16 -3
- data/lib/google/cloud/pubsub/v1/subscriber_client.rb +16 -3
- data/lib/google/cloud/pubsub/version.rb +1 -1
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9ca95d3d409fb3fd3061e5e9bb0e34eed7d8efdd3677c4de6e34dbed26499eae
|
4
|
+
data.tar.gz: e7a16095e21f9a166461cbecbc4c95a4895421762da8c644a866cbce95a0e19b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2ad6bd6779827fcd87e613832f7a47cc73331615dcd3564d223776cea9d8469890829a7c2f8dd5bd989f1ffb5147c2fc8197086ce3e32994d40786c38141e1d7
|
7
|
+
data.tar.gz: f056480612e86fac7b2339067dae67c6d393cfc0864d30dcba8a492f3db25d6e6e269385d00dd5e85fd9de22d00cc577227b557e18aa4f3fe5f0244d1416c0d2
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
# Release History
|
2
2
|
|
3
|
+
### 0.37.1 / 2019-07-09
|
4
|
+
|
5
|
+
* Add IAM GetPolicyOptions in the lower-level interface.
|
6
|
+
* Support overriding service host and port in the low-level interface.
|
7
|
+
* Fixed race in TimedUnaryBuffer.
|
8
|
+
|
3
9
|
### 0.37.0 / 2019-06-17
|
4
10
|
|
5
11
|
* Add Topic#persistence_regions
|
@@ -14,6 +14,7 @@
|
|
14
14
|
|
15
15
|
|
16
16
|
require "concurrent"
|
17
|
+
require "monitor"
|
17
18
|
|
18
19
|
module Google
|
19
20
|
module Cloud
|
@@ -22,9 +23,13 @@ module Google
|
|
22
23
|
##
|
23
24
|
# @private
|
24
25
|
class TimedUnaryBuffer
|
26
|
+
include MonitorMixin
|
27
|
+
|
25
28
|
attr_reader :max_bytes, :interval
|
26
29
|
|
27
30
|
def initialize subscriber, max_bytes: 10000000, interval: 1.0
|
31
|
+
super() # to init MonitorMixin
|
32
|
+
|
28
33
|
@subscriber = subscriber
|
29
34
|
@max_bytes = max_bytes
|
30
35
|
@interval = interval
|
@@ -42,9 +47,11 @@ module Google
|
|
42
47
|
def acknowledge ack_ids
|
43
48
|
return if ack_ids.empty?
|
44
49
|
|
45
|
-
|
46
|
-
|
47
|
-
|
50
|
+
synchronize do
|
51
|
+
ack_ids.each do |ack_id|
|
52
|
+
# ack has no deadline set, use :ack indicate it is an ack
|
53
|
+
@register[ack_id] = :ack
|
54
|
+
end
|
48
55
|
end
|
49
56
|
|
50
57
|
true
|
@@ -53,8 +60,10 @@ module Google
|
|
53
60
|
def modify_ack_deadline deadline, ack_ids
|
54
61
|
return if ack_ids.empty?
|
55
62
|
|
56
|
-
|
57
|
-
|
63
|
+
synchronize do
|
64
|
+
ack_ids.each do |ack_id|
|
65
|
+
@register[ack_id] = deadline
|
66
|
+
end
|
58
67
|
end
|
59
68
|
|
60
69
|
true
|
@@ -63,9 +72,11 @@ module Google
|
|
63
72
|
def renew_lease deadline, ack_ids
|
64
73
|
return if ack_ids.empty?
|
65
74
|
|
66
|
-
|
67
|
-
|
68
|
-
|
75
|
+
synchronize do
|
76
|
+
ack_ids.each do |ack_id|
|
77
|
+
# Don't overwrite pending actions when renewing leased messages.
|
78
|
+
@register[ack_id] ||= deadline
|
79
|
+
end
|
69
80
|
end
|
70
81
|
|
71
82
|
true
|
@@ -120,10 +131,13 @@ module Google
|
|
120
131
|
private
|
121
132
|
|
122
133
|
def flush_requests!
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
134
|
+
prev_reg =
|
135
|
+
synchronize do
|
136
|
+
return {} if @register.empty?
|
137
|
+
reg = @register
|
138
|
+
@register = Concurrent::Map.new
|
139
|
+
reg
|
140
|
+
end
|
127
141
|
|
128
142
|
groups = prev_reg.each_pair.group_by { |_ack_id, delay| delay }
|
129
143
|
req_hash = Hash[groups.map { |k, v| [k, v.map(&:first)] }]
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# Copyright 2019 Google LLC
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# https://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
|
16
|
+
module Google
|
17
|
+
module Iam
|
18
|
+
module V1
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -146,6 +146,10 @@ module Google
|
|
146
146
|
# The default timeout, in seconds, for calls made through this client.
|
147
147
|
# @param metadata [Hash]
|
148
148
|
# Default metadata to be sent with each request. This can be overridden on a per call basis.
|
149
|
+
# @param service_address [String]
|
150
|
+
# Override for the service hostname, or `nil` to leave as the default.
|
151
|
+
# @param service_port [Integer]
|
152
|
+
# Override for the service port, or `nil` to leave as the default.
|
149
153
|
# @param exception_transformer [Proc]
|
150
154
|
# An optional proc that intercepts any exceptions raised during an API call to inject
|
151
155
|
# custom error handling.
|
@@ -155,6 +159,8 @@ module Google
|
|
155
159
|
client_config: {},
|
156
160
|
timeout: DEFAULT_TIMEOUT,
|
157
161
|
metadata: nil,
|
162
|
+
service_address: nil,
|
163
|
+
service_port: nil,
|
158
164
|
exception_transformer: nil,
|
159
165
|
lib_name: nil,
|
160
166
|
lib_version: ""
|
@@ -211,8 +217,8 @@ module Google
|
|
211
217
|
end
|
212
218
|
|
213
219
|
# Allow overriding the service path/port in subclasses.
|
214
|
-
service_path = self.class::SERVICE_ADDRESS
|
215
|
-
port = self.class::DEFAULT_SERVICE_PORT
|
220
|
+
service_path = service_address || self.class::SERVICE_ADDRESS
|
221
|
+
port = service_port || self.class::DEFAULT_SERVICE_PORT
|
216
222
|
interceptors = self.class::GRPC_INTERCEPTORS
|
217
223
|
@iam_policy_stub = Google::Gax::Grpc.create_stub(
|
218
224
|
service_path,
|
@@ -698,6 +704,11 @@ module Google
|
|
698
704
|
# @param resource [String]
|
699
705
|
# REQUIRED: The resource for which the policy is being requested.
|
700
706
|
# See the operation documentation for the appropriate value for this field.
|
707
|
+
# @param options_ [Google::Iam::V1::GetPolicyOptions | Hash]
|
708
|
+
# OPTIONAL: A `GetPolicyOptions` object for specifying options to
|
709
|
+
# `GetIamPolicy`. This field is only used by Cloud IAM.
|
710
|
+
# A hash of the same form as `Google::Iam::V1::GetPolicyOptions`
|
711
|
+
# can also be provided.
|
701
712
|
# @param options [Google::Gax::CallOptions]
|
702
713
|
# Overrides the default settings for this call, e.g, timeout,
|
703
714
|
# retries, etc.
|
@@ -715,10 +726,12 @@ module Google
|
|
715
726
|
|
716
727
|
def get_iam_policy \
|
717
728
|
resource,
|
729
|
+
options_: nil,
|
718
730
|
options: nil,
|
719
731
|
&block
|
720
732
|
req = {
|
721
|
-
resource: resource
|
733
|
+
resource: resource,
|
734
|
+
options: options_
|
722
735
|
}.delete_if { |_, v| v.nil? }
|
723
736
|
req = Google::Gax::to_proto(req, Google::Iam::V1::GetIamPolicyRequest)
|
724
737
|
@get_iam_policy.call(req, options, &block)
|
@@ -170,6 +170,10 @@ module Google
|
|
170
170
|
# The default timeout, in seconds, for calls made through this client.
|
171
171
|
# @param metadata [Hash]
|
172
172
|
# Default metadata to be sent with each request. This can be overridden on a per call basis.
|
173
|
+
# @param service_address [String]
|
174
|
+
# Override for the service hostname, or `nil` to leave as the default.
|
175
|
+
# @param service_port [Integer]
|
176
|
+
# Override for the service port, or `nil` to leave as the default.
|
173
177
|
# @param exception_transformer [Proc]
|
174
178
|
# An optional proc that intercepts any exceptions raised during an API call to inject
|
175
179
|
# custom error handling.
|
@@ -179,6 +183,8 @@ module Google
|
|
179
183
|
client_config: {},
|
180
184
|
timeout: DEFAULT_TIMEOUT,
|
181
185
|
metadata: nil,
|
186
|
+
service_address: nil,
|
187
|
+
service_port: nil,
|
182
188
|
exception_transformer: nil,
|
183
189
|
lib_name: nil,
|
184
190
|
lib_version: ""
|
@@ -234,8 +240,8 @@ module Google
|
|
234
240
|
end
|
235
241
|
|
236
242
|
# Allow overriding the service path/port in subclasses.
|
237
|
-
service_path = self.class::SERVICE_ADDRESS
|
238
|
-
port = self.class::DEFAULT_SERVICE_PORT
|
243
|
+
service_path = service_address || self.class::SERVICE_ADDRESS
|
244
|
+
port = service_port || self.class::DEFAULT_SERVICE_PORT
|
239
245
|
interceptors = self.class::GRPC_INTERCEPTORS
|
240
246
|
@iam_policy_stub = Google::Gax::Grpc.create_stub(
|
241
247
|
service_path,
|
@@ -1274,6 +1280,11 @@ module Google
|
|
1274
1280
|
# @param resource [String]
|
1275
1281
|
# REQUIRED: The resource for which the policy is being requested.
|
1276
1282
|
# See the operation documentation for the appropriate value for this field.
|
1283
|
+
# @param options_ [Google::Iam::V1::GetPolicyOptions | Hash]
|
1284
|
+
# OPTIONAL: A `GetPolicyOptions` object for specifying options to
|
1285
|
+
# `GetIamPolicy`. This field is only used by Cloud IAM.
|
1286
|
+
# A hash of the same form as `Google::Iam::V1::GetPolicyOptions`
|
1287
|
+
# can also be provided.
|
1277
1288
|
# @param options [Google::Gax::CallOptions]
|
1278
1289
|
# Overrides the default settings for this call, e.g, timeout,
|
1279
1290
|
# retries, etc.
|
@@ -1291,10 +1302,12 @@ module Google
|
|
1291
1302
|
|
1292
1303
|
def get_iam_policy \
|
1293
1304
|
resource,
|
1305
|
+
options_: nil,
|
1294
1306
|
options: nil,
|
1295
1307
|
&block
|
1296
1308
|
req = {
|
1297
|
-
resource: resource
|
1309
|
+
resource: resource,
|
1310
|
+
options: options_
|
1298
1311
|
}.delete_if { |_, v| v.nil? }
|
1299
1312
|
req = Google::Gax::to_proto(req, Google::Iam::V1::GetIamPolicyRequest)
|
1300
1313
|
@get_iam_policy.call(req, options, &block)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: google-cloud-pubsub
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.37.
|
4
|
+
version: 0.37.1
|
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: 2019-
|
12
|
+
date: 2019-07-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: google-cloud-core
|
@@ -31,14 +31,14 @@ dependencies:
|
|
31
31
|
requirements:
|
32
32
|
- - "~>"
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version: '1.
|
34
|
+
version: '1.7'
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
39
|
- - "~>"
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version: '1.
|
41
|
+
version: '1.7'
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: googleapis-common-protos
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
@@ -272,6 +272,7 @@ files:
|
|
272
272
|
- lib/google/cloud/pubsub/v1.rb
|
273
273
|
- lib/google/cloud/pubsub/v1/credentials.rb
|
274
274
|
- lib/google/cloud/pubsub/v1/doc/google/iam/v1/iam_policy.rb
|
275
|
+
- lib/google/cloud/pubsub/v1/doc/google/iam/v1/options.rb
|
275
276
|
- lib/google/cloud/pubsub/v1/doc/google/iam/v1/policy.rb
|
276
277
|
- lib/google/cloud/pubsub/v1/doc/google/protobuf/duration.rb
|
277
278
|
- lib/google/cloud/pubsub/v1/doc/google/protobuf/empty.rb
|