ruby-kafka 0.5.3 → 0.5.4.beta1

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
- SHA1:
3
- metadata.gz: 48ff478bed517af54383f5751c8d2bff8e2d9af6
4
- data.tar.gz: 5238160c645a2a491ec75292f2c1a62e99f0fac6
2
+ SHA256:
3
+ metadata.gz: 3f2428155820ec46ad40498451f7b856e2a57b4a611a20f92e855bb9f823293c
4
+ data.tar.gz: ecaff2f5cc423e696864e02ff0179e4ba35b7669d04c5a5e26599b673c193482
5
5
  SHA512:
6
- metadata.gz: eae662a727f7da9a533ccb9c7fa2054dc56187f60b1fed56f2c6e4b78cc56aa3e0e42b8c03bfa228ee754fdf5a9edff431314a5b40d6c2d585e30ad5d0a5f3e3
7
- data.tar.gz: 34f00949dc40559aa6d0154e93dfa03e0d9db17834a55c2cdf7b03fced2b8c8993cbee6301852135e91e8f086efe99f859088720f42c4b733277df8b1420126f
6
+ metadata.gz: e0f41a3e496158c497baa2acfbc1d86e7f6950f1fcddba614f7f082c58c8b710a27caf44913ba5c28b7b1f212a25b9626ff58c550f59a32829050309218e21cf
7
+ data.tar.gz: 8efe6b6cf6ec7835d404c40eaead957e4fd4232bf1a73349d49cd79cca4131228aa2eb82ccc090504b317bd6556570841ea8af21e374f3f6bff54e1b429e95b1
@@ -4,6 +4,11 @@ Changes and additions to the library will be listed here.
4
4
 
5
5
  ## Unreleased
6
6
 
7
+ - Add support for config entries in the topic creation API.
8
+ - Don't fail on retry when the cluster is secured (#545).
9
+
10
+ ## v0.5.3
11
+
7
12
  - Add support for the topic deletion API (#528).
8
13
  - Add support for the partition creation API (#533).
9
14
  - Allow passing in the seed brokers in a positional argument (#538).
@@ -19,12 +19,17 @@ module Kafka
19
19
 
20
20
  # @return [String]
21
21
  def to_s
22
- "#{connection} (node_id=#{@node_id.inspect})"
22
+ "#{@host}:#{@port} (node_id=#{@node_id.inspect})"
23
23
  end
24
24
 
25
25
  # @return [nil]
26
26
  def disconnect
27
- connection.close
27
+ connection.close if connected?
28
+ end
29
+
30
+ # @return [Boolean]
31
+ def connected?
32
+ !@connection.nil?
28
33
  end
29
34
 
30
35
  # Fetches cluster metadata from the broker.
@@ -405,10 +405,7 @@ module Kafka
405
405
  # @param topic [String] the topic to consume messages from.
406
406
  #
407
407
  # @param start_from_beginning [Boolean] whether to start from the beginning
408
- # of the topic or just subscribe to new messages being produced. This
409
- # only applies when first consuming a topic partition – once the consumer
410
- # has checkpointed its progress, it will always resume from the last
411
- # checkpoint.
408
+ # of the topic or just subscribe to new messages being produced.
412
409
  #
413
410
  # @param max_wait_time [Integer] the maximum amount of time to wait before
414
411
  # the server responds, in seconds.
@@ -451,16 +448,32 @@ module Kafka
451
448
 
452
449
  # Creates a topic in the cluster.
453
450
  #
451
+ # @example Creating a topic with log compaction
452
+ # # Enable log compaction:
453
+ # config = { "cleanup.policy" => "compact" }
454
+ #
455
+ # # Create the topic:
456
+ # kafka.create_topic("dns-mappings", config: config)
457
+ #
454
458
  # @param name [String] the name of the topic.
455
459
  # @param num_partitions [Integer] the number of partitions that should be created
456
460
  # in the topic.
457
461
  # @param replication_factor [Integer] the replication factor of the topic.
458
462
  # @param timeout [Integer] a duration of time to wait for the topic to be
459
463
  # completely created.
464
+ # @param config [Hash] topic configuration entries. See
465
+ # [the Kafka documentation](https://kafka.apache.org/documentation/#topicconfigs)
466
+ # for more information.
460
467
  # @raise [Kafka::TopicAlreadyExists] if the topic already exists.
461
468
  # @return [nil]
462
- def create_topic(name, num_partitions: 1, replication_factor: 1, timeout: 30)
463
- @cluster.create_topic(name, num_partitions: num_partitions, replication_factor: replication_factor, timeout: timeout)
469
+ def create_topic(name, num_partitions: 1, replication_factor: 1, timeout: 30, config: {})
470
+ @cluster.create_topic(
471
+ name,
472
+ num_partitions: num_partitions,
473
+ replication_factor: replication_factor,
474
+ timeout: timeout,
475
+ config: config,
476
+ )
464
477
  end
465
478
 
466
479
  # Delete a topic in the cluster.
@@ -156,12 +156,13 @@ module Kafka
156
156
  raise
157
157
  end
158
158
 
159
- def create_topic(name, num_partitions:, replication_factor:, timeout:)
159
+ def create_topic(name, num_partitions:, replication_factor:, timeout:, config:)
160
160
  options = {
161
161
  topics: {
162
162
  name => {
163
163
  num_partitions: num_partitions,
164
164
  replication_factor: replication_factor,
165
+ config: config,
165
166
  }
166
167
  },
167
168
  timeout: timeout,
@@ -28,7 +28,10 @@ module Kafka
28
28
  encoder.write_array([])
29
29
 
30
30
  # Config entries. We don't care.
31
- encoder.write_array([])
31
+ encoder.write_array(config.fetch(:config)) do |config_name, config_value|
32
+ encoder.write_string(config_name)
33
+ encoder.write_string(config_value)
34
+ end
32
35
  end
33
36
 
34
37
  # Timeout is in ms.
@@ -1,3 +1,3 @@
1
1
  module Kafka
2
- VERSION = "0.5.3"
2
+ VERSION = "0.5.4.beta1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-kafka
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.3
4
+ version: 0.5.4.beta1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Schierbeck
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-02-05 00:00:00.000000000 Z
11
+ date: 2018-03-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -402,12 +402,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
402
402
  version: 2.1.0
403
403
  required_rubygems_version: !ruby/object:Gem::Requirement
404
404
  requirements:
405
- - - ">="
405
+ - - ">"
406
406
  - !ruby/object:Gem::Version
407
- version: '0'
407
+ version: 1.3.1
408
408
  requirements: []
409
409
  rubyforge_project:
410
- rubygems_version: 2.6.13
410
+ rubygems_version: 2.7.6
411
411
  signing_key:
412
412
  specification_version: 4
413
413
  summary: A client library for the Kafka distributed commit log.