From 853f4e34f6c29f522341f9af24a0fd0f0f566f6c Mon Sep 17 00:00:00 2001 From: root <17095261+zejeanmi@users.noreply.github.com> Date: Fri, 14 Mar 2025 17:23:16 +0100 Subject: [PATCH 1/2] tls for patroni leader checker --- checker/patroni_leader_checker.go | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/checker/patroni_leader_checker.go b/checker/patroni_leader_checker.go index b82f41a..89f0ff6 100644 --- a/checker/patroni_leader_checker.go +++ b/checker/patroni_leader_checker.go @@ -15,11 +15,31 @@ import ( // --trigger-value is used to specify the HTTP code to expect, e.g. 200. type PatroniLeaderChecker struct { *vipconfig.Config + *http.Client } // NewPatroniLeaderChecker returns a new instance func NewPatroniLeaderChecker(conf *vipconfig.Config) (*PatroniLeaderChecker, error) { - return &PatroniLeaderChecker{conf}, nil + + tlsConfig, err := getTransport(conf) + if err != nil { + return nil, err + } + + transport := &http.Transport{} + if tlsConfig != nil { + transport.TLSClientConfig = tlsConfig + } + + client := &http.Client{ + Transport: transport, + Timeout: time.Second, + } + + return &PatroniLeaderChecker{ + Config: conf, + Client: client, + }, nil } // GetChangeNotificationStream checks the status in the loop @@ -29,7 +49,7 @@ func (c *PatroniLeaderChecker) GetChangeNotificationStream(ctx context.Context, case <-ctx.Done(): return nil case <-time.After(time.Duration(c.Interval) * time.Millisecond): - r, err := http.Get(c.Endpoints[0] + c.TriggerKey) + r, err := c.Client.Get(c.Endpoints[0] + c.TriggerKey) if err != nil { c.Logger.Sugar().Error("patroni REST API error:", err) continue From 8a15ff901d5cdea55a8f91ac1ceaa33a1ca9ea0d Mon Sep 17 00:00:00 2001 From: Pavlo Golub Date: Mon, 17 Mar 2025 10:01:50 +0100 Subject: [PATCH 2/2] remove redundant nil check --- checker/patroni_leader_checker.go | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/checker/patroni_leader_checker.go b/checker/patroni_leader_checker.go index 89f0ff6..f1c2219 100644 --- a/checker/patroni_leader_checker.go +++ b/checker/patroni_leader_checker.go @@ -20,15 +20,13 @@ type PatroniLeaderChecker struct { // NewPatroniLeaderChecker returns a new instance func NewPatroniLeaderChecker(conf *vipconfig.Config) (*PatroniLeaderChecker, error) { - tlsConfig, err := getTransport(conf) if err != nil { return nil, err } - transport := &http.Transport{} - if tlsConfig != nil { - transport.TLSClientConfig = tlsConfig + transport := &http.Transport{ + TLSClientConfig: tlsConfig, } client := &http.Client{