Skip to content

Commit 2bd3dfd

Browse files
authored
chore: feedback produce consume (#1638)
* fix: add feedback to produce consume * fix: print partition for consumptions * fix: doc fix * fix: add partition when consuming from all partitions * fix: partition as key
1 parent b6a8603 commit 2bd3dfd

File tree

3 files changed

+21
-10
lines changed

3 files changed

+21
-10
lines changed

docs/commands/rhoas_kafka_topic_consume.md

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/cmd/kafka/topic/consume/consume.go

+15-9
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@ import (
88

99
kafkaflagutil "github.com/redhat-developer/app-services-cli/pkg/cmd/kafka/flagutil"
1010

11-
"strings"
12-
1311
"github.com/redhat-developer/app-services-cli/pkg/cmd/kafka/kafkacmdutil"
1412
"github.com/redhat-developer/app-services-cli/pkg/core/cmdutil/flagutil"
1513
"github.com/redhat-developer/app-services-cli/pkg/core/ioutil/dump"
@@ -26,6 +24,7 @@ const (
2624
DefaultOffset = ""
2725
DefaultLimit = 20
2826
DefaultTimestamp = ""
27+
DefaultPartition = -1
2928
FormatKeyValue = "key-value"
3029
)
3130

@@ -84,7 +83,7 @@ func NewConsumeTopicCommand(f *factory.Factory) *cobra.Command {
8483
flags := kafkaflagutil.NewFlagSet(cmd, f.Localizer)
8584

8685
flags.StringVar(&opts.topicName, "name", "", f.Localizer.MustLocalize("kafka.topic.common.flag.name.description"))
87-
flags.Int32Var(&opts.partition, "partition", 0, f.Localizer.MustLocalize("kafka.topic.consume.flag.partition.description"))
86+
flags.Int32Var(&opts.partition, "partition", DefaultPartition, f.Localizer.MustLocalize("kafka.topic.consume.flag.partition.description"))
8887
flags.StringVar(&opts.date, "from-date", DefaultTimestamp, f.Localizer.MustLocalize("kafka.topic.consume.flag.date.description"))
8988
flags.StringVar(&opts.timestamp, "from-timestamp", DefaultTimestamp, f.Localizer.MustLocalize("kafka.topic.consume.flag.timestamp.description"))
9089
flags.BoolVar(&opts.wait, "wait", false, f.Localizer.MustLocalize("kafka.topic.consume.flag.wait.description"))
@@ -191,8 +190,11 @@ func consumeAndWait(opts *options, api *kafkainstanceclient.APIClient, kafkaInst
191190

192191
func consume(opts *options, api *kafkainstanceclient.APIClient, kafkaInstance *kafkamgmtclient.KafkaRequest) (*kafkainstanceclient.RecordList, error) {
193192

194-
request := api.RecordsApi.ConsumeRecords(opts.f.Context, opts.topicName).Limit(opts.limit).Partition(opts.partition)
195-
193+
request := api.RecordsApi.ConsumeRecords(opts.f.Context, opts.topicName).Limit(opts.limit)
194+
if opts.partition != DefaultPartition {
195+
opts.f.Logger.Info(opts.f.Localizer.MustLocalize("kafka.topic.consume.partition.value", localize.NewEntry("Partition", opts.partition)))
196+
request = request.Partition(opts.partition)
197+
}
196198
if opts.offset != DefaultOffset {
197199
intOffset, err := strconv.ParseInt(opts.offset, 10, 64)
198200
if err != nil {
@@ -284,6 +286,10 @@ func outputRecords(opts *options, records *kafkainstanceclient.RecordList) {
284286
} else {
285287
opts.f.Logger.Info(fmt.Sprintf("Key: %v\nMessage: %v", row.Key, row.Value))
286288
}
289+
opts.f.Logger.Info(fmt.Sprintf("Offset: %v", row.Offset))
290+
if opts.partition == DefaultPartition {
291+
opts.f.Logger.Info(fmt.Sprintf("Partition: %v", row.Partition))
292+
}
287293
} else {
288294
_ = dump.Formatted(opts.f.IOStreams.Out, format, row)
289295
opts.f.Logger.Info("")
@@ -299,10 +305,10 @@ func mapRecordsToRows(topic string, records *[]kafkainstanceclient.Record) []kaf
299305
record := &(*records)[i]
300306
row := kafkaRow{
301307
Topic: topic,
302-
Key: *record.Key,
303-
Value: strings.TrimSuffix(record.Value, "\n"), // trailing new line gives weird printing of table
304-
Partition: *record.Partition,
305-
Offset: *record.Offset,
308+
Key: record.GetKey(),
309+
Value: record.Value,
310+
Partition: record.GetPartition(),
311+
Offset: record.GetOffset(),
306312
}
307313

308314
rows[i] = row

pkg/core/localize/locales/en/cmd/kafka.en.toml

+5
Original file line numberDiff line numberDiff line change
@@ -637,6 +637,11 @@ one = 'Consume only messages with a timestamp later than the specified value (re
637637
[kafka.topic.consume.flag.wait.description]
638638
one = 'Wait for messages to consume from topic'
639639

640+
[kafka.topic.consume.partition.value]
641+
one = 'Consuming messages from partition {{.Partition}}'
642+
643+
644+
640645
[kafka.topic.consume.flag.offset.description]
641646
one = 'Consume messages from an offset equal to or greater than the specified value'
642647

0 commit comments

Comments
 (0)