google-cloud-pubsub 2.15.5 → 2.17.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: e2a4108df2f16d93f03bb560375274bb816a5958c8c0ad22ca061943ef40ee24
4
- data.tar.gz: 8efa65c9aed030d0b1832aa8d0aec7ef4e9d8605a427bef6517cf77d9e363d5c
3
+ metadata.gz: 9baf526a8b94705a0743ca0614706046c014c11e9823a255aef8de94eb927962
4
+ data.tar.gz: b90d14a0b11cbfd8685ed11d631d61ba27032d4a91ee71f5ae245e505c3e755b
5
5
  SHA512:
6
- metadata.gz: 1599c8a8adac4fdde84b5782cfa4f4f8c236528452966496a9fce7343b05076772a6c071f99114d7bb93813d0707975e892c262a30616ed13232ce85dfe1b63d
7
- data.tar.gz: 1c661569d004bfc3abd20e60938cad744faa5b474a8df6a67f0b6c36e6c428744e76703fc25e73d20298372894880a40a963a923e21059cd9f4f5454c4b65c01
6
+ metadata.gz: dae5a2eedf9edece6daf5225271961853a1c43490ed64f44ba9f0d2e747cec8eb2943111be2ea608961313697c597e555ceb93fee795e59d992562f0c5fca01a
7
+ data.tar.gz: 5e394bb76ccade24fcb11ac80055cb62fe41f8872e48a2de39ace663e4815aafcee3b977af20dd0ff80f71ad9083c703ef5a3dca4f6606d894f8bf37744c2c1a
data/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # Release History
2
2
 
