From cb27e29f851e92f11ea422ad9f3d1556f6b3b297 Mon Sep 17 00:00:00 2001 From: "R.I.Pienaar" Date: Thu, 27 Feb 2025 14:35:56 -0500 Subject: [PATCH] Backport sample frequency parse fixes Signed-off-by: R.I.Pienaar --- jetstream/resource_jetstream_consumer.go | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/jetstream/resource_jetstream_consumer.go b/jetstream/resource_jetstream_consumer.go index 2b0bc6d..c13c8c8 100644 --- a/jetstream/resource_jetstream_consumer.go +++ b/jetstream/resource_jetstream_consumer.go @@ -414,25 +414,28 @@ func resourceConsumerUpdate(d *schema.ResourceData, m any) error { return err } - s := strings.TrimSuffix(cons.SampleFrequency(), "%") - freq, err := strconv.Atoi(s) - if err != nil { - return fmt.Errorf("failed to parse consumer sampling configuration: %v", err) - } - opts := []jsm.ConsumerOption{ jsm.ConsumerDescription(cfg.Description), jsm.ConsumerMetadata(cfg.Metadata), jsm.FilterStreamBySubject(cfg.FilterSubject), jsm.AckWait(cfg.AckWait), jsm.MaxDeliveryAttempts(cfg.MaxDeliver), - jsm.SamplePercent(freq), jsm.MaxAckPending(uint(cfg.MaxAckPending)), jsm.MaxWaiting(uint(cfg.MaxWaiting)), jsm.MaxRequestExpires(cfg.MaxRequestExpires), jsm.MaxRequestBatch(uint(cfg.MaxRequestBatch)), } + if len(cons.SampleFrequency()) > 0 { + s := strings.TrimSuffix(cons.SampleFrequency(), "%") + freq, err := strconv.Atoi(s) + if err != nil { + return fmt.Errorf("failed to parse consumer sampling configuration: %v", err) + } + + opts = append(opts, jsm.SamplePercent(freq)) + } + if cfg.HeadersOnly { opts = append(opts, jsm.DeliverHeadersOnly()) }