3
+ ### 2.17.0 (2024-03-07)
4
+
5
+ #### Features
6
+
7
+ * Update minimum supported Ruby version to 2.7 ([#25298](https://github.com/googleapis/google-cloud-ruby/issues/25298))
8
+
9
+ ### 2.16.0 (2024-01-25)
10
+
11
+ #### Features
12
+
13
+ * Support for universe_domain ([#24437](https://github.com/googleapis/google-cloud-ruby/issues/24437))
14
+
3
15
  ### 2.15.5 (2023-11-06)
4
16
 
5
17
  #### Bug Fixes
@@ -69,7 +69,7 @@ module Google
69
69
  data_bytes = String(data).dup.force_encoding(Encoding::ASCII_8BIT).freeze
70
70
 
71
71
  # Convert attributes to strings to match the protobuf definition
72
- attributes = Hash[attributes.map { |k, v| [String(k), String(v)] }]
72
+ attributes = attributes.to_h { |k, v| [String(k), String(v)] }
73
73
 
74
74
  # Ordering Key must always be a string
75
75
  ordering_key = String(ordering_key).freeze
@@ -84,7 +84,6 @@ module Google
84
84
 
85
85
  protected
86
86
 
87
- # rubocop:disable Style/IdenticalConditionalBranches
88
87
  # rubocop:disable Style/GuardClause
89
88
 
90
89
  def acquire_or_wait message_size
@@ -117,7 +116,6 @@ module Google
117
116
  end
118
117
  end
119
118
 
120
- # rubocop:enable Style/IdenticalConditionalBranches
121
119
  # rubocop:enable Style/GuardClause
122
120
 
123
121
  def is_new_and_others_wait? waiter
@@ -62,7 +62,7 @@ module Google
62
62
  # This can be used to publish several messages in bulk.
63
63
  def initialize data = nil, attributes = {}
64
64
  # Convert attributes to strings to match the protobuf definition
65
- attributes = Hash[attributes.map { |k, v| [String(k), String(v)] }]
65
+ attributes = attributes.to_h { |k, v| [String(k), String(v)] }
66
66
 
67
67
  @grpc = Google::Cloud::PubSub::V1::PubsubMessage.new(
68
68
  data: String(data).dup.force_encoding(Encoding::ASCII_8BIT),
@@ -81,8 +81,7 @@ module Google
81
81
  # Optional attributes for the message.
82
82
  def attributes
83
83
  return @grpc.attributes.to_h if @grpc.attributes.respond_to? :to_h
84
- # Enumerable doesn't have to_h on Ruby 2.0, so fallback to this
85
- Hash[@grpc.attributes.to_a]
84
+ @grpc.attributes.to_a.to_h
86
85
  end
87
86
 
88
87
  ##
@@ -76,6 +76,15 @@ module Google
76
76
  end
77
77
  alias project project_id
78
78
 
79
+ ##
80
+ # The universe domain the client is connected to
81
+ #
82
+ # @return [String]
83
+ #
84
+ def universe_domain
85
+ service.universe_domain
86
+ end
87
+
79
88
  ##
80
89
  # Retrieves topic by name.
81
90
  #
@@ -37,14 +37,17 @@ module Google
37
37
  # value to be replaced for unit testing.
38
38
  attr_accessor :client_id
39
39
 
40
+ attr_reader :universe_domain
41
+
40
42
  ##
41
43
  # Creates a new Service instance.
42
- def initialize project, credentials, host: nil, timeout: nil
44
+ def initialize project, credentials, host: nil, timeout: nil, universe_domain: nil
43
45
  @project = project
44
46
  @credentials = credentials
45
47
  @host = host
46
48
  @timeout = timeout
47
49
  @client_id = SecureRandom.uuid.freeze
50
+ @universe_domain = universe_domain || ENV["GOOGLE_CLOUD_UNIVERSE_DOMAIN"] || "googleapis.com"
48
51
  end
49
52
 
50
53
  def subscriber
@@ -53,6 +56,7 @@ module Google
53
56
  config.credentials = credentials if credentials
54
57
  override_client_config_timeouts config if timeout
55
58
  config.endpoint = host if host
59
+ config.universe_domain = universe_domain
56
60
  config.lib_name = "gccl"
57
61
  config.lib_version = Google::Cloud::PubSub::VERSION
58
62
  config.metadata = { "google-cloud-resource-prefix": "projects/#{@project}" }
@@ -66,6 +70,7 @@ module Google
66
70
  config.credentials = credentials if credentials
67
71
  override_client_config_timeouts config if timeout
68
72
  config.endpoint = host if host
73
+ config.universe_domain = universe_domain
69
74
  config.lib_name = "gccl"
70
75
  config.lib_version = Google::Cloud::PubSub::VERSION
71
76
  config.metadata = { "google-cloud-resource-prefix": "projects/#{@project}" }
@@ -75,13 +80,15 @@ module Google
75
80
 
76
81
  def iam
77
82
  return mocked_iam if mocked_iam
78
- @iam ||= V1::IAMPolicy::Client.new do |config|
79
- config.credentials = credentials if credentials
80
- override_client_config_timeouts config if timeout
81
- config.endpoint = host if host
82
- config.lib_name = "gccl"
83
- config.lib_version = Google::Cloud::PubSub::VERSION
84
- config.metadata = { "google-cloud-resource-prefix": "projects/#{@project}" }
83
+ @iam ||= begin
84
+ iam = (@publisher || @subscriber || @schemas || subscriber).iam_policy_client
85
+ iam.configure do |config|
86
+ override_client_config_timeouts config if timeout
87
+ config.lib_name = "gccl"
88
+ config.lib_version = Google::Cloud::PubSub::VERSION
89
+ config.metadata = { "google-cloud-resource-prefix": "projects/#{@project}" }
90
+ end
91
+ iam
85
92
  end
86
93
  end
87
94
  attr_accessor :mocked_iam
@@ -92,6 +99,7 @@ module Google
92
99
  config.credentials = credentials if credentials
93
100
  override_client_config_timeouts config if timeout
94
101
  config.endpoint = host if host
102
+ config.universe_domain = universe_domain
95
103
  config.lib_name = "gccl"
96
104
  config.lib_version = Google::Cloud::PubSub::VERSION
97
105
  config.metadata = { "google-cloud-resource-prefix": "projects/#{@project}" }
@@ -254,7 +262,7 @@ module Google
254
262
  # Modifies the PushConfig for a specified subscription.
255
263
  def modify_push_config subscription, endpoint, attributes
256
264
  # Convert attributes to strings to match the protobuf definition
257
- attributes = Hash[attributes.map { |k, v| [String(k), String(v)] }]
265
+ attributes = attributes.to_h { |k, v| [String(k), String(v)] }
258
266
  push_config = Google::Cloud::PubSub::V1::PushConfig.new(
259
267
  push_endpoint: endpoint,
260
268
  attributes: attributes
@@ -246,7 +246,7 @@ module Google
246
246
  break if synchronize { @stopped }
247
247
 
248
248
  begin
249
- # Cannot syncronize the enumerator, causes deadlock
249
+ # Cannot synchronize the enumerator, causes deadlock
250
250
  response = enum.next
251
251
  new_exactly_once_delivery_enabled = response&.subscription_properties&.exactly_once_delivery_enabled
252
252
  received_messages = response.received_messages
@@ -16,7 +16,7 @@
16
16
  module Google
17
17
  module Cloud
18
18
  module PubSub
19
- VERSION = "2.15.5".freeze
19
+ VERSION = "2.17.0".freeze
20
20
  end
21
21
 
22
22
  Pubsub = PubSub unless const_defined? :Pubsub
@@ -62,6 +62,7 @@ module Google
62
62
  # @param [String] project Alias for the `project_id` argument. Deprecated.
63
63
  # @param [String] keyfile Alias for the `credentials` argument.
64
64
  # Deprecated.
65
+ # @param universe_domain [String] A custom universe domain. Optional.
65
66
  #
66
67
  # @return [Google::Cloud::PubSub::Project]
67
68
  #
@@ -77,34 +78,36 @@ module Google
77
78
  credentials: nil,
78
79
  scope: nil,
79
80
  timeout: nil,
81
+ universe_domain: nil,
80
82
  endpoint: nil,
81
83
  emulator_host: nil,
82
84
  project: nil,
83
85
  keyfile: nil
84
- project_id ||= (project || default_project_id)
85
- scope ||= configure.scope
86
- timeout ||= configure.timeout
87
- endpoint ||= configure.endpoint
86
+ project_id ||= project || default_project_id
87
+ scope ||= configure.scope
88
+ timeout ||= configure.timeout
89
+ endpoint ||= configure.endpoint
90
+ universe_domain ||= configure.universe_domain
88
91
  emulator_host ||= configure.emulator_host
89
92
 
90
93
  if emulator_host
91
- project_id = project_id.to_s # Always cast to a string
92
- raise ArgumentError, "project_id is missing" if project_id.empty?
93
-
94
- service = PubSub::Service.new project_id, :this_channel_is_insecure, host: emulator_host, timeout: timeout
95
- return PubSub::Project.new service
96
- end
97
-
98
- credentials ||= (keyfile || default_credentials(scope: scope))
99
- unless credentials.is_a? Google::Auth::Credentials
100
- credentials = PubSub::Credentials.new credentials, scope: scope
94
+ credentials = :this_channel_is_insecure
95
+ endpoint = emulator_host
96
+ else
97
+ credentials ||= keyfile || default_credentials(scope: scope)
98
+ unless credentials.is_a? Google::Auth::Credentials
99
+ credentials = PubSub::Credentials.new credentials, scope: scope
100
+ end
101
101
  end
102
102
 
103
103
  project_id ||= credentials.project_id if credentials.respond_to? :project_id
104
104
  project_id = project_id.to_s # Always cast to a string
105
105
  raise ArgumentError, "project_id is missing" if project_id.empty?
106
106
 
107
- service = PubSub::Service.new project_id, credentials, host: endpoint, timeout: timeout
107
+ service = PubSub::Service.new project_id, credentials,
108
+ host: endpoint,
109
+ timeout: timeout,
110
+ universe_domain: universe_domain
108
111
  PubSub::Project.new service
109
112
  end
110
113
 
@@ -110,7 +110,7 @@ module Google
110
110
  end
111
111
 
112
112
  # Set the default pubsub configuration
113
- Google::Cloud.configure.add_config! :pubsub do |config|
113
+ Google::Cloud.configure.add_config! :pubsub do |config| # rubocop:disable Metrics/BlockLength
114
114
  default_project = Google::Cloud::Config.deferred do
115
115
  ENV["PUBSUB_PROJECT"]
116
116
  end
@@ -136,5 +136,6 @@ Google::Cloud.configure.add_config! :pubsub do |config|
136
136
  config.add_field! :timeout, nil, match: Numeric
137
137
  config.add_field! :emulator_host, default_emulator, match: String, allow_nil: true
138
138
  config.add_field! :on_error, nil, match: Proc
139
- config.add_field! :endpoint, "pubsub.googleapis.com", match: String
139
+ config.add_field! :endpoint, nil, match: String
140
+ config.add_field! :universe_domain, nil, match: String
140
141
  end
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: 2.15.5
4
+ version: 2.17.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: 2023-11-06 00:00:00.000000000 Z
12
+ date: 2024-03-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: concurrent-ruby
@@ -45,14 +45,14 @@ dependencies:
45
45
  requirements:
46
46
  - - "~>"
47
47
  - !ruby/object:Gem::Version
48
- version: '0.8'
48
+ version: '0.20'
49
49
  type: :runtime
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
53
  - - "~>"
54
54
  - !ruby/object:Gem::Version
55
- version: '0.8'
55
+ version: '0.20'
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: retriable
58
58
  requirement: !ruby/object:Gem::Requirement
@@ -67,160 +67,6 @@ dependencies:
67
67
  - - "~>"
68
68
  - !ruby/object:Gem::Version
69
69
  version: '3.1'
70
- - !ruby/object:Gem::Dependency
71
- name: autotest-suffix
72
- requirement: !ruby/object:Gem::Requirement
73
- requirements:
74
- - - "~>"
75
- - !ruby/object:Gem::Version
76
- version: '1.1'
77
- type: :development
78
- prerelease: false
79
- version_requirements: !ruby/object:Gem::Requirement
80
- requirements:
81
- - - "~>"
82
- - !ruby/object:Gem::Version
83
- version: '1.1'
84
- - !ruby/object:Gem::Dependency
85
- name: avro
86
- requirement: !ruby/object:Gem::Requirement
87
- requirements:
88
- - - "~>"
89
- - !ruby/object:Gem::Version
90
- version: '1.10'
91
- type: :development
92
- prerelease: false
93
- version_requirements: !ruby/object:Gem::Requirement
94
- requirements:
95
- - - "~>"
96
- - !ruby/object:Gem::Version
97
- version: '1.10'
98
- - !ruby/object:Gem::Dependency
99
- name: google-style
100
- requirement: !ruby/object:Gem::Requirement
101
- requirements:
102
- - - "~>"
103
- - !ruby/object:Gem::Version
104
- version: 1.25.1
105
- type: :development
106
- prerelease: false
107
- version_requirements: !ruby/object:Gem::Requirement
108
- requirements:
109
- - - "~>"
110
- - !ruby/object:Gem::Version
111
- version: 1.25.1
112
- - !ruby/object:Gem::Dependency
113
- name: minitest
114
- requirement: !ruby/object:Gem::Requirement
115
- requirements:
116
- - - "~>"
117
- - !ruby/object:Gem::Version
118
- version: '5.16'
119
- type: :development
120
- prerelease: false
121
- version_requirements: !ruby/object:Gem::Requirement
122
- requirements:
123
- - - "~>"
124
- - !ruby/object:Gem::Version
125
- version: '5.16'
126
- - !ruby/object:Gem::Dependency
127
- name: minitest-autotest
128
- requirement: !ruby/object:Gem::Requirement
129
- requirements:
130
- - - "~>"
131
- - !ruby/object:Gem::Version
132
- version: '1.0'
133
- type: :development
134
- prerelease: false
135
- version_requirements: !ruby/object:Gem::Requirement
136
- requirements:
137
- - - "~>"
138
- - !ruby/object:Gem::Version
139
- version: '1.0'
140
- - !ruby/object:Gem::Dependency
141
- name: minitest-focus
142
- requirement: !ruby/object:Gem::Requirement
143
- requirements:
144
- - - "~>"
145
- - !ruby/object:Gem::Version
146
- version: '1.1'
147
- type: :development
148
- prerelease: false
149
- version_requirements: !ruby/object:Gem::Requirement
150
- requirements:
151
- - - "~>"
152
- - !ruby/object:Gem::Version
153
- version: '1.1'
154
- - !ruby/object:Gem::Dependency
155
- name: minitest-rg
156
- requirement: !ruby/object:Gem::Requirement
157
- requirements:
158
- - - "~>"
159
- - !ruby/object:Gem::Version
160
- version: '5.2'
161
- type: :development
162
- prerelease: false
163
- version_requirements: !ruby/object:Gem::Requirement
164
- requirements:
165
- - - "~>"
166
- - !ruby/object:Gem::Version
167
- version: '5.2'
168
- - !ruby/object:Gem::Dependency
169
- name: redcarpet
170
- requirement: !ruby/object:Gem::Requirement
171
- requirements:
172
- - - "~>"
173
- - !ruby/object:Gem::Version
174
- version: '3.0'
175
- type: :development
176
- prerelease: false
177
- version_requirements: !ruby/object:Gem::Requirement
178
- requirements:
179
- - - "~>"
180
- - !ruby/object:Gem::Version
181
- version: '3.0'
182
- - !ruby/object:Gem::Dependency
183
- name: simplecov
184
- requirement: !ruby/object:Gem::Requirement
185
- requirements:
186
- - - "~>"
187
- - !ruby/object:Gem::Version
188
- version: '0.9'
189
- type: :development
190
- prerelease: false
191
- version_requirements: !ruby/object:Gem::Requirement
192
- requirements:
193
- - - "~>"
194
- - !ruby/object:Gem::Version
195
- version: '0.9'
196
- - !ruby/object:Gem::Dependency
197
- name: yard
198
- requirement: !ruby/object:Gem::Requirement
199
- requirements:
200
- - - "~>"
201
- - !ruby/object:Gem::Version
202
- version: '0.9'
203
- type: :development
204
- prerelease: false
205
- version_requirements: !ruby/object:Gem::Requirement
206
- requirements:
207
- - - "~>"
208
- - !ruby/object:Gem::Version
209
- version: '0.9'
210
- - !ruby/object:Gem::Dependency
211
- name: yard-doctest
212
- requirement: !ruby/object:Gem::Requirement
213
- requirements:
214
- - - "~>"
215
- - !ruby/object:Gem::Version
216
- version: 0.1.13
217
- type: :development
218
- prerelease: false
219
- version_requirements: !ruby/object:Gem::Requirement
220
- requirements:
221
- - - "~>"
222
- - !ruby/object:Gem::Version
223
- version: 0.1.13
224
70
  description: google-cloud-pubsub is the official library for Google Cloud Pub/Sub.
225
71
  email:
226
72
  - mike@blowmage.com
@@ -284,14 +130,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
284
130
  requirements:
285
131
  - - ">="
286
132
  - !ruby/object:Gem::Version
287
- version: '2.5'
133
+ version: '2.7'
288
134
  required_rubygems_version: !ruby/object:Gem::Requirement
289
135
  requirements:
290
136
  - - ">="
291
137
  - !ruby/object:Gem::Version
292
138
  version: '0'
293
139
  requirements: []
294
- rubygems_version: 3.4.19
140
+ rubygems_version: 3.5.6
295
141
  signing_key:
296
142
  specification_version: 4
297
143
  summary: API Client library for Google Cloud Pub/Sub